@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月前
|
Java Spring
无法自动装配。找不到 ‘Service‘ 类型的 Bean。 Service 与 ServiceImpl 没有互相联系起来
文章讲述了一个Java开发中的问题,即Spring框架无法自动装配Bean,原因是ServiceImpl类未实现对应的Service接口,解决办法是让ServiceImpl实现Service接口。
331 0
无法自动装配。找不到 ‘Service‘ 类型的 Bean。 Service 与 ServiceImpl 没有互相联系起来
|
6月前
|
Java 数据库 开发者
Spring注解大揭秘:@Component、@Service、@Repository详解
Spring注解大揭秘:@Component、@Service、@Repository详解
360 0
|
11月前
|
Kubernetes 监控 Cloud Native
k8s 自身原理之 Service
k8s 自身原理之 Service
|
JavaScript Java 数据库连接
代码生成器(entity、dao、service、controller、vue)
减少你最基础的crud开发,减少你开发的基础工作
103 1
|
前端开发 Java Spring
controller层注入的service为null
controller层注入的service为null
177 0
|
SQL Java 程序员
为啥SpringBoot更多普遍采用Controller+Service接口层+ServiceImpl接口实现层
为啥SpringBoot更多普遍采用Controller+Service接口层+ServiceImpl接口实现层
412 0
|
Dubbo Java 应用服务中间件
compoment注解与Controller、Service、Repository注解的关系
Controller、Service、Repository这三个注解都是Spring提供的,他们三个有着相似的作用,即将被注解类的实例放入到Spring容器中,作用很相似那他们有什么区别呢?
158 0
compoment注解与Controller、Service、Repository注解的关系
|
XML JSON Java
Spring - Bean管理之注解(@Component、@Controller、@RestController、@Service、@Repository)
Spring - Bean管理之注解(@Component、@Controller、@RestController、@Service、@Repository)
478 0
Spring - Bean管理之注解(@Component、@Controller、@RestController、@Service、@Repository)
|
JavaScript 前端开发 NoSQL
面试官:项目中 Dao、Service、Controller、Util、Model 怎么划分的?
面试官:项目中 Dao、Service、Controller、Util、Model 怎么划分的?
380 0
|
SQL druid 前端开发
让SpringBoot不需要Controller、Service、DAO、Mapper
让SpringBoot不需要Controller、Service、DAO、Mapper
306 0
让SpringBoot不需要Controller、Service、DAO、Mapper