我在Spring MVC文件的xml文件中定义了一个ResourceBundleMessageSource bean。它的定义如下:
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="messages" />
<property name="defaultEncoding" value="UTF-8" />
</bean>
然而,Intellij将defaultEncoding
标记为红色并弹出Can not resolve property
。
根据this documentation,ResourceBundleMessageSource
具有从defaultEncoding
类继承的AbstractResourceBasedMessageSource
属性。上面的代码在另一个Spring MVC项目中运行良好。
My Spring依赖版本为5.0.4,IDEA版本为2017.2.1。
这种奇怪行为的原因是什么?是bug吗?
附录:当我使用IDEA对ResourceBundleMessageSource
类进行反编译时,它会显示此类扩展AbstractMessageSource
,而不是文档所说的AbstractResourceBasedMessageSource
。
将ResourceBundleMessageSource
替换为ReloadableResourceBundleMessageSource
不会出错。
答案 0 :(得分:1)
我终于解决了这个问题。我的项目中存在泽西 - 春天依赖:
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-spring</artifactId>
<version>1.19.3</version>
</dependency>
这完全取决于旧版本的Spring - 3.0.0.RC1。 我还明确地在pom.xml文件中包含Spring 5.0.4.RELEASE依赖项。这导致了不同版本之间的冲突,Maven正在解决冲突,转而支持旧版本3.0.0.RC1。我决定删除jersey-spring依赖,现在它工作正常。