I am new to Spring. I am testing @Inject
annotation. For that I have created a logic:
import javax.inject.Inject;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
class A {
int a;
public A(int a) {
this.a = a;
}
}
class B {
A x;
public B(A x) {
this.x = x;
}
}
@Configuration
class config1 {
A a;
@Inject
public void setA(A a) {
this.a = a;
}
@Bean
public B getB() {
return new B(a);
}
}
@Configuration
class config2 {
@Bean
public A getA() {
return new A(4);
}
}
public class Testt {
public static void main(String[] args) {
ApplicationContext ctx = new AnnotationConfigApplicationContext(config1.class);
B oa = ctx.getBean(B.class);
System.out.println(oa.x.a);
}
}
But this fails with an error saying:
Error creating bean with name 'config1': Injection of autowired dependencies failed;
Please help. I know I have done some trivial mistake.