SpringBoot相似注解说明
注解说明
@Autowired和@Resource区别
- @Autowired与 @Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。
- @Autowired默认按类型装配(此注解属于spring),默认情况下要求依赖对象必须存在,如果要允许null值,可以设置它的属性required为false,比如 @Autowired(required
= false),也可以使用 @Qualifier来指定按名称注入;
@Autowired ()
@Qualifier ( "baseDao" )
private BaseService baseService;
- @Resource(这个注解属于J2EE的),默认按照名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行安装名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。
@Resource (name= "baseDao")
private BaseService baseService;
**
@Repository @Component @Mapper区别
**
- @Mapper是Mybatis的注解,与Spring没有关系;@Repository是Spring的注解,用于声明一个Bean
- Spring中,Mybatis需要找到对应的mapper,在编译时生成动态代理类,实现数据库CRUD,可以在Mapper接口上加上 @Mapper 注解
@Mapper
public interface UserMapper {
//具体方法
}
- 使用 @Mapper注解,为其他变量注入依赖时,IDEA会有红色波浪线,但是运行不会有错误。这时需要在对应接口添加声明,显示标注Bean,不然IDEA认为运行时找不到实例。
@Repository
@Mapper
public interface UserMapper {
//具体方法
}
使用 @Component和 @Repository效果是一样的,类似的 @Controller和 @Service也是同样的道理

浙公网安备 33010602011771号