1分钟Springstereotype

Posted 码哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1分钟Springstereotype相关的知识,希望对你有一定的参考价值。

  当你看到标题时,90%概率你并不知道本文将讲述什么。而当你看到@Controller@Service@Repository,你可能会感叹就这而你感慨之余,别急着点出去,笔者接下来讲述的你可能并不清楚,因为其背后涉及的内容并非你想的那么简单。


1.包的含义

  相信这个包名对你来说是既熟悉又陌生,那么先来说下包名含义吧。stereotype机翻是“刻板偏见”,个人认为更合理的翻译应该是“通认概念”,顾名思义这几个注解是应用中通认的概念,javadoc中解释包名含义是:这些注解是架构中特定的角色。而放在context模块中,其概念的通用性可见一斑。而包中注解和Data Access Object Pattern(DAO)、Domain-Driven Design(DDD)、Model View Controller(MVC)、分层架构都有着关系。


2.功能解释

  @Controller标注在控制层,这里可以是MVC中的controller,用来处理请求,这里不做赘述。

  @Service标注在服务层,这里既可以是J2EE中的Business Service Facade的概念,也是DDD中的service概念。

  @Repository标注在数据层,这里既可以是J2EE中DAO类,也可以是DDD中资源仓库的概念。  


3.结语:

  解释了包中注解的用处和对应的架构中概念,由此你会发现,这三个看似平常的注解,其背后涉及的概念和知识却十分多。而每个注解又跨越了多种架构模式,故笔者习惯叫stereotype为通用概念,因为这些概念既是普世认同,又是跨越架构的。

  由于篇幅有限,这一块内容笔者将在下(几)篇中分享这三种web架构中常用的模式,以及何为分层架构。这里你可以只知道怎么用这几个注解就好,通过下篇文章阐述,加上你的工作/学习经验,相信你会豁然开朗的。

以上是关于1分钟Springstereotype的主要内容,如果未能解决你的问题,请参考以下文章

设置闹钟 1 分钟,但 5 分钟后响起

有四个人夜间过一座独木桥,他们只有一只手电筒。而这

三分钟创建一个小程序-每天三分钟玩转小程序 1

无法从 1 分钟到 5 分钟的数据重新采样 pandas 时间序列

如何从 1 分钟的嵌套数组数据中聚合 OHLC 5 分钟(mongodb、mongoose)

加减乘除2