Spring5中文文档【8】IOC容器之组件扫描及组件相关注解
前言
本系列基于最新5.3.10版本,大部分内容copy于官方文档…
官方文档地址
从Spring 3.0 开始,Spring Java Config 项目提供的许多功能都是 Spring Framework 核心的一部分。允许使用 Java 代码而不是使用传统的 XML 文件来定义 bean。比如使用@Configuration,@Bean, @Import,和@DependsOn等注解。
上一节(基于注解的容器配置) 演示了如何通过注解配置元数据注入IOC中,但是某些情况也没有完全脱离XML配置,Spring 提供了组件功能,通过标记某些类为候选组件,然后通过路径扫描过滤这些类,并最终将这些类转换为Bean对象注册到IOC中,这消除了使用 XML 执行 bean 注册的方式。
1. @Component相关注解
可以使用@Component注解标记某个类为Spring 管理的组件,同时还提供了@Repository、@Service和@Controller注解,进行的语义化的区分,实际作用和@Component一样的。
- @Repository:持久层
- @Service:服务层
- @Controller:表示层
这些注解位于spring-context模块中。
2. 元注解和组合注解
元注解:Spring 提供的许多注解都可以在自己的代码中用作元注解,元注解是可以应用于另一个注解的注解。例如,@Service注解中就添加了@Component元注解。
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Service {
// ...
}