spring boot 상용 클래스 및 인터페이스
@Component
public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
public SpringContextUtil() {
}
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
applicationContext = applicationContext;
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public static T getBean(String name) throws BeansException {
return applicationContext.getBean(name);
}
public static T getBean(Class> clz) throws BeansException {
return applicationContext.getBean(clz);
}
}
Environment Aware 환경 변수 읽 기와 속성 대상 가 져 오기
@Component
public class MyEnvironment implements EnvironmentAware {
private Environment environment;
@Override
public void setEnvironment(Environment environment) {
this.environment=environment;
}
}
ApplicationEvent ApplicationListener 사용자 정의 이벤트 및 감청
demo [ ](https://blog.csdn.net/xuyw10000/article/details/78730576)
InitializingBean 은 bean 에 게 초기 화 방법 을 제공 합 니 다. after PropertiesSet 방법 만 포함 하고 이 인 터 페 이 스 를 실현 하 는 클래스 는 bean 을 초기 화 할 때 이 방법 을 실행 합 니 다.효 과 는 bean 의 init - method 속성 사용 이나 @ PostContsuct 주석 사용 과 같 습 니 다.세 가지 방식 의 실행 순서: 먼저 주 해 를 한 다음 에 InitialingBean 인터페이스 에서 정 의 된 방법 을 실행 하고 마지막 으로 init - method 속성 지정 방법 을 실행 합 니 다.
@Component
public class TestInitializingBean implements InitializingBean{
@Override
public void afterPropertiesSet() throws Exception {
//bean
}
}
BeanPostProcessor 는 모든 bean 을 예화 할 때 개성 화 된 수정 을 제공 하고 포장 등 post Process After Initialization 을 bean 에서 예화 한 후에 호출 합 니 다. 만약 bean 이 Initializing Bean 을 실현 한다 면 * 이 인터페이스의 after PropertiesSet 방법 을 실행 한 후에 호출 합 니 다. init - method 가 실제 나타 나 면 * init - method 를 실행 한 후에 호출 합 니 다 * /
public class MyBeanPostProcessor implements BeanPostProcessor {
/**
* bean
*/
public Object postProcessBeforeInitialization(Object bean, String beanName)throws BeansException {
System.out.println("postProcessBeforeInitialization: " + beanName);
return bean;
}
/**
* bean
*/
public Object postProcessAfterInitialization(Object bean, String beanName)throws BeansException {
System.out.println("postProcessAfterInitialization: " + beanName);
return bean;
}
}
BeanFactory PostProcessor bean 공장 의 bean 속성 처리 용 기 는 통속 적 으로 우리 의 bean 공장 안의 모든 beandefinition (실례 화 되 지 않 음) 데 이 터 를 관리 할 수 있 고 마음대로 속성 을 수정 할 수 있 습 니 다.
@Component
@Slf4j
public class MyBeanFactoryPostProcessor implements BeanFactoryPostProcessor {
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
String[] names = beanFactory.getBeanDefinitionNames();
log.info(JSON.toJSONString(names));
Iterator it = beanFactory.getBeanNamesIterator();
while (it.hasNext()) {
BeanDefinition beanDefinition = beanFactory.getBeanDefinition(it.next());
log.info(JSON.toJSONString(beanDefinition));
}
}
}
CommandLineRunner ApplicationRunner
ApplicationRunner ,
@Component
@Slf4j
@Order(value = 2)
public class InitServiceConfiguration implements CommandLineRunner {
@Autowired
private ApplicationContext applicationContext;
@Override
public void run(String... args) throws Exception {
Map serviceMap = applicationContext.getBeansOfType(AbstractInitService.class);
if (serviceMap == null) {
return;
}
ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3);
for (Map.Entry entry : serviceMap.entrySet()) {
log.info(" :{}", entry.getKey());
fixedThreadPool.execute(entry.getValue());
}
fixedThreadPool.shutdown();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JAVA 객체 작성 및 제거 방법정적 공장 방법 정적 공장 방법의 장점 를 반환할 수 있습니다. 정적 공장 방법의 단점 류 공유되거나 보호된 구조기를 포함하지 않으면 이불류화할 수 없음 여러 개의 구조기 파라미터를 만났을 때 구축기를 고려해야 한다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.