我正在构建一个发送电子邮件的应用程序,但我想关闭实际的发送,并将其输出到非prod环境中的日志文件。实际发送邮件的类是Spring注入的依赖项,所以我的想法只是构建一个无操作的实现来替换实际的实现。
第二个要求,我不想为不同的环境创建单独的构建。我想创建一个并通过dev - >来推广它。测试 - >刺。
这似乎是依赖注入的常见用例,但我没有看到如何从外部配置它。如果我想这样做,我是否需要放弃基于注释的注入并使用xml?
答案 0 :(得分:3)
您可以在非制作@Profile("PRODUCTION")
的制作@Bean
和@Profile("!PRODUCTION")
上添加@Bean
。然后,您可以在运行时指定活动的配置文件:
java -jar bootApp.jar --spring.profiles.active=PRODUCTION, ...