idea 打包Springboot为(war) 部署到tomcat 配置域名访问

1.在pom.xml里设置 <packaging>war</packaging>

 

2.去除内置tomcat

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!-- 去除内嵌tomcat -->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>


        <!--添加servlet的依赖-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>

 

3.修改启动类

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

 

在Application类的同级添加一个SpringBootStartApplication类,其代码如下:

/**
 * 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法
 */
public class SpringBootStartApplication extends SpringBootServletInitializer {
 
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // 注意这里要指向原先用main方法执行的Application启动类
        return builder.sources(Application.class);
    }
}

 

接着可以打包了:

 

 

 

打包好会生成以为xxx.war的文件,在你项目target文件里

 

 

 

以下是部署配置tomcat的操作

第一步把打包好的war包 放到 tomcat目录下的webapps 下

 

截图:

 

 

 

第二步:找到tomcat目录下的server.xml配置文件

server.xml在conf文件夹下面

 

编辑server.xml,将下图位置的8080端口更改为80

 

 我这里已经改成80了

 

 

 

第三步:

将Host中的name更改成要设置的域名或IP地址,本例中设置了如下域名,此外,我们还需要在Host下配置一个Context用于指定应用的运行环境。其中:

1. docBase(Document Base)为应用相对于webapps的路径,如果将docBase设置为Web应用名称(本例为demo),则在Url地址中就可以不用输入项目名称了;

2. path为应用的上下文路径,如果默认为空则表明当前Context为默认Context;

3. reloadable默认为false,表明是否监听/WEB-INF/classes/以及/WEB-INF/lib目录的变化,应用在开发阶段可以将其设置为true,但是上生产环境时最好设置为false,否则会占用较大的虚拟机资源影响应用性能。

 

posted @ 2019-11-19 17:10  随★风  阅读(1464)  评论(0编辑  收藏  举报