11.1、打成jar部署
1)、配置端口号
server.port=8088
2)、C:\Users\figo>e:
E:\>cd E:\CompayProjects\TariffSystem\Trunk\TariffLetter
E:\CompayProjects\TariffSystem\Trunk\TariffLetter> mvn clean install -Dmaven.test.skip=true
3)、启动:
加上& 后台关闭后,服务不会中断
java -jar TariffLetter-1.0.0.jar &
java -jar TariffLetter-1.0.0.war &
访问:
http://localhost:8088/Tariff/getUsers
4)、关闭进程
netstat -nlp|grep :8088
得到进程号
Kill -9 16077
参考
https://www.cnblogs.com/tuanz/p/11204971.html
11.2、打成war
1)、application继承SpringBootServletInitializer
public class TariffLetterApplication extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(TariffLetterApplication.class, args);
}
}
mvn clean install -Dmaven.test.skip=true
2)、打成war
Pom.xml里面
<packaging>jar</packaging>改成
<packaging>war</packaging>
3)、排除tomcat
1.排除spring-boot-starter-web中的Tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
或者添加依赖(推荐,上面那种方式打包会出现缺少javax相关servlet的包的错)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。
相当于compile,但是打包阶段做了exclude操作-->
<scope>provided</scope>
</dependency>
4)、部署到was或者tomcat,jboss等容器
TariffLetter.war放在
D:\apache-tomcat-9.0.21\webapps
访问:
http://localhost:9080/TariffLetter/Tariff/getUsers
http://localhost:9080/TariffLetter/Tariff/index
11.3 SpringBoot启动出现java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required
使用mysql 5.1.71报上面的错
1)、Pom.xml里面降到5.1.37
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.37</version>
<scope>runtime</scope>
</dependency>
2)、另外application.properties
spring.datasource.test1.driver-class-name=com.mysql.cj.jdbc.Driver 改成
spring.datasource.tariff.driver-class-name=com.mysql.jdbc.Driver
11.4 springboot线程池
SpringBoot项目框架下ThreadPoolExecutor线程池+Queue缓冲队列实现高并发中进行下单业务_HuYong-CSDN博客_spring threadpoolexecutor
spring boot之 Bean的初始化和销毁(4)_日进斗识-CSDN博客_springboot销毁bean
11.5添加第三方Jar到本地mvn仓库
1、环境变量添加:
MAVEN_HOME:(maven位置)
M2_HOME:(maven位置)
PATH:%M2_HOME%\bin
(验证maven是否配置成功cmd-->mvn -version)
2、跳转到jar所在文件夹执行命令行,当然得事先配置mvn环境变量
C:\Users\figo>e:
E:\>cd E:\test\jar
E:\test\jar>mvn install:install-file -DgroupId=com.chinapay.util.log -DartifactId=MonitorLogger -Dversion=1.0 -Dpackaging=jar -Dfile=monitor-logger.jar
对应关系
<dependency>
<groupId>com.chinapay.util.log</groupId>
<artifactId>MonitorLogger</artifactId>
<version>1.0</version>
</dependency>
11.6 springBoot 打成jar包 无法访问jsp文件
网上说的可以将springBoot降级到1.4之类的方法
我偷懒不想降级 在pom文件中添加
<packaging>war</packaging>
然后打成war包 同样用 java -jar xxx.war 方式启动即可访问jsp文件
11.7 no tests found with test runner 'JUnit 5'
Pom.xml里面删除
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
Java Build Path Library
新增junit4改成junit5
11.8 No qualifying bean of type 'javax.sql.DataSource' available: more than one 'primary' bean found
这里只需要在配置两个数据源的时候,在其中一个数据源加上注解@Primary即可,
让Spring知道默认加载配置。
@Configuration
@Primary
@MapperScan(basePackages = "com.figo.springboottest.mapper.cppaydb", sqlSessionTemplateRef = "cppaydbSqlSessionTemplate")
public class DataSourceCPPayDBConfig {}