Raj*_*ami 3 java spring spring-mvc spring-boot
我用spring boot来做样品服务.当我在命令行中使用"java -jar DemoLibrary.war"命令运行它时,它工作正常.我得到了"图书馆应用程序已启动"的正确信息.
我在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.");
}
}
Run Code Online (Sandbox Code Playgroud)
当我在外部tomcat中运行它时,它启动正常并且工作正常.但我不会看到相同的消息,因为它不再使用该主要方法.我只看到spring应用程序启动消息.
有没有办法可以改变那条消息,并按我想要的方式给出?
添加一个ApplicationListener<ContextRefreshedEvent>类型化的类并将其注册为@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.");
}
};
}
}
Run Code Online (Sandbox Code Playgroud)
像这样的东西应该在两种情况下都能工作而不需要复制代码(尽管代码并不复杂但仍然如此).
小智 1
你可以使用onStartup,类似:
@Override
public void onStartup(final ServletContext servletContext) throws ServletException {
LogService.info(Application.class.getName(), "Library Application Has Started.");
super.onStartup(servletContext);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1737 次 |
| 最近记录: |