Spring学习笔记

Spring学习笔记,第1张

Spring学习笔记 一、IoC --> 基于注解的DI实现

@Component
        定义Bean,value用于指定该bean的id值
        不指定value属性,bean的id是类名的首字母小写
@Repository
        持久层
        用于对DaO实现类进行注解
@Service
        业务层
        用于对Service实现了进行注解
@Controller
        控制层
        用于对Controller实现类进行注解

@Value
        简单类型属性注入
@Autowired
        byType自动注入
@Autowired & @Qualifier
        byName自动注入,需要两个注解联合使用
@Resource
        JDK注解,可以按名称注入或按类型注入
        默认:按名称注入
        注解若不带任何参数,采用默认按名称的方式注入,按名称不能注入 bean, 则会按照类型进
        行 Bean 的匹配注入。
        指定其 name 属性,则 name 的值即为按照名称进行匹配的 Bean 的 id。

二、AOP

JDK 的动态代理,与 CGLIB 的动态代理。
Aspect:切面
JoinPoint:连接点
Pointcut:切入点
Target:目标对象
Advice:通知

AspectJ对AOP的实现
        切入点表达式:

execution(modifiers-pattern? ret-type-pattern
    declaring-type-pattern?name-pattern(param-pattern)
    throws-pattern?)


前置通知
后置通知
环绕通知
异常通知
最终通知

        application.xml中需添加
       
        通知 Spring 容器,让容器生成“目标类+ 切面”的代理对象。这个代理是由容器自动生成的。自动扫描到@Aspect 注解,并按通知类型与切入点,将其织入,并生成代理。
@Aspect
        表示当前类是切面类
@Before
        前置通知
        属性:value 切入点表达式,表示切面执行的位置
        位置:方法的定义上面
        方法有JoinPoint参数,通过该参数,可获取切入点表达式、方法签名、 目标对象等。
@AfterReturning
        后置通知
        注解有returning属性
@Around
        环绕通知
        方法有ProceedingJoinPoint
@AfterThrowing
        异常通知
        注解有throwing属性
@After

        最终通知
@Pointcut
        定义切入点
        将@Pointcut注解在一个方法之上,以后所有的 execution的 value 属性值均可使用该方法名作为切入点。代表的就是@Pointcut 定义的切入点。这个使用@Pointcut 注解的方法一般使用 private 的标识方法,即没有实际作用的方法。

三、Srping集成MyBatis


        Spring读取配置文件

        声明事物注解驱动
        业务层public方法加入事物属性

@Transactional(
    propagation = Propagation.REQUIRED,
    rollbackFor = { NotEnoughException.class,NullPointerException.class})


AspectJ的AOP配置管理事务
        容器中添加事务管理器
        DataSourceTransactionManager
        配置事务通知


    
    ......
    


        配置增强器

    
    



    
       

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5706910.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存