SpringBoot通过配置类替换配置文件配置
我们可以通过实现ApplicationContextInitializer的方式来替换application.properties的配置
实现ApplicationContextInitializer接口
public class SaTokenConfiguration implements ApplicationContextInitializer<ConfigurableApplicationContext> {@Overridepublic void initialize(ConfigurableApplicationContext applicationContext) {ConfigurableEnvironment environment = applicationContext.getEnvironment();// 创建一个可变的 PropertySourceMap<String, Object> saTokenRedisProps = new HashMap<>();saTokenRedisProps.put("sa-token.alone-redis.host", "localhost");saTokenRedisProps.put("sa-token.alone-redis.port", "6380");saTokenRedisProps.put("sa-token.alone-redis.timeout", "5000");// 添加到 Environment 的最前面(优先级最高)environment.getPropertySources().addFirst(new MapPropertySource("saTokenRedisProps", saTokenRedisProps));}
}
使用
启动器使用
@SpringBootApplication
public class ProductApplication {public static void main(String[] args) {new SpringApplicationBuilder(ProductApplication.class).initializers(new SaTokenConfiguration()).run(args);}}
通过 spring.factories 配置
org.springframework.context.ApplicationContextInitializer=\
org.gudian.auth.impl.satoken.config.SaTokenConfiguration