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); +// } +// } +// } +}