gpt4 book ai didi

java - 为什么 Spring 不将我的 @Autowired 成员连接到依赖的 jar 中?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:22:27 24 4
gpt4 key购买 nike

我正在使用 Spring 3.1 构建一个 Google App Engine 应用程序,但在我的一个 jar 中获取成员时遇到了问题。

我有三个项目:

  1. 服务器
  2. server.model
  3. server.persistence

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

server 中,我可以从 server.modelserver.persistence 中 Autowiring 东西,但在 server.model 我的 server.persistence bean 没有连接,即使它们与 server 中的完全一样。

来 self 的 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"/>

我在 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;
}
}

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

有什么想法吗?

最佳答案

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

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

关于java - 为什么 Spring 不将我的 @Autowired 成员连接到依赖的 jar 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11134201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com