在使用Spring3.2.0开发项目的过程中,在如下两个场景下遇到了报错java.lang.IllegalArgumentException
的情况。
- Spring 3.2.0 + jdk1.8 注解注入,如
(a)初始化
@PostConstruct
public void init() {
//initialization
}
(b)applcaitonContext.xml
<context:annotation-config />
经查,Spring 3.2.0 在注解注入情况下,不兼容jdk1.8。经过测试,将编译器换为1.7即可解决。
为了进一步测试,使用Spring4.0.0和jdk重构了工程测试,测试结果运行正常。
项目中用的Spring版本较低,应尽量避免类似这般兼容性等问题。
- 注入Date 对象
在遇到上述情况并将编译器换为1.7后,在注入Date对象过程中,再次遇到同样报错。
<bean id="dateFormat" class="java.text.SimpleDateFormat">
<constructor-arg value="yyyy-MM-dd" />
</bean>
<bean id="*" class="*.*.*.*" parent="*">
<property name="*" >
<bean factory-bean="dateFormat" factory-method="parse">
<constructor-arg value="2018-12-27" />
</bean>
</property>
</bean>
同样使用Spring4.0.0和jdk重构了工程测试后,测试结果正常。
具体出现这个问题的原因还没真正搞清,是因为兼容性还是什么,在查文档中,等到查明再来更新。
谨此,祝好!