一、创建bean对象的
@Component:
- 作用:把当前类对象存入spring容器中
- 属性:value,用于指定bean的id,默认值为首字母小写的当前类名
@Controller:一般用于表现层
@Service:一般用于业务层
@Repository:一般用于持久层
二、注入数据的
以下三个只能注入其他bean类型
@Autowried:
- 作用:自动按照类型注入,只有容器中有唯一的一个bean对象类型和要注入的变量类型匹配才能成功。如果有多个的话可以配合@qualifier一起使用
@Qualifier:
- 作用:按照类中注入的基础之上在按照名称注入,给类成员配置的话必须配合@AutoWired一起使用,给方法参数配置时可以单独使用
- 属性:value,用于指定注入bean的id
@Resource:
- 作用:直接按照bean的id注入,可以独立使用
- 属性:name,用于指定注入bean的id
以下只能注入基本类型和String类型
@Value:
- 只能注入八大基本类型和String
- 属性:value,用于指定数据的值,可以使用spring的SpEL表达式
集合类型的注入只能通过XML配置
三、改变作用范围
@Scope:
属性:value,指定取值范围,常用取值:singleton、prototype
四、自定义配置类相关
@Configuration:指定当前类是一个配置类
@Bean
- 作用:把当前方法的返回值作为bean对象存入spring容器中
- 属性:name,默认值为方法名
@ComponentScan:配置创建容器时要扫描的包路径
@Import:配置父配置类下的子配置类的class
@PropertySource:配置properties文件的文件名
五、生命周期相关
@PreDestroy:指定销毁方法
@PostConstruct:指定初始化方法
六、事务
@Transactional:开启声明式事务控制
@EnableTransactionManagement:开启spring对注解事务的支持
七、spring整合Junit相关
@RunWith:指定Junit使用spring的Junit测试,SpringJUnit4ClassRunner.class,必须添加spring-test依赖
@ContextConfiguration:
- 作用:指定spring使用的配置方法为xml还是注解
- 属性:注解使用classes,xml使用locations