Hello, all 。这里请教一个 Spring 循环依赖的问题。
我定义了三个类:配置类 AppConfig 、业务类 AppBiz 、自动装载类 AppAutoConfiguration 。三个类的简化代码如下所示:
// AppConfig
@ConfigurationProperties(prefix="app")
public class AppConfig
{
private String version = “1.0.0”;
}
// AppBiz
public class AppBiz {
private final AppConfig config;
public AppBiz(AppConfig config){
this.config = config;
}
}
// AppAutoConfiguration
@EnableConfigurationProperties(AppConfig.class)
public class AppAutoConfiguraion{
@Resource
private AppConfig config;
@Bean
public AppBiz buildAppBiz(){
return new AppBiz(config);
}
}
当我将这个项目作为一个 jar 包提供给其他系统的时候,希望通过读取配置文件 app.version 自动装载,实现一些逻辑。
现在的情况是,我不在配置文件里写 app.version
时,项目可以正常启动,自动装配 AppAutoConfiguration ;当我在配置文件中加上 app.version
,自动装载配置类就报循环依赖的问题。提示是 AppBiz 和 AppConfig 循环依赖。
有大哥能看下上面的代码有什么问题吗。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.