ApplicationConfig 提前加载导致的 org.apache.dubbo.config.ApplicationConfig#0: defined in null
- Dominant language
- Java
- Stars
- 41.6k
- Forks
- 26.4k
- Avg merge
- 15h 13m
- Merged PRs (30d)
- 4
Description
求问题验证解决思路
现象所在 version:2.7.15
在2.7.3中使用如下方法注入bean是可以成功的
```java
@Configuration
@RequiredArgsConstructor
@EnableConfigurationProperties({A.class, B.class})
public class DubboBaseAutoConfig implements InitializingBean{
@Bean
@Primary
@ConditionalOnMissingBean(ApplicationConfig.class)
public ApplicationConfig applicationConfig()
```
然而在2.7.15中会出现这样的错误
```
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 3 of constructor in com.demo.web.impl.ServiceImpl required a single bean, but 2 were found:
- applicationConfig: defined by method 'applicationConfig' in class path resource [com/demo/starter/dubbo/support/DubboBaseAutoConfig.class]
- org.apache.dubbo.config.ApplicationConfig#0: defined in null
```
怀疑是提前实例化导致在
```
org.springframework.context.support.AbstractApplicationContext#finishBeanFactoryInitialization
```
实例化的时候,存在两个``` org.apache.dubbo.config.ApplicationConfig#0 ```导致的问题
想找个方法验证猜想并解决问题,却没有什么头绪。
Contributor guide
Research direction
Compare the reported behavior between Dubbo 2.7.3 and 2.7.15, starting with DubboBaseAutoConfig#applicationConfig and Spring's AbstractApplicationContext#finishBeanFactoryInitialization. Reproduce the startup failure and inspect why both ApplicationConfig beans are present. Done means the duplicate-bean cause is verified and a concrete resolution or regression test is identified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring
- Domain
- backend, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100