Spring 依赖注入到匿名实现中

dig*_*oel 3 java spring dependency-injection

我有一个用于服务的抽象基类,其中包括各种方法的实现和一个抽象方法。我有一些密切相关的实体,我想在单个服务中管理它们,因此我计划让该服务由这些实体的抽象基础服务的匿名实现组成。我想将 Dao 实现注入到匿名服务实现中。我尝试做这样的事情。

@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
}
Run Code Online (Sandbox Code Playgroud)

如果我这样做的话,道就不会被注入。如果我将 dao 移出到包含类中,那么它就可以正常工作。我可以将其保留在包含类中,但想知道如何将其注入匿名类实现中。

Axe*_*ine 5

只要您调用new自己,Spring 就不会实例化该类,因此无法注入依赖项。

由于如果不使用 new 自己调用默认构造函数就无法创建匿名类,因此 Spring 无法在这里为您提供帮助。