1.设定环境中的active profiles 如:DispatcherServerlet的init-param spring.profiles.active=production spring.profiles.active=dev 如: public class WebInit implements WebApplicationInitializer { @Override public void onStartup(ServletContext sc) { sc.setInitParame…
Spring知识点回顾(01) 一.Java Config 1.服务和服务注入 2.Java 注解 :功能更强一些 3.测试验证 二.注解注入 1.服务和服务注入 2.配置加载 3.测试验证 三.总结和建议 1.配置方式 声明Bean的注解 @Component @Service @Repository @Controller 注入Bean的注解 @Autowired @Inject @Resource bean的配置扫描 @Configuration 和  @Bean: 用@Configura…
Spring知识点回顾(08)spring aware BeanNameAware 获得容器中的bean名称 BeanFactoryAware 获得当前的bean factory ApplicationContextAware 获得当前的ApplicationContext MessageResourceAware 获得messageresource,可以获得文本消息 ApplicationEventPublisherAware 应用事件发布器,可以发布事件 ResourceLoaderAwar…
Spring知识点回顾(07)事件发布和监听 1.DemoEvent extends ApplicationEvent { public DemoEvent(Object source, String msg){ super(source); this.msg = msg; } } 2.DemoListener implements ApplicationEventListener<DemoEvent> { public void onApplicationEvent(DemoEvent ev…
一.条件注解@Conditional 在之前的学习中,通过活动的profile,我们可以获得不同的Bean.Spring4提供了一个更通用的基于条件的Bean的创建,即使用@Conditional注解. @Conditional根据满足某一个特定条件创建一个特定的Bean.比方说,当某一个jar包在一个类路径下的时候,自动配置一个或多个Bean:或者只有某个Bean被创建才会创建另外一个Bean.总的来说,就是根据特定条件来控制Bean的创建行为,这样我们可以利用这个特性进行一些自动的配置. 下…
一.条件注解@Conditional,组合注解,元注解 1. @Conditional:满足特定条件创建一个Bean,SpringBoot就是利用这个特性进行自动配置的. 例子: 首先,两个Condition,判断当前系统是否是Windows或者Linux(True False) 然后,2个ListService实现类,表明不同系统下的ListService实现. 主要,ConditionConfig使用了Java配置与@Conditional注解,根据LinuxCondition,或者Wind…
一.前言 本文承接上一节:Spring_总结_04_高级配置(一)之Profile 在上一节,我们了解到 Profile 为不同环境下使用不同的配置提供了支持,那么Profile到底是如何实现的呢?其实Profile正是通过条件注解来实现的. 条件注解的应用场景举例: (1)希望一个或多个 bean 只有在应用的类路径下包含特定的库时才创建 (2)希望某个bean只有当另外某个特定bean也声明了之后才创建 (3)希望只有某个特定的环境变量设置之后,才会创建某个bean 上述场景能让我们联想到s…
通过活动的profile,可以获得不同的Bean.Spring4提供了一个更通用的基于条件的Bean的创建,即使用@Conditonal注解 @Conditional根据满足某一个特定条件创建一个特定的Bean. 比如:当某一个jar包在一个类路径下的时候,自动配置一个或多个Bean:或者只有某个Bean被创建才会创建另外一个Bean. 总的来说,就是根据特定条件来控制Bean的创建行为,利用这个特性可以进行一些自动的配置. 在SpringBoot中将会大量应用到条件注解.…
之前有说到springboot自动装配的时候,都是去寻找一个XXXAutoConfiguration的配置类,然而我们的springboot的spring.factories文件中有各种组件的自动装配类,到底哪些应该生效,哪些又不生效呢?这个时候就要用到spring提供的条件注解了. 比如: @ConditionalOnJava                               系统的java版本是否符合要求 @ConditionalOnBean                    …
@Conditional是Spring4新提供的注解,它的作用是根据某个条件创建特定的Bean,通过实现Condition接口,并重写matches接口来构造判断条件.总的来说,就是根据特定条件来控制Bean的创建行为,这样我们可以利用这个特性进行一些自动的配置. 一.@Conditional的源码 @Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic…