我的复杂项目有两项服务:
@Service
public class OtherService{
}
interface IService{
void methodA();
void methodB();
void methodC();
}
@Service
public class DefaultService implement IService{
@Autowried
private OtherService otherService;
public void methodA(){...};
public void methodB(){...};
public void methodC(){...};
}
实施其他功能时,我添加了新的业务流程:
所以我的解决方案是创建new ChildService extends DefaultService
并覆盖methodC
。
@Service
public class ChildService extends DefaultService{
@override
public void methodC(){
//want to use some method of otherService
}
}
问题是methodC
想在父类中使用otherService
bean。我有两个解决方案:
private OtherService otherService
更改为protected OtherService otherService
。但用protected
bean思考@Autowired
不是一个好习惯吗?@Autowried private OtherService otherService;
添加到ChildService
对于这种情况有什么好处或任何建议?
答案 0 :(得分:1)
编辑。
将OtherService的访问说明符更改为protected或提供 DefaultService中的protected getOtherService()方法。