大侠们,我最近做的一个 发送mail 的程序,spring里配置的是 信息是从properties文件里加载进来的。最近想改成从数据库里读取的方式。突然就没有思路了。哪个哥哥能给个思路指点一下我。不胜感激
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="${mail.host}" /> <property name="username" value="${mail.username}" /> <property name="password" value="${mail.password}" /> <property name="defaultEncoding" value="UTF-8"></property> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">${mail.smtp.auth}</prop> <prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop> </props> </property> </bean>
你说的从数据库读取JAVAMAIL的配置?
那意思就是运行期才动态配置JAVAMAIL了对吧, 不运行怎么访问数据库呢?
那问题就好办了, 删除你的配置, NEW 一个 JAVAMAIL 实例, 调用设置方法, 一切OK!
不用配置了, 动态运行的东西是配不出来的, 除非你自己实现一个查数据库并初始化MAIL实例的工厂类.
这样的设计失去了配置的意义.
######求解!可以利用工厂方法生成一个properties, 然后把properties注入到javaMailSenderImpl.
或者利用init方法启动的时候load并初始化。
######构建一个MailConfig的bean,在bean里加入host,username,password等必要的field,生成getter,setter方法,bean中提供一个构造方法或者其他方式,将bean初始化时,从数据库中读取配置,为field赋值。
在spring配置文件,配置该bean,用该bean替换properties,可否?
######挺好的思路,安装你的思路。在spring配置文件,配置该bean,然后 <bean id="mailInfo" class="某个从数据库取得mail参数的bean类"/> 接下来。 例如 <property name="host" value="我想知道这里改怎么调用那个bean的host属性呢?" />######构建一个MailConfig的bean,在bean里加入host,username,password等必要的field,生成getter,setter方法,bean中提供一个构造方法或者其他方式,将bean初始化时,从数据库中读取配置,为field赋值。
在spring配置文件,配置该bean,用该bean替换properties,可否?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。