java中这四个注解有什么区别啊?项目中怎么都是混用?

@Component:
@Controller
@Repository
@Service

阅读 4.2k
6 个回答

都是用来定义Bean

  • @Component是最通用的

  • @Service@Repository也是@Component,只不过赋予了不同的语义,便于代码阅读,其实这三个随便用也无所谓,Spring不会报错。

  • @Controller特殊,专门被Spring MVC处理,不能替换为另外三个。

新手上路,请多包涵

@Service用于标注业务层组件

@Controller用于标注控制层组件(spring中的controller)

@Repository用于标注数据访问组件,即DAO组件

@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注

新手上路,请多包涵

@Controller 就是用在controller, @Service 用在service, @Repository 用在dao, @Component用在其他不明确的地方。

只是语意上不同,作用都是一样

效果都是一样的**

这四个注解对机器来说运行效果一样。只有语义上的区别,告诉看代码的人这个类是哪个层面的组件

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题