@Configuration:告诉Spring这是一个配置类
@Bean("person")-->作用于方法:给容器中注册一个Bean;类型为返回值的类型
@ComponentScans:配置要一组扫描的包的包扫描器
@ComponentScan:配置要扫描的包的包扫描器
//excludeFilters = Filter[] :指定扫描的时候按照什么规则排除那些组件
//includeFilters = Filter[] :指定扫描的时候只需要包含哪些组件
//FilterType.ANNOTATION:按照注解
//FilterType.ASSIGNABLE_TYPE:按照给定的类型;
//FilterType.ASPECTJ:使用ASPECTJ表达式
//FilterType.REGEX:使用正则指定
//FilterType.CUSTOM:使用自定义规则
@Scope:配置bean的作用域
//prototype:多实例的:获取的时候才会调用方法创建对象,IOC容器启动时不会调用
//singleton:单实例的(默认值):ioc容器启动会调用方法创建对象放到ioc容器中。
//request:同一次请求创建一个实例
//session:同一个session创建一个实例
@Lazy:作用于单例bean,容器启动不创建对象。第一次使用Bean初始化;
@Conditional({Condition}) : 按照一定的条件进行判断,满足则在容器中注册
//spring框架还提供了很多@Condition给我们用,当然总结用语哪种好理解,看给位读者喽
@ConditionalOnBean(仅仅在当前上下文中存在某个对象时,才会实例化一Bean)
@ConditionalOnClass(某个class位于类路径上,才会实例化一个Bean)
@ConditionalOnExpression(当表达式为true的时候,才会实例化一个Bean)
@ConditionalOnMissingBean(仅仅在当前上下文中不存在某个对象时,才会实例化一个Bean)
@ConditionalOnMissingClass(某个class类路径上不存在的时候,才会实例化一个Bean)
@ConditionalOnNotWebApplication(不是web应用)
条件必须继承Condition接口,实现过滤的的方法
@Import(要导入到容器中的组件);容器中就会自动注册这个组件,id默认是全类名
ImportSelector:返回需要导入的组件的全类名数组;
ImportBeanDefinitionRegistrar:手动注册bean到容器中