我注意到Spring Boot Actuator仅在您的应用程序使用Spring MVC( DispatcherServlet )来处理端点时才有效。默认情况下,如果将模块spring-boot-starter-web添加到项目中,则会包含此servlet。
一旦这个servlet存在,类 EndpointWebMvcAutoConfiguration 就会定制Spring MVC以支持端点和其他管理属性。
为了记录,我的应用程序实现了一个 Vaadin Servlet 来在屏幕上导航,所以在这种情况下有没有办法启用Spring Boot Actuator?
答案 0 :(得分:1)
您无法重用EndpointWebMVCAutoConfiguration类,因为它在DispatcherServlet.class上是明确的条件。如果你看一下实现,你会发现Actuator对Spring MVC有很多依赖。
这会有点笨拙,但您可以考虑实施自己的自动配置类,其灵感来自EndpointWebMVCAutoConfiguration。
如果你走这条路,我祝你好运;)
答案 1 :(得分:0)
你可以同时拥有两者。如果您有VaadinServlet,可以尝试使用以下内容:
@SpringBootApplication
public class AdminApplication {
@Bean
public ServletRegistrationBean<SpringVaadinServlet> springVaadinServlet() {
SpringVaadinServlet servlet = new SpringVaadinServlet();
ServletRegistrationBean<SpringVaadinServlet> registrationBean = new ServletRegistrationBean<>(servlet, "/your-web-app/*");
registrationBean.setLoadOnStartup(1);
registrationBean.setName("VaadinServlet");
return registrationBean;
}
}
@SpringUI(path = "/")
public class VaadinUI extends UI {
...
}
请注意@SpringUI
注释中需要注册名称,自定义servlet 映射URL 和自定义路径。
您可以找到正在运行的演示here。