目录

本文是一篇总览性质的文章,用来总结当前 Spring 中用到的一些核心注解

注解功能
@Bean向 Spring 容器中注册组件
@Primary同类组件如果有多个,标注主组件
@DeoendsOn组件之间生命依赖关系
@Lazy组件懒加载(直到使用的时候才创建组件)
@Scope声明组件的作用范围(SCOPE_PROTOTYPE,SCOPE_SINGLETON)
@Configuration声明这是一个配置类,替换以前的配置文件
@Component声明这是一个组件,与(@Controller,@Service,@Repository)作用相同
@Indexed加速注解,所有标注了此注解的组件,会启动快速加载
@Order声明组件加载优先级,数字越小优先级越高,优先工作
@ComponentScan包扫描
@Conditional条件注入
@Import导入第三方 jar 包中的组件,或定制批量导入组件逻辑
@ImportResource导入以前的xml配置文件,让其生效
@Profile基于多环境激活
@PropertyResource外部properties配置文件和 JavaBean 进行绑定,进一步有@ConfigurationProperties
@PropertyResources@PropertySource组合注解
@AutoWired自动装配
@Qualifier精确指定
@Value取值、计算机环境变量、JVM 系统
@Lookup单例组件依赖非单例组件,非单例组件获取需要使用方法

🎶 @Indexed 注解想要使用的话,需要引入额外的 Spring 依赖

1
2
3
4
5
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-indexer</artifactId>
<optional>true</optional>
</dependency>