Spring常用注解含义
@Service
Springboot会自动扫描到@Service注解的类, 并把这些类纳入Spring容器中管理. 也可以用@Component注解, 只是@Service注解更能表明该类是服务层类.
@Component
泛指组件, 当组件不好归类的时候, 我们可以使用这个注解进行标注.
@Repository
持久层组件, 用于标注数据访问的组件, 即DAO层.
@Resource
这个注解属于J2EE, 默认按名称进行装配, 名称可以通过name
属性进行指定. 如果没有指定name
属性, 当注解写在字段上时, 就默认取字段名进行查找. 如果注解写在setter
方法上, 就默认取 属性名 进行装配. 当找不到与名称匹配的 bean 时, 才按照 类型 进行装配. 具体代码如下:
@Resource(name = "userRepository")
private UserRepository userRepository;
@Autowired
这个注解属于 Spring, 默认按 类型
装配. 默认情况下, 要求依赖对象必须存在, 如果要允许null值, 那么可以设置它的 required 属性为 false, 如 @Autowired(required = false)
; 如果想使用 名称 装配, 那么可以结合 @Qualifier
注解使用. 具体代码如下:
@Autowired
@Qualifier("userRepository")
private UserRepository userRepository;