为什么Spring没有将@Autowired成员连接到依赖jar中?

MSt*_*odd 6 java google-app-engine spring ioc-container

我正在使用Spring 3.1构建一个Google App Engine应用程序,并且在我的一个jars连接成员时遇到问题.

我有三个项目:

  1. server
  2. server.model
  3. server.persistence

我有一个ant构建脚本,这样当我的工作区构建时,它会为server.model和创建jar server.persistence,并将它们放在项目的正确lib目录中server.

server,我可以从两个自动装配的东西server.modelserver.persistence,但在server.model我的server.persistence豆子没有得到有线即使他们是确切相同server.

来自我的servlet应用程序配置的片段:

<context:component-scan base-package="com.impersonal.server"/>          

<bean autowire="byType" id="appEngineDataStore" class="com.impersonal.server.persistance.AppEngineDataStore"/>

<bean autowire="byType" id="userList" class="com.impersonal.server.model.UserList"/>
Run Code Online (Sandbox Code Playgroud)

我在server项目和server.model项目中都有以下代码,只有服务器实现了.这是一个失败的:

package com.impersonal.server.model;

import java.util.ArrayList;
import java.util.UUID;

import org.springframework.beans.factory.annotation.Autowired;

import com.impersonal.server.persistance.AppEngineDataStore;
import com.impersonal.server.persistance.IDataStore;

public class UserList extends ArrayList<User>
{
    private UserList(){}

//this is always null, but the same line in a class in the other project works
private @Autowired AppEngineDataStore _dataStore;

public UserList(UUID userId, String tempId)
{
    String poo = "poo";
    poo.concat("foo ");

    int i = 3;
}
}
Run Code Online (Sandbox Code Playgroud)

编辑: 刚刚在server.model项目中做了一个测试,尝试@Autowired我在应用程序配置中没有定义为bean的东西,并且没有出现任何错误.如果我为server项目做同样的事情,我应该得到一个'没有找到这样的bean'的错误.

有什么想法吗?

MSt*_*odd 3

我错误地实例化了我的对象。对于框架对象和 MVC 控制器之类的对象,您无需执行任何操作即可连接 @Autowired 成员。

对于我动态创建的对象,我没有通过 IOC 容器,这就是它们的依赖关系没有得到满足的原因。