Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @未解析值批注_Java_Spring_Maven_Annotations_Javabeans - Fatal编程技术网

Java @未解析值批注

Java @未解析值批注,java,spring,maven,annotations,javabeans,Java,Spring,Maven,Annotations,Javabeans,我正在创建一个示例项目,如我在使用eclipse中所述。创建项目时,我找不到任何方法来编写@Value注释 我知道这看起来很愚蠢,但我根本解决不了这个问题。你能帮忙吗 ... import org.springframework.beans.factory.annotation.*; import org.springframework.beans.factory.InitializingBean; import org.springframework.stereotype.Component;

我正在创建一个示例项目,如我在使用eclipse中所述。创建项目时,我找不到任何方法来编写
@Value
注释

我知道这看起来很愚蠢,但我根本解决不了这个问题。你能帮忙吗

...
import org.springframework.beans.factory.annotation.*;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;

@Component ("newSession")
public class Session implements DisposableBean, InitializingBean {

    @Value ("3232")
    private int id;
...
pom.xml:

。。。
3.0.5.1发布
org.springframework
春天
2.5.6
朱尼特
朱尼特
3.8.1
测试
org.springframework
弹簧芯
${spring.version}
org.springframework
spring上下文
${spring.version}
....

为错误的缩进(大量的复制粘贴)和愚蠢的问题道歉。

原始答案:

@org.springframework.beans.factory.annotation.Value
注释可以在SpringBeans jar中找到。将以下依赖项添加到pom应该可以解决此问题:


org.springframework
春豆
${spring.version}
更新:

我相信这个问题只是一个类路径问题。依赖项
org.springframework:spring:2.5.6
,也有包
org.springframework.beans.factory.annotation
,但没有
注释类。我的假设是eclipse类路径被弄乱了。如果您更新类路径(即mvneclipse:eclipse),您的问题应该得到解决

您还需要旧的Spring依赖项吗?如果没有,那么最好将其移除


顺便说一句,@BalajiV是绝对正确的,您不需要对
springbeans
有明确的依赖关系,因为它将通过
spring上下文
依赖关系临时拉入。必须承认,就我个人而言,如果我对特定jar中的类(在本例中为
类)具有编译时依赖性,那么我总是在pom中显式定义对该jar的依赖性,而不是依赖另一个第三方依赖性来为我提供它。我知道这不太可能发生,但如果在未来的
SpringContext
版本中,他们删除了对
SpringBeans
的依赖,那么当我升级到新版本时,我的模块将不再工作。

没有必要在pom.xml如果我们在其中提到了spring上下文。这将负责下载许多与spring相关的JAR,其中一个是Springbeans,这就是我们需要使用@Value注释的内容


关于您的问题,是@Value行上的编译错误,还是没有将值注入变量?我之所以问您这个问题,是因为您的代码片段在eclipse中的示例maven项目上运行得很好,与您在这里给出的pom.xml相同。

错误发生在编译过程中。是的,甚至我认为在pom.xml中提到spring上下文就足够了。@Siddhartart,我已经更新了我的答案。我认为由于org.springframework:spring:2.5.6依赖关系,您的类路径有问题,因为它包含org.springframework.beans.factory.annotation包,但没有值类。这可以解释为什么会出现编译错误,说明找不到该值。此外,您如何构建模块?您可以尝试在eclipse之外构建(从控制台,mvn clean install应该可以做到这一点),看看它是否成功。我可以使用其他版本的spring吗?是的,2.5.6是一个麻烦的包。现在我该如何解决这个问题<代码>mvn eclipse:eclipse并不能解决问题。为什么需要org.springframework:spring:2.5.6依赖关系?你不能简单地把它从你的pom中完全移除吗?项目是否在Eclipse外部生成(即从命令行,从Eclipse内部进行
mvn安装
工作?)您是否尝试过刷新(右键单击项目并选择刷新)和清理(项目->清理…)项目?嗯,我删除了它,它工作了。显然是我在mkyong网站上的复制粘贴工作导致了这个问题——它有点过时了。