@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配置可以有多个。


相关文章
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的社区智慧养老监护管理平台的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的社区智慧养老监护管理平台的详细设计和实现(源码+lw+部署文档+讲解等)
443 4
|
Java Spring
Spring Cloud OpenFeign 远程调用传递请求头信息
import feign.RequestInterceptor; import feign.RequestTemplate; import lombok.extern.slf4j.Slf4j; import org.springframework.util.Assert; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes;
697 0
|
前端开发 数据安全/隐私保护
什么是mvvm,mvp、mvc和mvvm模式有什么区别?
什么是mvvm,mvp、mvc和mvvm模式有什么区别?
571 0
|
2月前
|
人工智能 供应链 安全
国家互联网应急中心通报:OpenClaw存在致命漏洞,90%实例可被直接攻击
国家网信办通报OpenClaw存在严重安全风险:默认暴露公网、90%实例可被直接攻击。该AI智能体框架存在架构缺陷、258个历史漏洞、插件投毒、权限失控等五大系统性风险,含多个高危RCE漏洞。建议立即升级至2026.3.11+版本,禁用默认配置,严审插件,最小权限运行。
|
5月前
|
Java
@SpringBootConfiguration注解
@SpringBootConfiguration是@Configuration的封装,标注主启动类,使其所在包成为组件扫描的根路径。因此主类需置于外层包,确保所有组件被扫描到,实现自动配置与组件注入。
|
5月前
|
Nacos 微服务
Nacos与Eureka的区别
Eureka与Nacos均支持服务注册发现、健康监测及集群部署,默认采用AP模式保障高可用。区别在于:Nacos心跳间隔更短(5秒),超时剔除更快,支持配置管理与服务变更广播推送,而Eureka仅提供注册中心功能,更新依赖定时任务。
|
Java Spring
Spring Boot——Spring Boot启动原理
Spring Boot——Spring Boot启动原理
1586 0
|
10月前
|
存储 安全 vr&ar
AR眼镜石油化工巡检:让设备说话,让巡检更靠谱
在石油化工巡检中,AR眼镜方案通过直观技术辅助人工判断,提升巡检效率与准确性,保障作业安全。结合工业级硬件与智能功能,助力巡检人员高效完成任务。
|
存储 Java 测试技术
阿里巴巴java开发手册
这篇文章是关于阿里巴巴Java开发手册的整理,内容包括编程规约、异常日志、单元测试、安全规约、MySQL数据库使用以及工程结构等方面的详细规范和建议,旨在帮助开发者编写更加规范、高效和安全的代码。
|
存储 监控 关系型数据库
监控 PostgreSQL 的性能指标
监控 PostgreSQL 的性能指标
812 3

热门文章

最新文章