1.自动化装配beanjava
spring从两个角度来实现自动化装配:spring
1)组件扫描(component scanning):spring 会自动发现应用上下文中所建立的beanapp
2)自动装配(autowiring):spring自动知足bean之间的依赖异步
组件扫描默认是不启用的,因此须要显示配置一下spring,命令spring去讯早带有@component注解的类,并为其建立bean.spa
@compnetScan注解就是启用组件扫描,就会扫描本包里面全部的component组件。线程
2.使用java代码装配beancomponent
不少状况下经过组件扫描和自动装配来实现spring的自动化装配是最为推荐的方式,但有时候自动化配置的方案行不通,所以须要明确配置spring。好比像加载第3方库中的组件装配到你的应用中,这个时候就没办法在类上加@Component和@Autowired注解,所以就不能使用自动化装配的方案了。xml
这时采用显示装配的方式。如java和xml。自动化
@configurationio
@Bean表名这个方法会建立一个bean实例并将其注册到spring应用上下文中,
3.xml配置
4.@ConfigurationProperties注解主要用来把properties配置文件转化为bean来使用的,而@EnableConfigurationProperties注解的做用是@ConfigurationProperties注解生效。若是只配置@ConfigurationProperties注解,在IOC容器中是获取不到properties配置文件转化的bean的。
5.环境与profile
@profile("prod")
@Profile注解应用在了类级别上。它会告诉Spring这个配置类中的bean只有在prod profile激活时才会建立。若是dev profile没有激活的话,那么带有@Bean注解的方法都会被忽略掉。
spring.profiles.active:
使用@activeProfiles注解配置
6.@Async为异步注解,表示该方法的线程与此方法异步执行,须要配合@EnableAsync注解使用。若是只有@Async是不生效的,要在Appliction的启动中加上@EnableAsync才会生效。
7.自动装配
@ComponentScan为组件扫描,,("com.coocaa.radar")其后加生效区间,为组件扫描,会自动扫描该包里的@Component注解
@Component为独立的组件
8.//针对第三方库
@Configuration给类加注解,是以java的方式来加载bean
其类中的方法加@Bean注解,表示这个方法会建立一个bean实例,并将其注册到spring应用上下文中。
9.//针对配置中的信息的读取
@ConfigurationProperties(prefix = "app_manage_check")
表明从配置中读取信息,但要配合@EnabelConfigurationProperties({AmqpConfig.class}) 才会生效
还能够@ConfigurationProperties(prefix = "app_manage_check")与@Component或者@Configuration一块儿也会生效
10.@Value("${conf.amqp.queue_broadcast_log.name}")
从配置中读取
11.@Aspect注解,面向aop切面,只加@Aspect是不生效的,要加上@Component或者@Configuration
12.@Configuration
@ConfigurationProperties(prefix = "ldap")
@PropertySource("classpath:ldap.properties")
@PropertySource注解用来指定要读取的配置文件的路径从而读取这些配置文件,能够同时指定多个配置文件;