首页 > 代码库 > Spring4-aspect-XML方式
Spring4-aspect-XML方式
1.创建Maven项目,项目名称springdemo52,如图所示
2.配置Maven,修改项目中的pom.xml文件,修改内容如下
<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>
3.在src/main/java下创建实体Bean Customer,包名(com.mycompany.shequ.bean)如图所示
4.实体Bean Customer的内容如下
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; } }
5.在src/main/java下创建接口ICustomerDao,包名(com.mycompany.shequ.dao)如图所示
6.ICustomerDao的内容如下
package com.mycompany.shequ.dao; import com.mycompany.shequ.bean.Customer; public interface ICustomerDao { public void save(Customer customer); }
7.在src/main/java下创建ICustomerDao的实现类CustomerDaoImpl,包名(com.mycompany.shequ.dao.impl),如图所示
8.ICustomerDao的实现类CustomerDaoImpl的内容如下
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"); } }
9.在src/main/java下创建业务Bean ICustomerService接口,包名(com.mycompany.shequ.service)如图所示
10.ICustomerService接口的内容如下
package com.mycompany.shequ.service; import com.mycompany.shequ.bean.Customer; public interface ICustomerService { public void save(Customer customer); }
11.在src/main/java下创建业务Bean ICustomerService接口的实现类CustomerServiceImpl,包名(com.mycompany.shequ.service.impl)如图所示
12.业务Bean ICustomerService接口的实现类CustomerServiceImpl的内容如下
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); } }
13.在src/main/java下创建aop切面类CustomerInterceptor,包名(com.mycompany.shequ.aop)如图所示
14.aop切面类CustomerInterceptor的内容如下
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"); } }
15.在src/main/resource下创建核心的配置文件applicationContext.xml,如图所示
16.配置文件applicationContext.xml,如图所示
<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>
17.在src/test/java下创建测试文件AppTest,包名(com.mycompany.shequ.test)如图所示
18.测试文件AppTest的内容如下
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(); } }
19.在测试类AppTest的beanTest方法上右键运行,输出结果如图所示
本文出自 “素颜” 博客,谢绝转载!
Spring4-aspect-XML方式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。