您的位置:首页 > 编程语言 > Java开发

Spring注解之@Component、@Controller、@Service、@Repository

2019-12-25 17:41 197 查看

目录

@
Spring注解@Component、@Controller、@Service、@Repository放在一起讲的原因很简单,因为,这四个注解实际上没有任何本质区别,只是后三者只是涉及一些命名规范而已,四者的注解效果确实一致。关于这里的命名规范就好比苹果叫苹果,你不会说苹果是菠萝。这样的好处显然易见,听到别人说苹果,你就知道是苹果,不会想到菠萝。而编程中@Controller你会知道这是一个Controller表现层,@Service代表这是一个Service业务层。

1、使用这四个注解的前提

1、导入AOP的jar包【当然现在基本都是maven依赖,很少会注意到这一点,基本感觉不到】
2、导入Context约束
3、告知spring在创建容器时要扫描的包,使用注解必须在其范围内


如果不满足上面条件则将出现下面异常,宜春清切的叫他

No bean
异常

2、详解@Component

Component翻译过来就是

组件
的意思,读作:抗破然着 (理直气壮)

2.1、@Component作用

曾经XML的配置:

<bean id="XXX" class="com.XX.XXX </bean>

@Component
注解的作用就和在
XML
配置文件中编写一个
< bean >
标签实现的功能是一样的,都是用于把当前类对象存入spring容器中。

2.2、@Component属性

@Component
注解属性主要指的是
value
属性。
value
属性用于指定
bean
id
。当我们不写时,它的默认值是当前类名首字母改小写。当然一般情况下是不写的。比如:

2.3、@Component小结

作用:用于把当前类对象存入spring容器中
属性:value用于指定bean的id。当我们不写时,它的默认值是当前类名,且首字母改小写。
注意:当只有一个属性值的时候默认可以不写

value=

3、 @Service("XXX")或者@Service(value = "XXX")情况

当然不排除出现类似这种奇葩情况,可能在一奇葩需求上就出现了这种情况,显然宜春是碰到过了,当然如果读者朋友已经理解了我上面写的东西,估计这个就很好理解了!

正确解读:这是一个service业务层类,并且被注册的bean的id为XXX。如果你的spring容器中没有一个组件id为XXX的,无疑运行指定报

No bean named 'YYY'
异常,注意这里的
YYY
不是
XXX
,长点心。

4、总结

至于@Controller、@Service、@Repository他们三个是spring框架为我们提供明确的三层使用的注解,使我们的三层对象更加清晰!

实际上这四个注解实际上没有任何本质区别,如果你喜欢,你完全可以把这四个注解当成一个注解用,当然这样的话老板可能就不喜欢你了。

如果本文对你有一点点帮助,那么请点个赞呗,你的赞同是我最大的动力,谢谢~

最后,若有不足或者不正之处,欢迎指正批评,感激不尽!如果有疑问欢迎留言,绝对第一时间回复!

欢迎各位关注我的公众号,里面有一些java学习资料和一大波java电子书籍,比如说周志明老师的深入java虚拟机、java编程思想、核心技术卷、大话设计模式、java并发编程实战.....都是java的圣经,不说了快上Tomcat车,咋们走!最主要的是一起探讨技术,向往技术,追求技术,说好了来了就是盆友喔...

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐