各位网友们好,相信很多人对component注解都不是特别的了解,因此呢,今天就来为大家分享下关于component注解以及component注解和bean的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
本文目录一览
- 1、@Component注解的用法
- 2、spring注解中@component是什么意思
@Component注解的用法
遇到的问题
踩到一个坑,有一个接口,在这个接口的实现类里,需要用到@Autowired注解,一时大意,没有在实现类上加上@Component注解,导致了Spring报错,找不到这个类
一旦使用关于Spring的注解出现在类里,例如我在实现类中用到了@Autowired注解,被注解的这个类是从Spring容器中取出来的,那调用的实现类也需要被Spring容器管理,加上@Component
开发中难免会遇到这个这个注解@Component
@Controller 控制器(注入服务)
用于标注控制层,相当于struts中的action层
@Service 服务(注入dao)
用于标注服务层,主要用来进行业务的逻辑处理
@Repository(实现dao访问)
用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件
.
@Component (把普通pojo实例化到spring容器中,相当于配置文件中的 )
泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。
spring注解中@component是什么意思
spring注解中@component就是说把这个类交给Spring管理,又一次起个名字叫userManager,因为不清楚这个类是属于哪个层面,所以就用@Component。
因为在持久层、业务层和控制层中,分别采用@Repository、@Service和@Controller对分层中的类进行凝视,而用@Component对那些比较中立的类进行凝视。
扩展资料:
注解@component的原理
1、注解@Resource原理
1)启动spring容器,并且加载配置文件;
2)会为student和person两个类创建对象;
3)当解析到<context:annotation-config></context:annotation-config>会启动依赖注入的注解解析器;
4)会在纳入spring管理的bean的范围内查找看哪些bean属性上有@Resource注解;
(1)如果@Resource注解的name属性的值为"",则会把注解所在的属性的名称和spring容器中的bean的id进行匹配,若匹配成功,则把id对应的对象赋值给该属性;若匹配不成功,则按照类型进行匹配;若再匹配不成功,则报错;
(2)如果@Resource注解的name属性的值不为"",会把name的属性值和spring容器中的bean的id做匹配,如果匹配成功,则赋值;否则,直接报错。
说明:注解只能用于引用类型。
以@Resource注解(spring扩展包)和@Autowired@Qualifier功能作用相同
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 449@qq.com 举报,一经查实,本站将立刻删除。本文链接:https://www.hnhgjc.com/n/264852.html