<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>1.0.0</modelVersion> <groupId>shequ</groupId> <artifactId>springdemo13</artifactId> <version>0.0.1-SNAPSHOT</version> <properties> <java.version>1.7</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties> <repositories> <repository> <id>codelds</id> <url>https://code.lds.org/nexus/content/groups/main-repo</url> </repository> </repositories> <dependencies> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.3</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.8.3</version> </dependency> <dependency> <groupId>javax.annotation</groupId> <artifactId>jsr250-api</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.1.4.RELEASE</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.1.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.1.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.1.4.RELEASE</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.34</version> </dependency> </dependencies> <build/> </project>
package com.mycompany.shequ.bean;
public class Customer {
private String name;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}package com.mycompany.shequ.dao;
import com.mycompany.shequ.bean.Customer;
public interface ICustomerDao {
public void save(Customer customer);
}package com.mycompany.shequ.dao.impl;
import org.springframework.stereotype.Component;
import com.mycompany.shequ.bean.Customer;
import com.mycompany.shequ.dao.ICustomerDao;
@Component("customerDao")
public class CustomerDaoImpl implements ICustomerDao {
public void save(Customer customer) {
System.out.println("customer saved success");
}
}package com.mycompany.shequ.service;
import com.mycompany.shequ.bean.Customer;
public interface ICustomerService {
public void save(Customer customer);
}package com.mycompany.shequ.service.impl;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import com.mycompany.shequ.bean.Customer;
import com.mycompany.shequ.dao.ICustomerDao;
import com.mycompany.shequ.service.ICustomerService;
@Component("customerServiceImpl")
public class CustomerServiceImpl implements ICustomerService {
private ICustomerDao customerDao;
public ICustomerDao getCustomerDao() {
return customerDao;
}
@Resource(name="customerDao")
public void setCustomerDao(ICustomerDao customerDao) {
this.customerDao = customerDao;
}
public void init(){
System.out.println("init");
}
public void destroy(){
System.out.println("destroy");
}
public void save(Customer customer) {
customerDao.save(customer);
}
}package com.mycompany.shequ.aop;
public class CustomerInterceptor {
public void before(){
System.out.println("method before");
}
public void around(){
System.out.println("method around");
}
public void after(){
System.out.println("method after");
}
public void afterReturning(){
System.out.println("method afterreturning");
}
public void afterThrowing(){
System.out.println("method afterThrowing");
}
}<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd"> <context:annotation-config /> <context:component-scan base-package="com.mycompany.shequ"/> <!-- 自动扫描 --> <bean id="customerInterceptor" class="com.mycompany.shequ.aop.CustomerInterceptor"></bean> <aop:config> <aop:pointcut id="servicePointcut" expression="execution(public * com.mycompany.shequ.service..*.save(..))"/> <aop:aspect id="customerAspect" ref="customerInterceptor"> <aop:before method="before" pointcut-ref="servicePointcut"/> <aop:around method="around" pointcut-ref="servicePointcut"/> <aop:after-returning method="afterReturning" pointcut-ref="servicePointcut"/> <aop:after method="after" pointcut-ref="servicePointcut"/> <aop:after-throwing method="afterThrowing" pointcut-ref="servicePointcut"/> </aop:aspect> </aop:config> </beans>
package com.mycompany.shequ.test;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.mycompany.shequ.bean.Customer;
import com.mycompany.shequ.service.ICustomerService;
public class AppTest {
@Test
public void beanTest(){
ClassPathXmlApplicationContext context = new
ClassPathXmlApplicationContext("applicationContext.xml");
ICustomerService customerService = (ICustomerService)
context.getBean("customerServiceImpl");
customerService.save(new Customer());
context.destroy();
}
}本文出自 “素颜” 博客,谢绝转载!
原文:http://suyanzhu.blog.51cto.com/8050189/1910332