再玩亿关小游戏
444.26MB · 2025-11-02

不用写set和get方法
@Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配。
在spring的配置文件中

说明:
<context:annotation-config />
启动依赖注入的注解解析器:
按照类型匹配
在默认情况下使用 @Autowired
注释进行自动注入时,Spring 容器中匹配的候选 Bean 数目必须有且仅有一个
required 属性默认是true,表示注入的时候,该bean必须存在,否则就会报错(BeanCreationException 异常)。修改为ffalse后在找不到匹配 Bean 时也不报错。
按照ID匹配,注解只能应用于引用类型
说明
1、作用范围
1)方法:推荐将注解使用于方法上,不过需要注意的是:该注解只能应用到 public 方法上,否则不生效。
2)类:如果这个注解使用在类上的话,表明该注解对该类中所有的 public 方法都生效。
3)接口 :不推荐在接口上使用。
@Transactional 的常用配置参数:

原理
@Transactional 的工作机制是基于 AOP 实现的,AOP 又是使用动态代理实现的。如果目标对象实现了接口,默认情况下会采用 JDK 的动态代理,如果目标对象没有实现了接口,会使用 CGLIB 动态代理。
如果一个类或者一个类中的 public 方法上被标注@Transactional 注解的话,Spring 容器就会在启动的时候为其创建一个代理类,在调用被@Transactional 注解的 public 方法的时候,实际调用的是,TransactionInterceptor 类中的 invoke()方法。这个方法的作用就是在目标方法之前开启事务,方法执行过程中如果遇到异常的时候回滚事务,方法调用完成之后提交事务。
事务失效情况