spring 注解

606
0
0
最后修改于

简单罗列下 Spring Framework 相关的注解,仅仅起到索引的作用。

For Bean#

@Bean#

标识一个 Bean 的工厂方法,Spring 会在需要的时候自动生成 Bean

@DependsOn#

显式声明 Bean 的依赖关系

@Lazy#

指示 Bean 是否懒加载

@Primary#

控制多个可用 Bean 的情况下的优先级

@Profile#

指示一个 Bean / Configuration 类仅在指定的 Profile 激活的时候加载。

@Configuration#

用于类,该注解用来标识一个类中包含一个或多个 Bean。默认情况下,@Cofiguration 类下声明的 Bean 会被 Spring 进行代理等操作,以提供一些高级功能。在对于没有在 @Configuration 类中声明的 Bean,在这种情况下,Bean 为 Lite 模式。

@Scope#

该注解用于声明一个 Bean 的作用域,可用于 Bean 方法或类。

  • 与 @Bean 一起用作方法级注解时, @Scope 指示用于从方法返回的实例的范围的名称。
  • 与 @Component 一起用作类型级注释时, @Scope 指示用于注释类型实例的范围名称。
@Value#

填入特定的 PlaceHolder 表达式,Spring 的 Context 会自动替换为配置文件中的值

@ComponentScan#

配置组件扫描,定义要扫描的特定包。如果没有定义特定的包,将从声明该注解的类的包开始递归扫描。

基于角色的注解#

org.springframework.stereotype包下的多个注解标识着对应类在整体架构中所扮演的角色。
强调语义,属于概念层面的内容,并不影响作为 Bean 会怎么样,但是其他的 Spring 组建则可能根据这样的语义进入工作。

@Component#

这是 Spring 的一个高级抽象的注解,表示该类是应用的一个组件。
当使用基于注解的配置和类路径扫描时,带有此注解的类被视为自动检测的候选类,会被当作 Bean。

@Service#

@Component 的变体,是对 DDD 对一种抽象,由该注解标注的类提供一种特定服务。

@Repository#

@Component 的变体,是对 DDD 对一种抽象,由该注解标注的类提供一种用于封装模拟对象集合的存储、检索和搜索行为的机制。

@Controller#

@Component 的变体,由该注解标注的类被视为 spring web 中的 Controller。

other#

@Indexed#

自 Spring 5.0 引入,该注解作为功能注解,用于索引各个组件类,加快启动速度。

AOP 注解#
@Aspect#

标注一个切面类

@PointCut#

标识一个切入点
@After@Before@Around@AfterThrowing@AfterReturning 标识一个 Advice 在对应连接点的执行时机

@EnableAspectJAutoProxy
启用 Spring AOP