@Resource@Autowired等几个注解的区别

Posted yanghj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Resource@Autowired等几个注解的区别相关的知识,希望对你有一定的参考价值。

1、@Resource注解和@Autowired的区别

@Autowired注解:是按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false。

@Resource注解:和@Autowired一样,也可以标注在字段或属性的setter方法上,但它默认按名称装配。名称可以通过@Resource的name属性指定,如果没有指定name属性,当注解标注在字段上,即默认取字段的名称作为bean名称寻找依赖对象,当注解标注在属性的setter方法上,即默认取属性名作为bean名称寻找依赖对象。

简单点说,就是:@Resources按名字,是JDK的;@Autowired按类型,是Spring的。

2、@Component, @Repository, @Service,@Component, @Repository, @Service的区别

注解含义
@Component 最普通的组件,可以被注入到spring容器进行管理
@Repository 作用于持久层
@Service 作用于业务逻辑层
@Controller 作用于表现层(spring-mvc的注解)

@Component@Service@Controller@Repository是spring注解,注解后可以被spring框架所扫描并注入到spring容器来进行管理
@Component是通用注解,其他三个注解是这个注解的拓展,并且具有了特定的功能
@Repository注解在持久层中,具有将数据库操作抛出的原生异常翻译转化为spring的持久层异常的功能。
@Controller层是spring-mvc的注解,具有将请求进行转发,重定向的功能。
@Service层是业务逻辑层注解,这个注解只是标注该类处于业务逻辑层。

以上是关于@Resource@Autowired等几个注解的区别的主要内容,如果未能解决你的问题,请参考以下文章

@Resource@Autowired等几个注解的区别

Spring注解 @Component@Repository@Service@Controller @Resource@Autowired@Qualifier 解析

SpringIOC的bean自动注解(Resource,Autowired)

SpringIOC的bean自动注解(Resource,Autowired)

SpringIOC的bean自动注解(Resource,Autowired)

@Autowired 与@Resource的区别