本文介绍Spring中关于自动装配的方法和规则,以及@Profile动态激活的用法和一个例子。spring
@Autowired注解能够加在构造器、属性、方法、方法参数上。app
默认优先按照类型去容器中找对应的组件,若是存在多个相同类型,再根据属性名称做为组件id去容器中查找。测试
咱们能够经过@Qualifier配合@Autowired指定要装配的组件的idui
也能够在组件上添加@Primary指定首选的beanspa
@Autowired有一个属性required默认为true,表示必定须要这个组件,若是在容器中找不到对应组件,则会报错。对象
在组件的有参构造方法中,会自动进行装配,不须要添加@Autowired注解。blog
好比其中的ApplicationContextAware,实现这个接口,就可以获得applicationContext并使用
Red类实现了两个XXXAware接口,下面咱们来进行测试接口
容器启动后打印以下:虚拟机
说明在对象建立时,会调用接口规定的方法,使咱们获取到底层组件io
能够添加在配置类或配置类中@Bean修饰的方法上。
若是标在配置类中的@Bean方法上,则知足相应激活条件,才会注册对应的bean
若是直接标在配置类上,知足激活条件可使用这个配置类,不然配置类中的一切配置无效。
-Dspring.profiles.active="profile1,profile2"