Spring Annotation 整理

@Bean

功能概述

  • 用于创建一个由SpringIoc容器管理的新对象,@Bean适用于方法级别的上的注解。
  • 在@Configuration、@Component注解类使用。

属性说明

  • value: bean别名,value与name同时设置时,名称名称必需一致
  • name: bean名称,默认使用方法名称做为bean名称
  • autowire: 自动装配,默认不开启
  • initMethod: bean 初始化方法
  • destroyMethod: bean 销毁方法

@ComponentScan

功能概述

  • 装配带有@Controller、@Service、@Repository、@Component注解的类到Spirng容器中。

属性说明

  • basePackages: 指定要扫描的包,
  • basePackageClasses: 指定要扫描的类
  • excludeFilters: Filter[], 指定扫描时候按照什么规则排除哪些组件
  • includeFilters: Filter[], 指定扫描的时候只要包含哪些组件,需要将-
  • useDefaultFilters: 设置为false,才能生效
  • useDefaultFilters: 默认true,默认规则扫描所有

@Filter

** 功能描述 **

  • 声明类型过滤器,包含筛选或排除筛选

** 属性说明 **

  • FilterType.ANNOTATION: 用给定注释标记的筛选
  • FilterType.ASPECTJ:匹配给定AspectJ类型模式表达式的过滤器
  • FilterType.ASSIGNABLE_TYPE:筛选给定类型的对象
  • FilterType.CUSTOM:使用给定的自定义TypeFilter器实现筛选
  • FilterType.REGEX:与给定的正则表达式匹配的过滤
  • classes: 过滤条件表达式

@ComponentScans

功能概述

  • 配置多个ComponentScan时使用;java8以下版本使用

属性说明

  • value: ComponentScan[],指定多个ComponentScan

@Scpoe

功能概述

  • Bean作用域,默认作用域是单例模式

属性说明

  • singleton: 单例模式
  • prototype: 原型模式,每次获取bean实例的时候才会创建对象
  • request: 每一次HTTP请求都会产生一个新的bean
  • session: 每一次HTTP请求都会产生一个新的bean,当前HTTP session内有效
  • global session: 作用域类似于标准的HTTP Session作用域,仅在基于portlet的web应用中才有意义

@Lazy

功能描述

  • 容器启动的时候不自动创建对象,第一次获取的时候创建对象

属性说明

  • value: true,懒加载; false,立即加载

@Conditional

功能描述

  • 条件注解,根据代码中设置的条件装载不同的bean

属性说明

  • value: 设置实现Condition接口类,在设置条件注解之前,先要把装载的bean类去实现Condition接口

@import

功能描述
-注解可以普通类导入到 IoC容器中

属性说明

  • 按全类名导入,默认ID是全类名
  • 实现接口ImportSelector: 返回需要导入的组件的全类名数组
  • ImportBeanDefinitionRegistrar: 手动注册bean到容器中

FactoryBean

功能说明

  • 使用Spring提供的FactoryBean(工厂Bean);非注解,实现FactoryBean接口

属性描述

  • 默认获取到的是工厂Bean调用getObject创建的对象
  • 要获取工厂Bean本身,我们需要给ID的前面加上&符号

@Value

功能说明

  • 使用@value赋值

属性说明
-基本数值
-SpEL赋值, #{}
-获取对应属性文件中定义的属性值,可以写 ${}

@PropertiesSource

功能说明
-读取配置文件中的数据

** 属性说明 **
-file: 加载路径路径下载的配置文件
-classpath: 加载类路径的下的配置文件

@Autowired

功能说明

  • Bean自动注入

** 属性说明 **

  • 默认优先按照类型去容器中找对应的组件
  • 相同类型的组件,再将属性的名称作为组件的id去容器中查找
  • required: 是否必需

@Qualifier

功能说明

  • 制定需要装配组件的id

属性说明

  • value:id名称

@primary

功能说明

  • 默认使用首选的Bean

@Resource

功能说明

  • Bean自动注入, 默认是按照名称进行装配
  • 不支持@Primary与@Autowired(reqiured=false)
  • java规范注解,JSR250

属性说明

  • name: 容器ID名称

@Inject

功能说明

  • Bean自动注入, 支持@Primary,不支持@Autowired(reqiured=false)
  • 需要导入javax inject依赖
  • java规范注解, JSR330

@ Profile

功能说明

  • 制定组件在哪个环境的情况下才能被注册到容器中

属性说明

  • value: 制定环境名称

你可能感兴趣的:(Spring Annotation 整理)