请教一下大家,如何在Spring中使用注解来实现bean与bean的依赖注入,也就是如何在Child的构造函数里面调用Parent的实例。
@Service
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
public class ChildServiceImpl implements ChildService { @Resource
private ParentService parentService; public ChildServiceImpl() {
parentService.run();
// ... ...
}
}@Service
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
public class ParentServiceImpl implements ParentService {
// ... ...
}
哪位老大帮帮忙,非常感谢。springbean注解
@Service
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
public class ChildServiceImpl implements ChildService { @Resource
private ParentService parentService; public ChildServiceImpl() {
parentService.run();
// ... ...
}
}@Service
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
public class ParentServiceImpl implements ParentService {
// ... ...
}
哪位老大帮帮忙,非常感谢。springbean注解
网上最基本的spring例子很多的,多看看,看不懂的时候百度一下,还不懂那就问。
已经查过很多资料了,尝试用过@Component和@DependsOn,但是总是报空指针异常。
换一个带参数的构造函数吧。一般不要覆写默认的构造函数。
这样的话再看看吧,我也不清楚,一般不要覆写默认的构造函数,如果有有参构造,再加上一个默认无参构造,但是别引用成员。
private ParentService parentService;
非常感谢,一语惊醒梦中人,确实是这样,会先调用构造函数,再给成员变量赋值,这样在无参构造函数里面始终会有空指针异常。我现在直接用init方法来处理其他事情,问题解决了。
虽然这个没用,但是还是感谢你的回答。
在自动注册bean的时候,如果不写具体的name,那么会自动根据name来找相应的bean的,这个地方可以缺省。
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
public class ChildServiceImpl implements ChildService { @Resource
private ParentService parentService; public ChildServiceImpl() {
parentService.run();
// ... ...
}
}@Service
@Component("parentService")
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
public class ParentServiceImpl implements ParentService {
// ... ...
}
这样试过吗?