@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Component
public class Bean1 {
public Bean1() {
System.out.println("Bean1 create");
}
public Bean1(String params) {
System.out.println("Bean1 create:" + params);
}
public String say(){
return "hello world";
}
public int add(int a,int b){
return a + b;
}
public int addObj(Integer a,Integer b){
return a + b;
}
}
@Component
public class Bean2 {
public Bean2(){
System.out.println("Bean2 create");
}
}
@Component
public abstract class Bean3 {
public Bean3() {
System.out.println("Bean3 create");
}
@Lookup
public abstract Bean1 getBean1();
@Lookup
public abstract Bean1 getBean1(String aa);
@Lookup
public Bean2 getBean2() {
return null;
}
}
@Component
public class ConfigA {
@Autowired
private Bean3 bean3;
@Autowired
private Bean4 bean4;
@PostConstruct
public void init() {
System.out.println(bean3);
System.out.println(bean4);
System.out.println(bean3.getBean1());
System.out.println(bean3.getBean1("aaa"));
System.out.println(bean3.getBean1("bbb"));
System.out.println(bean3.getBean2());
System.out.println(bean3.getBean2());
System.out.println(bean4.getBean1());
System.out.println(bean4.getBean1());
System.out.println(bean4.getBean2());
System.out.println(bean4.getBean2());
}
}