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();
}
}
添加回答
举报
