更改 Spring 应用程序启动消息
Changing Spring Application Started Message
我使用 spring 启动来做一个示例服务。当我 运行 它使用时它工作正常
"java -jar DemoLibrary.war" 命令行中的命令。我收到 "Library Application Has Started".
的正确消息
我在 Appplication.java 文件中喜欢下面的内容;
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(Application.class, args);
LogService.info(Application.class.getName(), "Library Application Has Started.");
}
}
当我 运行 它在外部 tomcat 时,它启动正常,工作也正常。但我没有看到相同的消息,因为它不再使用该主要方法。我只看到 spring 应用程序启动消息。
有什么方法可以更改该消息并按我的意愿提供吗?
您可以使用 onStartup
,例如:
@Override
public void onStartup(final ServletContext servletContext) throws ServletException {
LogService.info(Application.class.getName(), "Library Application Has Started.");
super.onStartup(servletContext);
}
添加 ApplicationListener<ContextRefreshedEvent>
类型 class 并将其注册为 @Bean
。
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public ApplicationListener<ContextRefreshedEvent> startupLoggingListener() {
return new ApplicationListener<ContextRefreshedEvent>() {
public void onApplicationEvent(ContextRefreshedEvent event) {
LogService.info(Application.class.getName(), "Library Application Has Started.");
}
};
}
}
像这样的东西应该在两种情况下都可以工作而无需重复代码(尽管代码并不复杂但仍然如此)。
我使用 spring 启动来做一个示例服务。当我 运行 它使用时它工作正常 "java -jar DemoLibrary.war" 命令行中的命令。我收到 "Library Application Has Started".
的正确消息我在 Appplication.java 文件中喜欢下面的内容;
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(Application.class, args);
LogService.info(Application.class.getName(), "Library Application Has Started.");
}
}
当我 运行 它在外部 tomcat 时,它启动正常,工作也正常。但我没有看到相同的消息,因为它不再使用该主要方法。我只看到 spring 应用程序启动消息。
有什么方法可以更改该消息并按我的意愿提供吗?
您可以使用 onStartup
,例如:
@Override
public void onStartup(final ServletContext servletContext) throws ServletException {
LogService.info(Application.class.getName(), "Library Application Has Started.");
super.onStartup(servletContext);
}
添加 ApplicationListener<ContextRefreshedEvent>
类型 class 并将其注册为 @Bean
。
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public ApplicationListener<ContextRefreshedEvent> startupLoggingListener() {
return new ApplicationListener<ContextRefreshedEvent>() {
public void onApplicationEvent(ContextRefreshedEvent event) {
LogService.info(Application.class.getName(), "Library Application Has Started.");
}
};
}
}
像这样的东西应该在两种情况下都可以工作而无需重复代码(尽管代码并不复杂但仍然如此)。