自动装配
* @Autowired 自动注入 可以标在参数,构造器,属性,方法上
* 容器各组件id名默认是类名首字母小写
* spring利用依赖注入,完成对ioc容器中各个组件的依赖关系赋值
* 默认优先按照类型(class)去找容器中对应的组件
* 若容器中有多个类型相同的组件,则按照id查找
* 自动装配需要将属性值赋值好,否则启动报错,
* 注解autowired有一个属性required,默认为true,改为false则不会报错
*
* @Qualifier
* 指定需要装配的组件id,而不是使用属性名
*
* @Primary
* 让spring自动装配时默认使用首选的bean
*
* @Resource
* 也可自动装配,默认按照组件id名进行装配
* 不能支持@primary和@qualifier
*
* @Inject
* 能进行自动装配
* 使用需导入javax.inject依赖
* 能使用@primary注释,但没有autowired注释内的required=false的功能
*
*
* 自定义组件想要实现spring组件的功能,
* 可以去继承aware接口的子接口并重写它的方法
* 每一个aware都有对应的processor处理
** @Profile 可以写在bean上,也可以写在类上
* spring提供的可以根据当前环境,动态的激活和切换一系列组件的功能
* 开发环境,测试环境,生产环境
* 以数据库为例 要求在开发中连接a数据库,测试中连接b数据库
* 加了环境标识的bean,只有环境被激活才能被注册到容器
* 没有标注环境标识则在任意环境都能加载
* @Profile(“default”)----->默认环境
*
* 切换profile环境方法:
* 1.命令行参数内修改(在虚拟机参数位置加),如-Dspring.profiles.active=xxx
* 2.在ioc容器的环境中修改 applicationContext.getEnvironment.setActiveProfiles(“xxx”,) 可以一次设置多个
* 然后注册配置类(也可以在创建容器对象时注册)
* 最后启动,刷新容器,applicationContext.refresh();
spring复习二(自动装配)个人理解
最新推荐文章于 2024-08-12 15:45:48 发布