春天可以开两个公共课 - 开机吗?

时间:2018-01-07 18:35:26

标签: maven spring-boot

在我的springboot应用程序中,我需要部署到现有的tomcat服务器,因此我需要将应用程序部署为war文件。为了做到这一点,我必须改变我的主要课程。

我目前在主应用程序类中有以下代码

@SpringBootApplication
public class Application implements CommandLineRunner {

@Autowired
private UserService userservice;

public Static void main(String[] args) {
    SpringApplication.run(Application.class, args);

我需要将其更改为以下内容才能将maven更改为war文件而不是jar。

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

@Autowired
private UserService userService;

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

问题是我还需要实现commandlinerunner。我可以同时拥有吗?如果是这样,我该怎么做呢?我已经搜索过了,到目前为止我发现的信息充其量是模棱两可的。任何帮助将非常感谢以及文档,所以我可以审查它,并分享它,如果我碰到其他人有类似的问题。

编辑:我确实找到了一个似乎意味着我可以同时在同一个application.java和pom.xml文件中声明的文档,说明应该首先初始化哪一个。这是一个正确的方法吗?我读到了另一个问题,那个试过这个问题的个人因为这个问题最终得到了两个应用程序。不幸的是,他没有提供太多代码来解释他的尝试,只是他的结果。

1 个答案:

答案 0 :(得分:0)

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

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