如果我有:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:property-placeholder location="classpath:${PropertiesFile}" ignore-unresolvable="false" ignore-resource-not-found="false" />
<bean id="SpringMailSender" class="${MailSenderClass:org.mypackage.MockJavaMailSenderImpl}">
<property name="host" value="localhost" />
</bean>
</beans>
属性文件包含:
MailSenderClass=org.springframework.mail.javamail.JavaMailSenderImpl
我希望org.mypackage.MockJavaMailSenderImpl
类不被使用但总是如此。我通常不会看到此行为,默认值按预期工作。我在试图追踪这里发生的事情时遇到了麻烦。我正在通过删除默认值并确保我的属性文件都指定此属性来解决此问题。
任何人都可以帮助解释为什么它会以这种方式运行以及如何让违约行为正如我在这种情况下所期望的那样工作?