1.自动化装配bean
spring从两个角度来实现自动化装配:
1)组件扫描(component scanning):spring 会自动发现应用上下文中所创建的bean
2)自动装配(autowiring):spring自动满足bean之间的依赖
组件扫描默认是不启用的,所以需要显示配置一下spring,命令spring去讯早带有@component注解的类,并为其创建bean.
@compnetScan注解就是启用组件扫描,就会扫描本包里面所有的component组件。
2.使用java代码装配bean
很多情况下通过组件扫描和自动装配来实现spring的自动化装配是最为推荐的方式,但有时候自动化配置的方案行不通,因此需要明确配置spring。比如像加载第3方库中的组件装配到你的应用中,这个时候就没办法在类上加@Component和@Autowired注解,因此就不能使用自动化装配的方案了。
这时采用显示装配的方式。如java和xml。
@configuration
@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注解用来指定要读取的配置文件的路径从而读取这些配置文件,可以同时指定多个配置文件;