新建一个springBoot项目:
[往期文章:怎么新建一个springBoot项目] https://www.jianshu.com/p/18f5bd189ced
实现初始化器的方式一:
META-INF/spring.factories文件配置
1.新建FirstInitializer实现ApplicationContextInitializer接口
2.在resource下新建META-INF
3.在META-INF下新建spring.factories
方式一实现初始化器.png
方式一实现初始化器.png
FirstInitializer.java源码:
package com.xy.initializer;
import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.annotation.Order;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.MapPropertySource;
import java.util.HashMap;
import java.util.Map;
@Order(1)
public class FirstInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {
@Override
public void initialize(ConfigurableApplicationContext applicationContext) {
ConfigurableEnvironment environment =applicationContext.getEnvironment();
Map<String,Object> map = new HashMap<String,Object>();
map.put("xy","my name is xy!");
MapPropertySource mapPropertySource = new MapPropertySource("firstInitializer",map);
environment.getPropertySources().addLast(mapPropertySource);
System.out.println("FirstInitializer");
}
}
spring.factories内容:
org.springframework.context.ApplicationContextInitializer=com.xy.initializer.FirstInitializer
方式一实现初始化器测试:
1.新建TestService.java实现ApplicationContextAware接口
2.新建controller方法调用初始化值
新建TestService.java.png
新建controller方法.png
TestService.java源码:
package com.xy.service;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class TestService implements ApplicationContextAware {
private ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
System.out.println("test setApplicationContext......");
this.applicationContext = applicationContext;
}
public String test(){
System.out.println(applicationContext.getBean(DemoService.class));
DemoService t = applicationContext.getBean(DemoService.class);
return applicationContext.getEnvironment().getProperty("xy");
}
}
启动项目查看打印信息:
查看打印信息.png
浏览器访问获取初始化器配置信息:
方式一获取初始化器配置信息.png