From d35ae048327ef7c8671d8658b5562e98d2e30408 Mon Sep 17 00:00:00 2001
From: liuguijing <123456>
Date: Tue, 30 May 2023 13:21:54 +0800
Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=89=93=E6=88=90war?=
=?UTF-8?q?=E5=8C=85=E9=83=A8=E7=BD=B2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
xymanager_admin/pom.xml | 23 ++++++++
.../SpringBootStartApplication.java | 12 +++++
.../XymanagerAdminApplication.java | 4 +-
.../main/resources/META-INF/spring.factories | 1 +
xymanager_framework/pom.xml | 13 +++++
.../config/MyEnvironmentPostProcessor.java | 52 +++++++++++++++++++
6 files changed, 104 insertions(+), 1 deletion(-)
create mode 100644 xymanager_admin/src/main/java/com/shxy/xymanager_admin/SpringBootStartApplication.java
create mode 100644 xymanager_admin/src/main/resources/META-INF/spring.factories
create mode 100644 xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/MyEnvironmentPostProcessor.java
diff --git a/xymanager_admin/pom.xml b/xymanager_admin/pom.xml
index d95a9c1..f3e6d51 100644
--- a/xymanager_admin/pom.xml
+++ b/xymanager_admin/pom.xml
@@ -12,6 +12,8 @@
1.0.0
xymanager_admin
Demo project for Spring Boot
+
+ war
1.8
@@ -71,7 +73,28 @@
1.8
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ 3.3.2
+
+ false
+
+
+
+
+
+ src/main/resources
+
+
+ **/*.properties
+ **/*.yml
+
+
+
+
xymanager-admin
diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/SpringBootStartApplication.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/SpringBootStartApplication.java
new file mode 100644
index 0000000..902266b
--- /dev/null
+++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/SpringBootStartApplication.java
@@ -0,0 +1,12 @@
+package com.shxy.xymanager_admin;
+
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+
+public class SpringBootStartApplication extends SpringBootServletInitializer {
+ @Override
+ protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
+ // 注意这里要指向原先用main方法执行的Application启动类
+ return builder.sources(XymanagerAdminApplication.class);
+ }
+}
diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/XymanagerAdminApplication.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/XymanagerAdminApplication.java
index 3d8441b..4f6145c 100644
--- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/XymanagerAdminApplication.java
+++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/XymanagerAdminApplication.java
@@ -5,7 +5,9 @@ import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
@@ -17,7 +19,7 @@ import org.springframework.core.env.Environment;
@Slf4j
@EnableConfigurationProperties
@ComponentScan(basePackages = {"com.shxy"})
-public class XymanagerAdminApplication {
+public class XymanagerAdminApplication {
public static void main(String[] args) {
try {
diff --git a/xymanager_admin/src/main/resources/META-INF/spring.factories b/xymanager_admin/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..5e2059b
--- /dev/null
+++ b/xymanager_admin/src/main/resources/META-INF/spring.factories
@@ -0,0 +1 @@
+org.springframework.boot.env.EnvironmentPostProcessor=com.shxy.xymanager_framework.config.MyEnvironmentPostProcessor
diff --git a/xymanager_framework/pom.xml b/xymanager_framework/pom.xml
index 9c85dac..8b86607 100644
--- a/xymanager_framework/pom.xml
+++ b/xymanager_framework/pom.xml
@@ -40,6 +40,11 @@
ch.qos.logback
logback-classic
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
@@ -73,6 +78,14 @@
+
+
+ javax.servlet
+ javax.servlet-api
+ 3.1.0
+ provided
+
+
com.shxy
xymanager_common
diff --git a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/MyEnvironmentPostProcessor.java b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/MyEnvironmentPostProcessor.java
new file mode 100644
index 0000000..5ee611c
--- /dev/null
+++ b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/MyEnvironmentPostProcessor.java
@@ -0,0 +1,52 @@
+package com.shxy.xymanager_framework.config;
+
+import org.springframework.beans.factory.config.YamlPropertiesFactoryBean;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.env.EnvironmentPostProcessor;
+import org.springframework.core.env.ConfigurableEnvironment;
+import org.springframework.core.env.MutablePropertySources;
+import org.springframework.core.env.PropertiesPropertySource;
+import org.springframework.core.io.FileSystemResource;
+import org.springframework.core.io.support.PropertiesLoaderUtils;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Properties;
+
+public class MyEnvironmentPostProcessor implements EnvironmentPostProcessor {
+ @Override
+ public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
+ //tomcat路径
+ String property = System.getProperty("catalina.home");
+ System.out.println("catalinahome:"+property);
+
+ String path =property+ File.separator+"conf"+File.separator+"application.yml";
+
+ //Springboot读取yml配置
+ YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean();
+ yaml.setResources(new FileSystemResource(path));
+ MutablePropertySources propertySources = environment.getPropertySources();
+ propertySources.addFirst(new PropertiesPropertySource("Config", yaml.getObject()));
+
+
+// File file = new File(path);
+// System.out.println("Loading local settings from : "+path);
+//
+// if (file.exists()) {
+// MutablePropertySources propertySources = environment.getPropertySources();
+// Properties properties = loadProperties(file);
+// System.out.println(properties.toString());
+// propertySources.addFirst(new PropertiesPropertySource("Config", properties));
+// }
+ }
+
+// private Properties loadProperties(File f) {
+// FileSystemResource resource = new FileSystemResource(f);
+// try {
+// return PropertiesLoaderUtils.loadProperties(resource);
+// } catch (IOException ex) {
+// throw new IllegalStateException("Failed to load local settings from " + f.getAbsolutePath(), ex);
+// }
+// }
+// }
+}