Skip to content

Commit faa68b0

Browse files
authored
Release 3.16.1 (#1034)
1 parent 6b9f02b commit faa68b0

File tree

3 files changed

+29
-17
lines changed

3 files changed

+29
-17
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
<description>SOFABoot Build</description>
3838

3939
<properties>
40-
<revision>3.16.0</revision>
40+
<revision>3.16.1</revision>
4141
<sofa.boot.version>${revision}</sofa.boot.version>
4242
<!--maven plugin-->
4343
<maven.staging.plugin>1.6.7</maven.staging.plugin>

sofa-boot-project/sofa-boot-core/runtime-sofa-boot/src/main/java/com/alipay/sofa/runtime/spring/ServiceBeanFactoryPostProcessor.java

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,14 @@
4040
import com.alipay.sofa.runtime.spring.parser.ServiceDefinitionParser;
4141
import org.springframework.beans.BeansException;
4242
import org.springframework.beans.FatalBeanException;
43+
import org.springframework.beans.factory.InitializingBean;
4344
import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition;
4445
import org.springframework.beans.factory.annotation.AnnotatedGenericBeanDefinition;
4546
import org.springframework.beans.factory.config.BeanDefinition;
47+
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
4648
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
4749
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
4850
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
49-
import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
5051
import org.springframework.beans.factory.support.GenericBeanDefinition;
5152
import org.springframework.context.ApplicationContext;
5253
import org.springframework.context.ApplicationContextAware;
@@ -56,7 +57,6 @@
5657
import org.springframework.core.Ordered;
5758
import org.springframework.core.annotation.AnnotatedElementUtils;
5859
import org.springframework.core.annotation.AnnotationUtils;
59-
import org.springframework.core.annotation.Order;
6060
import org.springframework.core.env.Environment;
6161
import org.springframework.core.type.MethodMetadata;
6262
import org.springframework.core.type.StandardMethodMetadata;
@@ -79,9 +79,9 @@
7979
* @author qilong.zql
8080
* @since 3.1.0
8181
*/
82-
@Order(Ordered.HIGHEST_PRECEDENCE + 10)
83-
public class ServiceBeanFactoryPostProcessor implements BeanDefinitionRegistryPostProcessor,
84-
ApplicationContextAware, EnvironmentAware {
82+
public class ServiceBeanFactoryPostProcessor implements BeanFactoryPostProcessor,
83+
ApplicationContextAware, EnvironmentAware,
84+
InitializingBean, Ordered {
8585
private final PlaceHolderBinder binder = new DefaultPlaceHolderBinder();
8686
private ApplicationContext applicationContext;
8787
private SofaRuntimeContext sofaRuntimeContext;
@@ -98,16 +98,12 @@ public ServiceBeanFactoryPostProcessor(SofaRuntimeContext sofaRuntimeContext,
9898
this.bindingConverterFactory = bindingConverterFactory;
9999
}
100100

101-
@Override
102-
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
103-
Arrays.stream(registry.getBeanDefinitionNames())
104-
.collect(Collectors.toMap(Function.identity(), registry::getBeanDefinition))
105-
.forEach((key, value) -> transformSofaBeanDefinition(key, value, registry));
106-
}
107-
108101
@Override
109102
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
110103
throws BeansException {
104+
Arrays.stream(beanFactory.getBeanDefinitionNames())
105+
.collect(Collectors.toMap(Function.identity(), beanFactory::getBeanDefinition))
106+
.forEach((key, value) -> transformSofaBeanDefinition(key, value, (BeanDefinitionRegistry) beanFactory));
111107
}
112108

113109
/**
@@ -386,17 +382,26 @@ private List<Binding> getSofaReferenceBinding(SofaReference sofaReferenceAnnotat
386382
@Override
387383
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
388384
this.applicationContext = applicationContext;
389-
this.sofaRuntimeContext = applicationContext.getBean("sofaRuntimeContext",
390-
SofaRuntimeContext.class);
391-
this.bindingConverterFactory = applicationContext.getBean("bindingConverterFactory",
392-
BindingConverterFactory.class);
393385
}
394386

395387
@Override
396388
public void setEnvironment(Environment environment) {
397389
this.environment = environment;
398390
}
399391

392+
@Override
393+
public int getOrder() {
394+
return Ordered.HIGHEST_PRECEDENCE + 10;
395+
}
396+
397+
@Override
398+
public void afterPropertiesSet() throws Exception {
399+
this.sofaRuntimeContext = applicationContext.getBean("sofaRuntimeContext",
400+
SofaRuntimeContext.class);
401+
this.bindingConverterFactory = applicationContext.getBean("bindingConverterFactory",
402+
BindingConverterFactory.class);
403+
}
404+
400405
class DefaultPlaceHolderBinder implements PlaceHolderBinder {
401406
@Override
402407
public String bind(String text) {

sofa-boot-project/sofa-boot/src/main/java/com/alipay/sofa/boot/util/BeanDefinitionUtil.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.springframework.beans.factory.config.BeanDefinition;
2222
import org.springframework.beans.factory.support.AbstractBeanDefinition;
2323
import org.springframework.beans.factory.support.GenericBeanDefinition;
24+
import org.springframework.beans.factory.support.RootBeanDefinition;
2425
import org.springframework.context.annotation.ScannedGenericBeanDefinition;
2526
import org.springframework.core.type.AnnotationMetadata;
2627
import org.springframework.core.type.MethodMetadata;
@@ -79,6 +80,12 @@ public static Class<?> resolveBeanClassType(BeanDefinition beanDefinition) {
7980
}
8081
}
8182

83+
if (clazz == null) {
84+
if (beanDefinition instanceof RootBeanDefinition) {
85+
clazz = ((RootBeanDefinition) beanDefinition).getTargetType();
86+
}
87+
}
88+
8289
if (ClassUtils.isCglibProxyClass(clazz)) {
8390
return clazz.getSuperclass();
8491
} else {

0 commit comments

Comments
 (0)