springboot+thymeleaf生成war包

算是一个简单的实训吧,对于一个专攻C的人来说,搞java真的头大,恰好java是自己最讨厌的语言 = = ,在吃老本的情况下,部署只懂war,像什么springboot thymeleaf maven 这种东西听听就好,从不知道怎么生成war到能生成正确的war,说实话挺烦人的,在这diss java

正文

一、修改pom.xml

1.pom.xml最下方build,添加一个springboot插件(文件原先好像也是这样,jdk注释掉后,貌似没区别)

 1<build>
 2        <finalName>qst-mall</finalName>
 3        <plugins>
 4            <plugin>
 5                <groupId>org.springframework.boot</groupId>
 6                <artifactId>spring-boot-maven-plugin</artifactId>
 7            </plugin>
 8            <!-- JDK1.8插件 -->
 9<!--            <plugin>-->
10<!--                <groupId>org.apache.maven.plugins</groupId>-->
11<!--                <artifactId>maven-compiler-plugin</artifactId>-->
12<!--                <configuration>-->
13<!--                    <source>1.8</source>-->
14<!--                    <target>1.8</target>-->
15<!--                    <encoding>utf-8</encoding>-->
16<!--                </configuration>-->
17<!--            </plugin>-->
18        </plugins>
19 </build>

2.tomcat依赖设置成provided(我把之前的测试注释掉了,不注释好像也可以)

 1<!--        <dependency>-->
 2<!--            <groupId>org.springframework.boot</groupId>-->
 3<!--            <artifactId>spring-boot-starter-test</artifactId>-->
 4<!--            <scope>test</scope>-->
 5<!--        </dependency>-->
 6        <dependency>
 7            <groupId>org.springframework.boot</groupId>
 8            <artifactId>spring-boot-starter-tomcat</artifactId>
 9            <scope>provided</scope>
10        </dependency>

3.修改生成packaging,jar -> war

1<packaging>war</packaging>

二、修改启动类

1.修改QstMallApplication.java,如下修改

 1@MapperScan("wxd.qst.mall.dao")
 2@SpringBootApplication
 3//public class QstMallApplication {
 4//    public static void main(String[] args) {
 5//        SpringApplication.run(QstMallApplication.class, args);
 6//    }
 7//}
 8public class QstMallApplication extends SpringBootServletInitializer {
 9    @Override
10    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
11        return builder.sources(QstMallApplication.class);
12    }
13
14    public static void main(String[] args) {
15        SpringApplication.run(QstMallApplication.class, args);
16    }
17}

三、maven生成

springboot001.png

在项目target文件夹下会找到war包

四、部署到tomcat(问题很多)

1.本地测试

springboot002.png

tomcat端口8080,该项目修改端口,会造成图片加载不出来,具体原因后续说明

本地测试,可以运行起来,但是访问路径为 localhost:8080/qst-mall这样会造成访问请求路径不对,很多请求访问不到,不是搞java的也不知道为什么这些项目架构不一样,idea内置tomcat是直接访问 localhost:8080即可访问,所以在外置的tomcat上也需要这样,修改tomcat配置文件 server.xml,此时轻车熟路 = =,修改host

1  <Host name="localhost"  appBase="webapps"
2        unpackWARs="true" autoDeploy="true">
3		<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
4           prefix="localhost_access_log" suffix=".txt"
5           pattern="%h %l %u %t "%r" %s %b" />
6		<Context path="/" docBase="qst-mall" debug="0" reloadable="true" />
7  </Host> 

此刻,该项目即可在外置的tomcat上运行起来了,问题还有图片不能正常访问

2.服务器部署

阿里云服务器centos7.6,mysql5.7,Nginx1.15,tomcat9.0,域名https://cv.aeneag.xyz/

修改项目Constans.java,并上传服务器所用图片

路径修改为linux环境路径 public final static String FILE_UPLOAD_DIC = "/usr/upload/";

作为一个搞C的,linux还算熟悉,mysql安装,Nginx安装不再赘述,好像写过,可以尝试用docker安装,方便快简单

运行tomcat ./startup.sh 开始之前配置好tomcat

 1 <Host name="cv.aeneag.xyz"  appBase="webapps"
 2            unpackWARs="true" autoDeploy="true">
 3
 4        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
 5               prefix="localhost_access_log" suffix=".txt"
 6               pattern="%h %l %u %t "%r" %s %b" />
 7
 8       <Context path="/" docBase="qst-mall" debug="0" reloadable="true" />  
 9
10      </Host>

Nginx反向代理

配置Nginx,并配置域名使用https便不再赘述了

五、图片正确加载成功

图片加载不成功,虽然不是专业写java的,感觉该项目有些代码有些问题,图片加载不出来,需要修改数据库内容,保存图片信息应该保存相对路径,而不是保存访问图片链接,这样会造成项目移植性不好,想要知道自己所需要图片链接,用谷歌浏览器F12查看,springboot003.png

上图所示,修改这个表中的开头,修改的是自己所需要的域名或者ip地址

再也不想搞javaWeb了,总之还算有收获,虽然没写几行java代码。转war的过程小毛病挺多,感谢史老师的帮助,收获颇多。


    


公众号'艾恩凝'
个人公众号
个人微信
个人微信
    吾心信其可行,
          则移山填海之难,
                  终有成功之日!
                                  ——孙文
    评论
    0 评论
avatar

取消