一、配置组件
1、@Configuration
把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean;
Bean的取值顺序:默认取类名首字母小写;其次取方法名;最后优先取Bean注解的value;
2、@ComponentScan
在配置类上添加@ComponentScan注解。该注解默认会扫描该类所在的包下所有的配置类,相当于之前的<context:component-scan>
3、@Scop
用于指定scop作用域的(用在类上)
prototype 原型,多例;singleton 单例;request 同一个请求只创建一个实例;session 同一个session只创建一个实例;
4、@Lazy
表示延迟初始化;默认是非延时加载;只针对非单例实例;
5、@Lonitional
按一定条件进行判断,满足条件给容器注册Bean
6、@Import
导入外部资源
二、赋值组件
1、@Componet
普通Bean声明组件
2、@Service
业务逻辑Bean声明组件
3、@Repository
持久化Bean声明组件
4、@Controller
Web请求处理Bean声明组件
5、@Value
通用赋值组件
6、@Autowired
Bean注入组件
默认按类型装配,如果系统中存在多个实例,需要配合@Qualifier使用。
7、@PropertySource
属性注入组件
支持的类型 1、基本数据类型 3、Spring EL表达式 4、通过配置文件赋值
8、@Qualifier
与@Autowired用法相同,如果系统中存在多个实例,可以指定其中一个,优先级高于@Autowired。
9、@Resource
默认按名称装配,如果找不到名称比配的bean会按类型装配。
三、给IoC中注册Bean的方式
1、@Bean 直接导入单个类
2、@ComponentScan 包扫描默认是扫描(@Controller、@Service、@Repository、@Component)
3、@Import 快速给容器导入组件Bean
a. @Import 直接传参导入
b. ImportSelector 自定义导入规则
c.ImportBeanDefinitionRegistrar ,使用BeanDefinitionRegistry可以手动注入到IoC容器中
4、FactoryBean 把需要注入的对象封装为FactoryBean
a、FactoryBean 负责将Bean注入到容器的Bean
b、BeanFactory 从IoC中获得Bean对象
@Scope
原文:https://www.cnblogs.com/wanwei2018/p/13901469.html