自定义@Service、@Autowired、@Transactional注解类,完成基于注解的IOC容器(Bean对象创建及依赖注入维护)和声明式事务控制,写到转账工程中,并且可以实现转账成功和转账异常时事务回滚
思路
1 认识三个注解的作用域
@Service作用于类
@Autowired作用于成员变量,并且通过set方法进行赋值
@Transactional 作用于方法
2 利用反射加载bean
依赖包
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.11</version>
</dependency>
扫描出所有的@Service的注解
3 利用反射进行依赖注入
利用反射调用set方法对属性进行赋值
4 利用反射对Transactional进行事务增强
判断方法上是否有Transactional注解,如果有生成动态代理对象,在每次调用方法时判断是否要进行事务处理。
代码库地址
https://gitee.com/ou_song/lagou-spring-transfer
视频地址
https://v.qq.com/x/page/g3239427ecp.html