跳到主要内容

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 {



// ...
}