文章目录
@Autowired
- @Autowired是spring自带的注解,通过‘AutowiredAnnotationBeanPostProcessor’ 类实现的依赖注入;
- @Autowired 根据byType进行自动注入,如果需要按名称注入需要配合@Qualifier;
- @Autowired 作用在变量、setter方法、构造函数上。
@Qualifier
- @Qualifier(“XXX”) 根据byName 自动注入;
- @Qualifier 作用在成员变量、方法入参、构造函数入参。
@Inject
-
@Inject是JSR330 (Dependency Injection for Java)中的规范,需要导入javax.inject.Inject;实现注入;
-
@Inject是根据byType自动注入,如果需要按名称进行装配,则需要配合@Named;
-
@Inject 作用在变量、setter方法、构造函数上(和@Autowired一样)。
@Named
- @Named(“XXX”) 中的 XX是 Bean 的名称,所以 @Inject和 @Named结合使用时,据byName 自动注入。
@Resource
-
@Resource是JSR250规范的实现,需要导入javax.annotation实现注入;
-
@Resource(name=“XXX”)是根据byName进行自动装配的,一般会指定一个name属性;
-
@Resource可以作用在变量、setter方法上。
@Autowired、@Qualifier、@Inject、@Named、@Resource总结
-
@Autowired是spring自带的,@Inject是JSR330规范实现的,@Resource是JSR250规范实现的,需要导入不同的包;
-
@Autowired、@Inject用法基本一样,不同的是@Autowired有一个request属性;
-
@Autowired、@Inject是默认byType注入的,@Resource是按照byName注入的;
-
@Autowired如果需要byName注入需要和@Qualifier一起使用,@Inject和@Named一起使用。
@Temporal()
数据库的字段类型有date、time、datetime,而Temporal注解的作用就是帮Java的Date类型进行格式化,一共有三种注解值:
- @Temporal(TemporalType.DATE)——>实体类会封装成日期“yyyy-MM-dd”的 Date类型。
- @Temporal(TemporalType.TIME)——>实体类会封装成时间“hh-MM-ss”的 Date类型。
- @Temporal(TemporalType.TIMESTAMP)——>实体类会封装成完整的时间“yyyy-MM-dd hh:MM:ss”的 Date类型。
@RequestParam,@PathParam,@PathVariable
https://www.imooc.com/article/293016