@Controller,@Service,@Repository,@Component你搞懂了吗?

简介: @Controller用来表示一个web控制层bean,如SpringMvc中的控制器。@Service用来表示一个业务层bean。@Repository用来表示一个持久层bean,即数据访问层DAO组件。@Component用来表示一个平常的普通组件,当一个类不合适用以上的注解定义时用这个组件修饰。需要注意的是@Controller,@Service,@Repository都有带@Component父注解,说明它们除了基本组件的属性外还有其他的的场景应用,即如果不用SpringMVC其实它们就是一个普通的组件,但普通组件建议最好还是用@Component修

@Controller


用来表示一个web控制层bean,如SpringMvc中的控制器。


@Service


用来表示一个业务层bean。


@Repository


用来表示一个持久层bean,即数据访问层DAO组件。


@Component


用来表示一个平常的普通组件,当一个类不合适用以上的注解定义时用这个组件修饰。

image.png

需要注意的是@Controller,@Service,@Repository都有带@Component父注解,说明它们除了基本组件的属性外还有其他的的场景应用,即如果不用SpringMVC其实它们就是一个普通的组件,但普通组件建议最好还是用@Component修饰。

image.png

为了让Spring自动扫描注册这些组件,需要在配置文件中加上扫描的配置,如扫描com.test包下的注解。

<context:component-scan base-package="com.test" />

些扫描配置默认use-default-filters="true",默认扫描@Component注解及子注解,可以配置过滤只扫描哪些注解不扫描哪些注解。

要过滤扫描注解,需要相应的带上下面的子标签,可以有多个。

context:include-filter>
<context:exclude-filter

如只扫描com.test包下的@Controller和@Service注解的组件。

<context:component-scan base-package="com.test" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
</context:component-scan>

关于type的定义

image.png

另外,context:component-scan配置可以有多个。


相关文章
|
1月前
|
弹性计算 Kubernetes 监控
Controller Manager工作原理
【7月更文挑战第3天】Controller Manager是Kubernetes核心组件,监控集群资源状态变化,维持期望状态。
|
2月前
|
Java
springboot提高编辑Controller和Service层速度和规范小技巧
springboot提高编辑Controller和Service层速度和规范小技巧
16 0
|
3月前
|
Java 数据库 开发者
Spring注解大揭秘:@Component、@Service、@Repository详解
Spring注解大揭秘:@Component、@Service、@Repository详解
174 0
|
9月前
|
JavaScript Java 数据库连接
代码生成器(entity、dao、service、controller、vue)
减少你最基础的crud开发,减少你开发的基础工作
89 1
|
前端开发 Java Spring
controller层注入的service为null
controller层注入的service为null
147 0
|
Dubbo Java 应用服务中间件
compoment注解与Controller、Service、Repository注解的关系
Controller、Service、Repository这三个注解都是Spring提供的,他们三个有着相似的作用,即将被注解类的实例放入到Spring容器中,作用很相似那他们有什么区别呢?
136 0
compoment注解与Controller、Service、Repository注解的关系
|
XML JSON Java
Spring - Bean管理之注解(@Component、@Controller、@RestController、@Service、@Repository)
Spring - Bean管理之注解(@Component、@Controller、@RestController、@Service、@Repository)
435 0
Spring - Bean管理之注解(@Component、@Controller、@RestController、@Service、@Repository)
|
JavaScript 前端开发 NoSQL
面试官:项目中 Dao、Service、Controller、Util、Model 怎么划分的?
面试官:项目中 Dao、Service、Controller、Util、Model 怎么划分的?
367 0
|
SQL druid 前端开发
让SpringBoot不需要Controller、Service、DAO、Mapper
让SpringBoot不需要Controller、Service、DAO、Mapper
248 0
让SpringBoot不需要Controller、Service、DAO、Mapper
|
设计模式 Java 数据库连接
Spring - @Service、@Repository注解(service类、dao类)(实现类 & 接口类)
Spring - @Service、@Repository注解(service类、dao类)(实现类 & 接口类)
537 0