Commit 0d4a9c4a by Nepxion

修复Spring容器二次初始化引入的问题

parent c112ff4b
...@@ -11,6 +11,7 @@ package com.nepxion.discovery.plugin.framework.context; ...@@ -11,6 +11,7 @@ package com.nepxion.discovery.plugin.framework.context;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessorAdapter; import org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessorAdapter;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.context.ApplicationContextInitializer; import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.ConfigurableApplicationContext;
...@@ -20,6 +21,7 @@ import com.nepxion.discovery.plugin.framework.decorator.DiscoveryClientDecorator ...@@ -20,6 +21,7 @@ import com.nepxion.discovery.plugin.framework.decorator.DiscoveryClientDecorator
public abstract class PluginApplicationContextInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> { public abstract class PluginApplicationContextInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {
@Override @Override
public void initialize(ConfigurableApplicationContext applicationContext) { public void initialize(ConfigurableApplicationContext applicationContext) {
if (applicationContext instanceof AnnotationConfigServletWebServerApplicationContext) {
applicationContext.getBeanFactory().addBeanPostProcessor(new InstantiationAwareBeanPostProcessorAdapter() { applicationContext.getBeanFactory().addBeanPostProcessor(new InstantiationAwareBeanPostProcessorAdapter() {
@Override @Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
...@@ -33,6 +35,7 @@ public abstract class PluginApplicationContextInitializer implements Application ...@@ -33,6 +35,7 @@ public abstract class PluginApplicationContextInitializer implements Application
} }
}); });
} }
}
protected abstract Object afterInitialization(ConfigurableApplicationContext applicationContext, Object bean, String beanName) throws BeansException; protected abstract Object afterInitialization(ConfigurableApplicationContext applicationContext, Object bean, String beanName) throws BeansException;
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment