Skip to content

Commit 5acf090

Browse files
committed
make it possible to deploy the war to a standalone tomcat
1 parent 6af3d75 commit 5acf090

File tree

4 files changed

+17
-11
lines changed

4 files changed

+17
-11
lines changed

README.md

+2-4
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
- **后端框架:**  Spring Boot, Spring Framework, Shiro
1919

20-
- **数据库:**    MySQL
20+
- **    库:**  MySQL
2121

2222
### 开发环境运行方法
2323

@@ -46,6 +46,4 @@ set autocommit=1;
4646
### 生产环境运行方法
4747
  **1.打包项目** `mvn clean package`
4848

49-
  **2.运行项目** `java -jar -Dspring.config.location=${your_application_properties_file} logreplay.war`
50-
51-
  注意,虽然项目的打包产出是war包,但是只能基于内嵌tomcat直接运行,无法部署到独立的tomcat中
49+
  **2.运行项目** `java -jar -Dspring.config.location=${your_application_properties_file} logreplay.war`或将war包部署到独立的tomcat(8.5)中

src/main/java/io/github/yangziwen/logreplay/LogreplayApplication.java

+8-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
import org.springframework.beans.factory.annotation.Autowired;
44
import org.springframework.boot.SpringApplication;
55
import org.springframework.boot.autoconfigure.SpringBootApplication;
6+
import org.springframework.boot.builder.SpringApplicationBuilder;
67
import org.springframework.boot.system.ApplicationPidFileWriter;
78
import org.springframework.boot.web.servlet.ServletComponentScan;
9+
import org.springframework.boot.web.support.SpringBootServletInitializer;
810
import org.springframework.context.annotation.Bean;
911
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
1012
import org.springframework.transaction.annotation.EnableTransactionManagement;
@@ -16,7 +18,7 @@
1618
@EnableTransactionManagement
1719
@EnableWebSocketMessageBroker
1820
@SpringBootApplication
19-
public class LogreplayApplication {
21+
public class LogreplayApplication extends SpringBootServletInitializer {
2022

2123
@Bean("executor")
2224
public ThreadPoolTaskExecutor executor() {
@@ -33,6 +35,11 @@ public AsyncEventBus eventBus(@Autowired ThreadPoolTaskExecutor executor) {
3335
return new AsyncEventBus(executor);
3436
}
3537

38+
@Override
39+
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
40+
return application.sources(LogreplayApplication.class);
41+
}
42+
3643
public static void main(String[] args) {
3744
System.setProperty("tomcat.util.http.parser.HttpParser.requestTargetAllow","|{}");
3845
SpringApplication application = new SpringApplication(LogreplayApplication.class);

src/main/java/io/github/yangziwen/logreplay/config/DataSourceConfig.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@ public class DataSourceConfig {
1717

1818
@Primary
1919
@Bean("dataSource")
20-
@ConfigurationProperties("hiraki.datasource")
20+
@ConfigurationProperties("spring.datasource.hikari")
2121
public HikariDataSource dataSource() {
2222
return (HikariDataSource) DataSourceBuilder
2323
.create()
24+
.driverClassName("com.mysql.jdbc.Driver")
2425
.type(HikariDataSource.class)
2526
.build();
2627
}

src/main/resources/application.properties

+5-5
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ spring.main.banner-mode=off
99

1010
spring.pid.file=logreplay.pid
1111

12-
hiraki.datasource.jdbc-url=jdbc:mysql://localhost:3306/logreplay?useUnicode=true&characterEncoding=UTF-8&useSSL=false
13-
hiraki.datasource.username=mobile
14-
hiraki.datasource.password=mobile
15-
hiraki.datasource.minimum-idle=10
16-
hiraki.datasource.maximum-pool-size=100
12+
spring.datasource.hikari.jdbc-url=jdbc:mysql://localhost:3306/logreplay?useUnicode=true&characterEncoding=UTF-8&useSSL=false
13+
spring.datasource.hikari.username=mobile
14+
spring.datasource.hikari.password=mobile
15+
spring.datasource.hikari.minimum-idle=10
16+
spring.datasource.hikari.maximum-pool-size=100
1717

1818
shiro.remember.me.cipher.key=2itfW92XazYRi5ltW0M2yA==
1919

0 commit comments

Comments
 (0)