1.spring中@Configuration和@Component的区别
共同点:都可以用于标记某个类是一个配置类。
不同点:Configuration是通过CGL动态代理来代理注解的类,生成当前对象的子类Class,并对类中的方法进行拦截,第二次调用时,直接从BeanFactory中直接获取,所以得到的都是同一个配置类。而Component标注的类不会被CGL代理,而是每次在使用的时候,重新创建一个对象。可以理解为:单例和多例。
2.如何在spring容器加载完成后启动某个方法或者代码块
2.1 @PostStruct 注解。
2.2 @Bean
这种方法有点取巧,标注的方法必须要有返回值,以下代码,演示PostStruct和Bean:
结果:
2.3 实现CommandLineRunner并重写run方法
代码如下图:
结果:
2.4 类实现ApplicationListener<ContextRefreshedEvent>
代码如下:
结果:
注意:以上四种方式 ,在类上必须标注@Component
3.Ribbon的负载均衡策略
直接上图: