码迷,mamicode.com
首页 > 其他好文 > 详细

IOC/DI-控制反转----AOP-面向切面编程

时间:2019-09-23 11:36:27      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:nbsp   insert   切面   div   名称   面向切面   around   目标   comm   

1-spring管理bean的两种方式

原理:Spring通过超大的Map集合来管理对象,默认条件下是单例的

格式:Map<K,V>    key:bean的ID   /   @Bean注解的方法名

        value:实例化后的对象

要求:容器中的对象的名称key,必须不同.

-1-通过bean标签管理

<bean id="a" class="com.tedu.controller.A"/>

-2-通过bean注解管理

@Bean
public A a(){
   return new A();
}        

2-AOP的作用:为了扩展业务的方法,在代码中实现了业务解耦

 切面构造要素:切面 = 切入点 + 通知

以AOP的形式解决事务控制问题:

public void saveUser(User user){
    userMapper.insert(user);
}

public void updateUser(User user){
    userMapper.update(user);
}

@Component
@Aspect
public class TxAspect{
    /*事务/缓存/异常处理可能会使用环绕通知*/
    /*如果需要控制目标方法的执行,使用环绕通知*/
  @Around("execution(* com.jt.service..*(..))")
  public Object around(ProceedingJoinPoint joinPoint){
    try{
       TX.begin();
       joinPoint.proceed();//让目标方法执行
       Tx.commit();
    }catch(){
       Tx.rollback();
  }
}

 

切入点表达式:

-1-Bean   按照某个Bean(类)拦截

-2-within(包名.类名)  按照类拦截

-3-execution(返回值类型 包名.类名.方法名(参数列表))

-4-@annotaion(包名.注解名)

 

IOC/DI-控制反转----AOP-面向切面编程

标签:nbsp   insert   切面   div   名称   面向切面   around   目标   comm   

原文地址:https://www.cnblogs.com/B1ackWall/p/11571359.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!