如果应用程序在嵌入式容器中运行,我希望创建@Bean。如果应用程序在外部tomcat上运行,则不应创建该bean。有没有什么办法可以创建@Conditional注释来创建bean,只有当应用程序在嵌入式tomcat中运行时。只为嵌入式tomcat或嵌入式服务器创建Bean
3
A
回答
3
而不是使用自定义条件,您可以使用仅在使用嵌入容器时启用的Spring配置文件。当您将Spring Boot应用程序部署到Tomcat时,其主要方法不会运行,使其成为启用只希望在嵌入式案例中处于活动状态的配置文件的好地方。
事情是这样的:
@SpringBootApplication
public class So34924050Application extends SpringBootServletInitializer {
@Bean
@Profile("embedded")
public EmbeddedOnlyBean embeddedOnlyBean() {
return new EmbeddedOnlyBean();
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(So34924050Application.class);
}
public static void main(String[] args) {
new SpringApplicationBuilder(So34924050Application.class).profiles("embedded").run(args);
}
}
0
我用@ConditionalOnClass
注释,如果存在嵌入式的Tomcat类只创建TomcatFactory。如果这不符合您的目的,您可以使用多个@CondtionalOn...
类来有条件地创建一个bean。例如@CondtionalOnProperty
。
即
// If running tomcat embedded, ensure that JNDI is enabled.
@Bean
@ConditionalOnClass(name = {
"org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory",
"org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer",
"org.apache.catalina.startup.Tomcat"
})
public TomcatEmbeddedServletContainerFactory tomcatFactory() {
return new TomcatEmbeddedServletContainerFactory() {
@Override
protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(final Tomcat tomcat) {
tomcat.enableNaming();
return super.getTomcatEmbeddedServletContainer(tomcat);
}
};
}
相关问题
- 1. Spring Boot嵌入式tomcat或不嵌入式tomcat
- 2. 嵌入式Web服务器
- 3. 春嵌入式服务器
- 4. Maven Tomcat(嵌入式)
- 5. 什么是嵌入式服务器和嵌入式Java库?
- 6. 嵌入式与独立式Tomcat(HTTP)服务器
- 7. Neo4j嵌入式HA服务器模式
- 8. Windows嵌入式2009服务
- 9. 如何创建嵌入式WebSocket服务器Jetty 9?
- 10. 嵌入式Jetty服务器挂起
- 11. C#嵌入式FTP服务器
- 12. 嵌入式web服务器运行php
- 13. Neo4j服务器与嵌入模式
- 14. 嵌入式应用服务器
- 15. 使用嵌入式glassfish服务器
- 16. Chrome Packaged App +嵌入式Web服务器
- 17. C++ qt嵌入式mysql服务器
- 18. Android嵌入式网络服务器
- 19. C#嵌入式smtp服务器
- 20. 嵌入式Java HTTP服务器
- 21. .NET中的嵌入式Web服务器
- 22. Neo4j rest服务器v/s嵌入式
- 23. Neo4j服务器与嵌入式
- 24. 嵌入式服务器的Web技术
- 25. 什么是嵌入式LDAP服务器
- 26. 如何在嵌入式tomcat中运行泰坦服务器?
- 27. 在嵌入式tomcat服务器中设置“背书”目录
- 28. Tomcat中的嵌入式ActiveMQ服务器8
- 29. 如何配置Maven Cargo以使用嵌入式Tomcat服务器?
- 30. 使用嵌入式tomcat服务器时发出警告
此代码不能正常工作,它仍然呼吁嵌入式Tomcat和独立的Tomcat太.... – b0c1