2016-08-17 2 views
0

Я хочу создать процесс Java deamon (процессор MQ), который можно запускать как из командной строки (java -jar ...), так и в качестве WAR внутри контейнера JEE, такого как Tomcat. Он должен автоматически запускаться после запуска WebApp. Это приложение не будет иметь WebGUI.SpringBoot, запустить демона как CommandLine (JAR) и внутри Tomcat (WAR)?

Кажется, что я могу использовать SpringBoot. SpringBoot может создавать WAR и JAR-файлы.

Мой вопрос: следует ли использовать SpringBoot ApplicationRunner для портативного демона?

Какова наилучшая практика/рецепт создания демонстрационного процесса (CLI/WebApp) с помощью SpringBoot?

Как это работает под капотом? Если я использую ApplicationRunner и создаю WAR, то SpringBoot создаст сервлет ?

Tx

ответ

0

ApplicationRunner нового в Spring 1.4 ботинке. Он похож на CommandLineRunner Spring Boot 1.3. Он не участвует в подключении контекста приложения так, чтобы интерфейс не отвечал за создание каких-либо сервлетов в развертывании WAR. Вот подробная информация о развертывании приложения в качестве WAR:

http://docs.spring.io/spring-boot/docs/current/reference/html/howto-traditional-deployment.html

@SpringBootApplication 
public class Application extends SpringBootServletInitializer { 

    @Override 
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
     return application.sources(Application.class); 
    } 

    public static void main(String[] args) throws Exception { 
     SpringApplication.run(Application.class, args); 
    } 
} 

SpringBootServletInitializer, что будет создавать сервлет.

Теперь я не уверен, как вы настраиваете процессор MQ, но если он подключен как компонент и имеет поток прослушивателя для сообщений в очереди, то вам действительно не нужен ApplicationRunner. Вам просто нужно подключить процессор как bean-компонент и добавить на него аннотацию @PostConstruct, чтобы вы могли запустить поток слушателя. Если у вас нет контроля над аннотациями на bean-компоненте, вы можете использовать ApplicationRunner и иметь его Autowired с процессором bean. Затем бегун запустил поток слушателя.

Смежные вопросы