Spring注解:
- @Configuration 配置类
- @Bean 给容器中注册一个Bean;类型为返回值的类型,id默认方法名
- 只要标注了 @Controller、 @Service 、 @Repository、 @Component,就会进行包扫描
- @ComponentScan: value:指定要扫描的包
- @Filter过滤器注解,规定过滤规则
过滤类型:FilterType:ANNOTATION 按照注解
ASSIGNABLE_TYPE 按照给定的类型
ASPECTJ 使用ASPECTJ表达式
REGEX 使用正则表达式
CUSTOM 自定义规则 - @Scope 调整作用域 singleton 单例(默认值) ioc容器启动会调用方法创建对象放到ioc容器中,以后每次获取是在容器(map.get())中拿
prototype 多例 ioc容器启动不会创建对象,每次获取的时候调用方法创建对象
request 同一次请求创建一个实例
session 同一个session创建一个实例 - @Lazy 懒加载 单实例bean:默认在容器启动的时候创建对象
懒加载:容器启动的时候不创建对象,第一次获取bean的时候创建对象,并初始化 - @Conditional({Condition接口的实现类}) 按照一定的条件进行判断,满足条件给容器中注册bean
给容器中注册组件:
1.包扫描+组件标注注解(@Controller/@Service/@Repository/@Component) [自己写的类]
2. @Bean[导入第三方包里面的组件]
3. @Import()[快速给容器中导入组件]
(1) @Import({组件}),id默认全类名
(2) @Import({ImportSelector的实现类}) 注册ImportSelector的实现类返回的全类名
(3) @Import({ImportBeanDefinitionRegistar的实现类}) 手动注册bean到容器中
4.使用FactoryBean(工厂Bean)
(1) 默认获取的是工厂bean调用的getObject()创建的对象
(2) 要获取工厂Bean本身,在id前加’&’