聊聊Spring的stereotype注解
我们在使用Spring的时候,使用最多的注解是什么?我想除了@Bean就是@Component了吧?@Component位于spring-context库(5.1.8版本,文中未特别说明的情况下默认此版本)的org.springframework.stereotype包路径下面:
会发现还有我们熟悉的@Controller,@Service,@Repository,这不就是Spring MVC里经常用到的么?
什么是 Stereotype
Stereotype是一种J2EE特性,以下来自网友:
1 | Stereotype特性最早出现在J2EE6中(忘记是哪个JSR提出的了), |
简单的说Stereotype特性就是用注解来告诉框架某个类是属于系统功能中的哪一层。
Stereotype 特性如何被使用
在Stereotype模式下,Spring为Controller-Service-Dao的分层模型分别提供了@Controller、@Service、@Repository注解。
我们按照Stereotype的模式为对应的类标记3个注解,然后在引入MVC、ORM、JPA相关的框架之后这些注解会告诉框架对应的类扮演着什么样的功能角色,框架就能很清晰的根据注解提供相关的功能服务。
例如引入spring-webmvc库后,类如果被@Controller注解标记,框架就知道他们都是处理前端请求的,框架就会为他提供RequestMapping之类的功能。