大侠们,我最近做的一个 发送mail 的程序,spring里配置的参数信息是从properties文件里加载进来的。最近想改成从数据库里读取的方式。突然就没有思路了。哪个哥哥能给个思路指点一下我。不胜感激
[code="java"]
${mail.smtp.auth}
${mail.smtp.timeout}
[/code]
大侠们,我最近做的一个 发送mail 的程序,spring里配置的参数信息是从properties文件里加载进来的。最近想改成从数据库里读取的方式。突然就没有思路了。哪个哥哥能给个思路指点一下我。不胜感激
[code="java"]
${mail.smtp.auth}
${mail.smtp.timeout}
[/code]
[quote]
从数据库读取出来了,放在一个bean类里.那下的spring注入属性的时候,我该如何
在value属性里填充bean属性呢?
[/quote]
这种情况基本上不能再使用spring注入了,因为你自己创建的bean并不由spring容器托管,所以后面也无法注入。
你可以采用类似propertyplaceholder的思想,在bean由容器创建之前把这些参数值设置进去。具体的做法,你可以通过扩展JavaMailSenderImpl并实现BeanPostProcessor接口:
[code="java"]
public class MyJavaMailSenderImpl extends JavaMailSenderImpl implements BeanPostProcessor {
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
}
public Object
postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
//在这里通过查询数据库,把相应的参数设置到mailsender里面
}
}
[/code]
不过这样做,就和spring容器耦合比较大。