我有一个用于服务的抽象基类,其中包括各种方法的实现和一个抽象方法。我有一些密切相关的实体,我想在单个服务中管理它们,因此我计划让该服务由这些实体的抽象基础服务的匿名实现组成。我想将 Dao 实现注入(inject)到匿名服务实现中。我尝试做这样的事情。
@Configurable
@Service( value="compositeService" )
public class CompositeServiceImpl
extends BaseDataServiceAbstract<AnotherEntity, Long>
implements CompositeService
{
BaseDataServiceAbstract<MyObject, Long> myObjectService =
new BaseDataServiceAbstract<MyObject, Long>() {
@Resource( name="myObjectDao")
BaseDao<MyObject, Long> myObjectDao;
@Override
public BaseDao<MyObject, Long> getDao()
{
return myObjectDao;
}
};
// other implementation methods and stuff
}
如果我这样做,Dao 就不会被注入(inject)。如果我将 dao 移出到包含类中,那么它就可以正常工作。我可以将其保留在包含类中,但想知道如何将其注入(inject)到匿名类实现中。
最佳答案
只要您自己调用 new
,Spring 就不会实例化该类,因此无法注入(inject)依赖项。
由于您无法在不使用 new 自己调用默认构造函数的情况下创建匿名类,因此 Spring 无法在此为您提供帮助。
关于java - Spring 依赖注入(inject)到匿名实现中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4702797/