4 回答

TA贡献1883条经验 获得超3个赞
不能自己实例化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贡献1829条经验 获得超7个赞
@Service("esbForEmpBusinessServicesImpl") 里面的名字和esbForEmpBusinessService名字不同,改下看可以不。
@Resource(name="esbForEmpBusinessServicesImpl") private IEsbForEmpBusinessService esbForEmpBusinessService;

TA贡献1827条经验 获得超8个赞
public class A{
private B b = new B();
public void test(){
b.method();
}
}
直接B b = new B();是不行的,不会触发相关的注入
public class A{
@Resource(name="b")
private B b ;
public void test(){
b.method();
}
}
添加回答
举报