4 回答

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個贊
不能自己實(shí)例化bean,要通過sring獲取。
@Service("esbForEmpBusinessServicesImpl")
public class EsbForEmpBusinessServiceImpl implements IEsbForEmpBusinessService {
@Resource private IEsbForEmpBusinessDao esbBusinessDao; public EsbToHrEmpInfo queryHrEmpInfo(String emp_num) { System.out.println(emp_num); EsbToHrEmpInfo ethe = new EsbToHrEmpInfo(); return ethe; }
}
@Service("serviceB")
public class B {
@Resource private IEsbForEmpBusinessService esbForEmpBusinessService; public void method() { esbForEmpBusinessService.queryHrEmpInfo("111111"); }
}
@Service("serviceA")
public class A {
@Autowired @Qualifier("serviceB") private B b; public void test(){ b.method();
}
public static void main(String[] args) {
FileSystemXmlApplicationContext context = new FileSystemXmlApplicationContext("test.xml"); A a = (A) context.getBean("serviceA"); System.out.println(a); a.test(); }

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個贊
@Service("esbForEmpBusinessServicesImpl") 里面的名字和esbForEmpBusinessService名字不同,改下看可以不。
@Resource(name="esbForEmpBusinessServicesImpl") private IEsbForEmpBusinessService esbForEmpBusinessService;

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個贊
public class A{
private B b = new B();
public void test(){
b.method();
}
}
直接B b = new B();是不行的,不會觸發(fā)相關(guān)的注入
public class A{
@Resource(name="b")
private B b ;
public void test(){
b.method();
}
}
添加回答
舉報