1、@Configuration:告诉spring这是一个配置类
2、@Bean:给容器中注册一个bean;类型为返回值的类型,id默认是用方法名作为id;默认是单实例
3、@ComponentScan:包扫描,自动把@Controller、@Service、@Repository、@Component下的组件注册,一般与@Configuration组合使用
4、@ComponentScans:可以使用多个@ComponentScan
5、@Filter:与@ComponentScan配合使用;
FilterType.ANNOTATION:按照注解
FilterType.ASSIGNABLE_TYPE:按照给定的类型
FilterType.ASPECTJ:使用aspectj表达式(不常用)
FilterType.REGEX:使用正则指定
FilterType.CUSTOM:自定义规则
6、@Scope:设置组件的作用域,一般与@Bean组合使用;
singleton:单实例(默认值),ioc容器启动会调用方法创建对象放到ioc容器中,以后每次获取就是直接从容器(map.get())中拿
prototype:多实例,ioc容器启动不会去调用方法创建对象,只有在每次获取的时候才会创建对象放在ioc容器中
request:同一次请求创建一个实例
session:同一个session创建一个实例
7、@Lazy:懒加载,适用于单实例;使得容器启动时不创建对象,只在第一次使用bean对象的时候初始化
8、@Conditional:按照条件注册bean,一般与@Bean组合使用,也可以放在类上
9、@Import:给容器中快速导入一个组件,放在类上;id默认是组件的全类名
ImportSelector:返回需要导入的组件的全类名数组
ImportBeanDefinitionRegistrar:手动注册bean到容器中
给容器中注册组件的方法:
①包扫描+组件标注注解(@Controller、@Service、@Repository、@Component)
②@Bean【导入的第三方包的组件】
③@Import【给容器中快速导入一个组件】
④使用Spring提供的FactoryBean;默认获取到的是FactoryBean调用getObject()创建的对象;要获取FactoryBean本身,需要给id前面加一个&
2、@Bean:给容器中注册一个bean;类型为返回值的类型,id默认是用方法名作为id;默认是单实例
3、@ComponentScan:包扫描,自动把@Controller、@Service、@Repository、@Component下的组件注册,一般与@Configuration组合使用
4、@ComponentScans:可以使用多个@ComponentScan
5、@Filter:与@ComponentScan配合使用;
FilterType.ANNOTATION:按照注解
FilterType.ASSIGNABLE_TYPE:按照给定的类型
FilterType.ASPECTJ:使用aspectj表达式(不常用)
FilterType.REGEX:使用正则指定
FilterType.CUSTOM:自定义规则
6、@Scope:设置组件的作用域,一般与@Bean组合使用;
singleton:单实例(默认值),ioc容器启动会调用方法创建对象放到ioc容器中,以后每次获取就是直接从容器(map.get())中拿
prototype:多实例,ioc容器启动不会去调用方法创建对象,只有在每次获取的时候才会创建对象放在ioc容器中
request:同一次请求创建一个实例
session:同一个session创建一个实例
7、@Lazy:懒加载,适用于单实例;使得容器启动时不创建对象,只在第一次使用bean对象的时候初始化
8、@Conditional:按照条件注册bean,一般与@Bean组合使用,也可以放在类上
9、@Import:给容器中快速导入一个组件,放在类上;id默认是组件的全类名
ImportSelector:返回需要导入的组件的全类名数组
ImportBeanDefinitionRegistrar:手动注册bean到容器中
给容器中注册组件的方法:
①包扫描+组件标注注解(@Controller、@Service、@Repository、@Component)
②@Bean【导入的第三方包的组件】
③@Import【给容器中快速导入一个组件】
④使用Spring提供的FactoryBean;默认获取到的是FactoryBean调用getObject()创建的对象;要获取FactoryBean本身,需要给id前面加一个&