我使用Spring @Configuration来配置我的应用程序.
目前我有一个@Configuration类,其中声明了我的所有bean.随着bean数量的增长(超过30个),我想将它分成许多类.
一些bean使用公共类(主要是实用程序类):
Foo.class是一个实用类 Bar.class和Baz.class都使用Foo.class
我希望在三个不同的@Configuration类(分别为Conf1,Conf2和Conf3)中使用Foo,Bar和Baz
问题是我无法访问Conf2和Conf3中的Conf1实例:
Conf1.class
@Configuration
public class Conf1 {
@Bean
public Foo foo() {
return new Foo();
}
}
Run Code Online (Sandbox Code Playgroud)
Conf2.class
@Configuration
public class Conf2 {
@Bean
public Bar bar() {
Bar bar = new Bar();
bar.setFoo(conf1.foo()); // Not possible !
return bar;
}
}
Run Code Online (Sandbox Code Playgroud)
Conf3.class
@Configuration
public class Conf3 {
@Bean
public Baz baz() {
Baz baz = new Baz();
baz.setFoo(conf1.foo()); // Not possible !
return baz;
}
}
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何想法?
axt*_*avt 19
你应该能够自动装配它们:
@Configuration
public class Conf2 {
@Autowired
Conf1 conf1;
...
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以自动装配bean而不是配置:
@Configuration
public class Conf2 {
@Autowired
Foo foo;
...
}
Run Code Online (Sandbox Code Playgroud)
小智 12
@Configuration
@Import({ DataSourceConfig.class, TransactionConfig.class })
public class AppConfig extends ConfigurationSupport {
// bean definitions here can reference bean definitions in DataSourceConfig or TransactionConfig
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17112 次 |
| 最近记录: |