Spring之条件注解@Conditional,条件(系统)不同注入的对象也不同。
2017-12-14 21:52
323 查看
条件注解,可以根据不同的条件来做出不同的事情。在Spring中条件注解可以说是设计模式中状态模式的一种体现方式,同时也是面向对象编程中多态的应用部分。
在Spring框架中,当我们使用条件注解时,我们会为每种独立的条件创建一个类,根据这个类对应的条件的成立情况我们来选择不同的任务来执行。当然我们在声明任务时,一般使用接口来声明。因为我们会在Spring的配置类中指定具体条件下的具体类。接下来,我们将来看一下Spring框架中@Conditional注解的具体使用方式。
本次演示,我们将根据操作系统的不同,寻找对应系统的Tomcat的存储目录,并执行Tomcat的启动操作。
windows环境:win10系统,Tomcat目录地址:D:\apache-tomcat-7.0.78\bin;
Linux环境:Ubuntu14系统,Tomcat目录地址:/myweb/apache-tomcat-9.0.0.M26/bin;
1、创建常量类ConfigUtil,以便常量的管理。
2、创建对应的Service接口TomcatService。
3、创建Service接口的不同实现类WindowsTomcatServiceImpl、LinuxTomcatServiceImpl;
4、创建完Service接口及其实现类后,需要创建@Conditional注解所需的条件类。每个条件类对应着一种独立的情况,在Spring中的条件类需要实现Condition接口。下方是我们创建的两个条件类WindowsCondition、LinuxCondition。
5、Service的接口、Service的类以及相应的条件创建完毕后,接下来我们就该在Java的配置类中将条件类与Service类对象进行关联了。
6、测试,使用main方法测试。
最终打印出我们在windows下的执行结果
7、使用Runtime执行Tomcat的启动或停止命令(项目已通过Spring boot搭建为web项目,可通过路径访问执行操作,已忽略test测试)。
8、完整的代码Demo
方法1,通过个人网站:http://yangjiace.xyz/resource.html
方法2,通过CSDN论坛:http://download.csdn.net/download/yjc_1111/10159164
注意
在执行时,需要将Tomcat的如果发现没有启动Tomcat,并且控制台打印如下信息:
这时我们需要将CATALINA_HOME配置到环境变量中。
在Spring框架中,当我们使用条件注解时,我们会为每种独立的条件创建一个类,根据这个类对应的条件的成立情况我们来选择不同的任务来执行。当然我们在声明任务时,一般使用接口来声明。因为我们会在Spring的配置类中指定具体条件下的具体类。接下来,我们将来看一下Spring框架中@Conditional注解的具体使用方式。
本次演示,我们将根据操作系统的不同,寻找对应系统的Tomcat的存储目录,并执行Tomcat的启动操作。
windows环境:win10系统,Tomcat目录地址:D:\apache-tomcat-7.0.78\bin;
Linux环境:Ubuntu14系统,Tomcat目录地址:/myweb/apache-tomcat-9.0.0.M26/bin;
1、创建常量类ConfigUtil,以便常量的管理。
2、创建对应的Service接口TomcatService。
3、创建Service接口的不同实现类WindowsTomcatServiceImpl、LinuxTomcatServiceImpl;
4、创建完Service接口及其实现类后,需要创建@Conditional注解所需的条件类。每个条件类对应着一种独立的情况,在Spring中的条件类需要实现Condition接口。下方是我们创建的两个条件类WindowsCondition、LinuxCondition。
5、Service的接口、Service的类以及相应的条件创建完毕后,接下来我们就该在Java的配置类中将条件类与Service类对象进行关联了。
6、测试,使用main方法测试。
最终打印出我们在windows下的执行结果
7、使用Runtime执行Tomcat的启动或停止命令(项目已通过Spring boot搭建为web项目,可通过路径访问执行操作,已忽略test测试)。
8、完整的代码Demo
方法1,通过个人网站:http://yangjiace.xyz/resource.html
方法2,通过CSDN论坛:http://download.csdn.net/download/yjc_1111/10159164
注意
在执行时,需要将Tomcat的如果发现没有启动Tomcat,并且控制台打印如下信息:
这时我们需要将CATALINA_HOME配置到环境变量中。
相关文章推荐
- Spring 注入不同作用域对象
- 用spring的注解建立bean与bean之间的关系组件装配及自动注入依赖对象
- Spring学习笔记——关于Spring注解扫描不能注入new对象问题
- Spring学习笔记——关于Spring注解扫描不能注入new对象问题
- spring注解注入加载系统配置
- spring boot 条件注解的使用@Conditional;@Conditional 可以根据条件,创建不同的bean,
- MyBatis+Spring在注解@Autowried后通过反射的方式调用方法获取注入的Service或DAO对象为空
- 【Spring】【IOC】【Spring容器注入Bean对象的四种方式】【Spring中注入bean对象的注解】
- Spring学习笔记(二)——注解创建对象和注入属性
- spring学习(五)—通过注解方式创建对象和注入属性
- spring boot-高级话题之@Conditional(条件注解)(3)
- Spring条件注解@Conditional
- Spring中使用事务搭建转账环境方法二 相对简便的注解方法 ——配置文件注入对象属性需要setter方法 注解方法,不需要生成setter方法
- Spring知识点回顾(06)Profile 和 条件注解 @Conditional
- Spring中使用事务搭建转账环境方法二 相对简便的注解方法 ——配置文件注入对象属性需要setter方法 注解方法,不需要生成setter方法
- 从头认识Spring-2.6 在注解中使用表达式@Value(2)-使用表达式注入其他对象的值
- 第十一章 Spring条件注解@Conditional
- ######【spring属性注入(Ioc的DI)总结】:注解方式属性注入,属性名任意.=for理解:Aop注入代理对象时,注入被增强类对象时,属性名为proxy(自定义)。
- 使用spring注解,注入sessionFactory类
- spring-注入对象list