在spring-boot应用程序中,是否可以通过外部配置更改依赖项注入?

时间:2016-11-01 13:42:34

标签: spring-boot

我正在构建一个发送电子邮件的应用程序,但我想关闭实际的发送,并将其输出到非prod环境中的日志文件。实际发送邮件的类是Spring注入的依赖项,所以我的想法只是构建一个无操作的实现来替换实际的实现。

第二个要求,我不想为不同的环境创建单独的构建。我想创建一个并通过dev - >来推广它。测试 - >刺。

这似乎是依赖注入的常见用例,但我没有看到如何从外部配置它。如果我想这样做,我是否需要放弃基于注释的注入并使用xml?

1 个答案:

答案 0 :(得分:3)

您可以在非制作@Profile("PRODUCTION")的制作@Bean@Profile("!PRODUCTION")上添加@Bean。然后,您可以在运行时指定活动的配置文件:

java -jar bootApp.jar --spring.profiles.active=PRODUCTION, ...