I am using Spring @Configuration
annotation to configure my application.
Currently, I have a single @Configuration
class where all my beans are declared. As the number of beans is growing (more than 30), I want to split it in many classes.
Some beans are using common classes (mainly utility classes) :
Foo.class is an utility class Bar.class and Baz.class both use Foo.class
I want to have all Foo, Bar and Baz
in three distinct @Configuration
classes (respectively Conf1, Conf2 and Conf3
)
The problem is that I don't have access to an instance of Conf1
from Conf2 and Conf3
:
Conf1.class
@Configuration
public class Conf1 {
@Bean
public Foo foo() {
return new Foo();
}
}
Conf2.class
@Configuration
public class Conf2 {
@Bean
public Bar bar() {
Bar bar = new Bar();
bar.setFoo(conf1.foo()); // Not possible !
return bar;
}
}
Conf3.class
@Configuration
public class Conf3 {
@Bean
public Baz baz() {
Baz baz = new Baz();
baz.setFoo(conf1.foo()); // Not possible !
return baz;
}
}
Any idea on how can I solve this issue ?