Spring的注解开发
1.开启注解扫描配置
<context:component-scan base-package="com.codegzy"/>
2.实例化相关注解
# 1. @Component(value="beanid")
修饰范围: 用在类上
注解作用: 通用的创建实例的注解,用来创建当前这个类的实例
value属性: 用来指定创建的对象在工厂中的唯一标识 如果不指定默认创建对象在工厂中的标识为类名首字母小写
# 2. @Repository
修饰范围: 用在类上
注解作用: @component的子类注解专用于DAO组件的创建,通常加在DAO组件上
value属性: 用来指定创建的对象在工厂中的唯一标识 如果不指定默认创建对象在工厂中的标识为类名首字母小写
# 3. @Service
修饰范围: 用在类上
注解作用: @component的子类注解专用于Service组件的创建,通常加在Service组件上
value属性: 用来指定创建的对象在工厂中的唯一标识 如果不指定默认创建对象在工厂中的标识为类名首字母小写
# 4. @Controller
修饰范围: 用在类上
注解作用: @component的子类注解专用于Controller组件的创建,通常加在Controller组件上
value属性: 用来指定创建的对象在工厂中的唯一标识 如果不指定默认创建对象在工厂中的标识为类名首字母小写
3.控制对象的创建次数的注解
@Scope(value="singleton|prototype")
修饰范围: 用在类上
注解作用: 用来控制这个实例在工厂中的创建次数
value属性: singleton为单例,prototype为多例 默认单例
4.注入相关的注解
# 1. @Autowired(Spring提供)
修饰范围: 用在成员变量或成员变量的GET/SET方法上
注解作用: 用来给类中成员变量赋值
注入原则: 默认根据类型自动注入
# 2. @Resource(JAVAEE提供)
修饰范围: 用在成员变量或成员变量的GET/SET方法上
注解作用: 用来给类中成员变量赋值
注入原则: 默认根据名称自动注入名称找不到根据类型自动注入
5.控制事务的相关注解
# 1. @Transactional
修饰范围: 用在类上主要用在业务层组件类上或者是方法上
注解作用: 用来给类中方法加入事务,当类上和方法上同时存在该注解时局部优先
注解属性:
propagation 用来控制传播属性
Isolation 用来控制隔离级别
timeout 用来设置超时性
rollback-for 用来设置什么异常回滚
norollback-for 用来设置什么异常不会滚
readonly 用来设置事务读写性
如果要使用事务注解在配置文件中必须开启事务注解生效加入如下配置:
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>