何为统一配置多个应用在一个地方配置,优点,更改数据库地址需要修改多个配置文件,到处重启,相当麻烦,用此方法可以让多个spring boot 通用配置在一个yaml文件里面,废话不多说了,下面开始动手实验吧。
1、实现EnvironmentPostProcessor接口和Ordered,Ordered接口是指定启动级别,EnvironmentPostProcessor接口是指定启动时候做一些事情,该类如下:
package com.hks.config; import java.io.IOException; import org.slf4j.Logger; import org.springframework.boot.SpringApplication; import org.springframework.boot.env.EnvironmentPostProcessor; import org.springframework.boot.env.YamlPropertySourceLoader; import org.springframework.core.Ordered; import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.core.env.PropertySource; import org.springframework.core.io.ClassPathResource; public class LoadPropertiesConfig implements EnvironmentPostProcessor, Ordered { protected static Logger logger = org.slf4j.LoggerFactory.getLogger("LoadPropertiesConfig") ; @Override public int getOrder() { return ConfigFileApplicationListener.DEFAULT_ORDER + 1 ; } @Override public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) { try { YamlPropertySourceLoader loader = new YamlPropertySourceLoader(); PropertySource<?> load = loader.load("mainyaml",new ClassPathResource("application.yml") , null); environment.getPropertySources().addLast( load ); } catch (IOException e) { e.printStackTrace(); } } }
2、maven工程,创建文件 src/main/resources/META-INF/spring.factories,切忌一定定要是这个路径,其他不行,文件内容如下:
org.springframework.boot.env.EnvironmentPostProcessor=com.hks.config.LoadPropertiesConfig
这样就大功告成了,可以写一个启动类查看是否启动成功
package com.hks.epc; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication( scanBasePackages = "com.hks") public class App { public static void main(String[] args) { SpringApplication.run(App.class, args) ; } }
按照这个方法,可以在每个项目的application.yaml文件中配置 需要加载的配置文件,在LoadPropertiesConfig中获取该配置,加载对应的配置文件到项目中去,希望有人能够实现。
相关推荐
Spring Boot提供全局异常处理,可以通过@ControllerAdvice和@ExceptionHandler注解进行统一的错误处理。 10. **持续集成/持续部署(CI/CD)**:为了提高开发效率和产品质量,项目可能会使用Jenkins、GitLab CI/CD等...
Spring Boot作为一个开源的Java基础框架,它简化了基于Spring的应用开发过程,通过约定优于配置的理念,减少了大量的配置工作,使得开发者能够快速启动和运行Spring应用程序。在数据库方面,MySQL作为一个高性能的...
- 服务器搭建:选择合适的技术栈,如Spring Boot和Spring MVC。 - 页面与逻辑设计:兼顾用户体验和后台处理逻辑。 - 权限管理:通过复选框实现不同角色的权限分配。 **工作条件** 项目实施需要一台PC,操作系统...
1. **Java技术**:作为后端开发语言,Java提供了丰富的库和框架,如Spring Boot、MyBatis等,支持高效、稳定的系统开发。 2. **Web技术**:使用HTML、CSS和JavaScript构建用户界面,结合AJAX实现页面动态交互。 3....
集成测试则可能使用Spring Boot's Testing support,模拟完整的应用环境进行测试。 总之,WorkoutTracker借助SpringBoot的灵活性和易用性,实现了对用户锻炼数据的高效管理。其背后的技术栈涉及Java、SpringBoot、...