Spring AOP实现方式(配置)
来源:互联网 发布:menevit副作用知乎 编辑:程序博客网 时间:2024/05/29 15:01
1.pom.xml
<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.9</version></dependency>...其他spring dependency
2.UserService.java
public class UserService { public String saveUser(String text){ System.out.println("###调用saveUser方法####"); return text; }; public String update(String text){ System.out.println("###调用update方法####"); return text; }; public String delete(String text){ System.out.println("###调用delete方法####"); return text; };}
3. Advices.java
import org.aspectj.lang.JoinPoint;import org.aspectj.lang.ProceedingJoinPoint;//通知者public class Advices { //在目标方法之前执行 public void before(JoinPoint joinPoint){ System.err.println("Before ..."); } //在目标方法之后执行 public void after(JoinPoint joinPoint){ System.err.println("After ..."); } //在目标方法返回之后执行 public void afterReturning(JoinPoint joinPoint){ System.err.println("afterReturning ..."); } public void around(ProceedingJoinPoint joinPoint){ System.err.println("around ..."); }}
4.context.xml
<bean id="userService" class="com.ecs.AOP.UserService" > </bean> <bean id="advices" class="com.ecs.AOP.Advices" > </bean> <aop:aspectj-autoproxy></aop:aspectj-autoproxy> <aop:config proxy-target-class="true" > <aop:aspect ref="advices" > <aop:pointcut expression="execution(* com.ecs.AOP.UserService.save*(..) or execution(* com.ecs.AOP.UserService.update(..)) or execution(* com.ecs.AOP.UserService.delete(..))" id="pointcut1"/> <aop:before method="before" pointcut-ref="pointcut1"/> <aop:after method="after" pointcut-ref="pointcut1"/> </aop:aspect> </aop:config>
5.Test
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration({"classpath:servlet-context.xml","classpath:applicationContext.xml"})@WebAppConfigurationpublic class UnitTest { @Autowired private WebApplicationContext wac; @Test public void test(){ try { UserService userService = wac.getBean(UserService.class); String text = userService.saveUser("hello"); System.err.println(text); } catch (BeansException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
0 0
- Spring AOP实现方式(配置)
- 配置xml方式实现Spring的aop
- spring aop 配置方式
- Spring AOP实现方式
- Spring AOP实现方式
- Spring AOP实现方式
- spring AOP实现(Annotation方式/静态文件配置方式)
- Spring实现AOP,配置
- Atomikos+spring AOP方式实现JTA事务配置的示例
- 使用Spring的配置xml方式实现AOP
- spring aop 之配置方式
- Spring 注解方式配置aop:
- 注解方式配置spring-aop
- Spring实现AOP方式之一:基于XML配置的Spring AOP
- Spring实现AOP方式之二:使用注解配置 Spring AOP
- Spring 3 AOP实现方式
- Spring实现AOP的方式
- Spring Aop实现方式总结
- 【C/C++】关于编译修饰符__stdcall、__cdecl和__fastcall 的异同点和应用场景
- HBuilder webApp开发(十四)iOS平台5+插件开发
- Matlab_R2014a_Windows 安装过程及安装包
- 扩展下UI区域的点击范围
- c#网页开发学习(二)
- Spring AOP实现方式(配置)
- jQuery学习笔记(七) jQuery UI对话框,菜单,tooltip以及spinner
- Redis---key操作
- 线程经典实例——吃苹果问题
- 下拉列表的二级联动
- Java遍历List的时候删除item
- Kafka本机搭建、常用命令、以及Rest模式||Kafka在zookeeper中的注册关系
- 解决Linux开机出现A start job is running for ....(1min,30s),swap分区丢失的问题
- nyoj116——士兵杀敌(二)