Java @未解析值批注
我正在创建一个示例项目,如我在使用eclipse中所述。创建项目时,我找不到任何方法来编写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;
@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网站上的复制粘贴工作导致了这个问题——它有点过时了。