java – 环境属性的Spring服务实现
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 环境属性的Spring服务实现,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1541字,纯文字阅读大概需要3分钟。
内容图文
![java – 环境属性的Spring服务实现](/upload/InfoBanner/zyjiaocheng/725/497bbe7d713144df865e284ad46aa9a2.jpg)
我有一个服务界面
interface ImageSearchService {
// methods...
}
我有2个实现:
@Service
class GoogleImageSearchImpl implements ImageSearchService {
// methods...
}
@Service
class AzureImageSearchImpl implements ImageSearchService {
// methods...
}
我有一个控制器使用两者之一:
@Controller
ImageSearchController {
@Autowired
ImageSearchService imageSearch; // Google or Azure ?!?
}
如何使用Environment API设置正确的实现?
如果environment属性是my.search.impl = google spring需要使用GoogleImageSearchImpl,或者环境my.search.impl = google spring需要使用AzureImageSearchImpl.
解决方法:
您可以使用Spring Profiles实现此目的.
interface ImageSearchService {}
class GoogleImageSearchImpl implements ImageSearchService {}
class AzureImageSearchImpl implements ImageSearchService {}
请注意,@Service注释已从两个实现类中删除,因为我们将动态实例化它们.
然后,在您的配置中执行以下操作:
<beans>
<beans profile="azure">
<bean class="AzureImageSearchImpl"/>
</beans>
<beans profile="google">
<bean class="GoogleImageSearchImpl"/>
</beans>
</beans>
如果您使用Java配置:
@Configuration
@Profile("azure")
public class AzureConfiguration {
@Bean
public ImageSearchService imageSearchService() {
return new AzureImageSearchImpl();
}
}
@Configuration
@Profile("google")
public class GoogleConfiguration {
@Bean
public ImageSearchService imageSearchService() {
return new GoogleImageSearchImpl();
}
}
运行应用程序时,通过设置变量spring.profiles.active的值来选择要运行的配置文件.您可以将其作为-Dspring.profiles.active = azure传递给JVM,将其配置为环境变量等.
Here是一个示例应用程序,显示Spring Profiles的运行情况.
内容总结
以上是互联网集市为您收集整理的java – 环境属性的Spring服务实现全部内容,希望文章能够帮你解决java – 环境属性的Spring服务实现所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。