mysql的bean配置_如何使用数据库中的属性重新加载配置bean

我需要为每个发送的邮件创建一个Spring javamail

bean,并使用数据库中的值进行初始化。基于本文,如何从数据库加载应用程序属性

我已经配置PropertyPlaceholderConfigurer为从属性文件和数据库中加载值。我的mailSenderJava配置类中有以下bean(),用于从应用程序发送邮件,该应用程序从数据库加载主机,端口,用户名和密码,

@Configuration

public class MailSenderConfig {

@Bean

public JavaMailSender mailSender() {

JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();

javaMailSender.setHost(PropertiesUtils.getProperty("mail.server.host"));

javaMailSender.setPort(Integer.parseInt(PropertiesUtils.getProperty("mail.server.port")));

javaMailSender.setUsername(PropertiesUtils.getProperty("mail.server.username"));

javaMailSender.setPassword(PropertiesUtils.getProperty("mail.server.password"));

return javaMailSender;

}

}

但是我的问题是,当数据库值更改时,mailSenderbean具有启动应用程序上下文时提供的旧值。为了对Bean进行任何更改,我需要重新启动服务器以更新Bean值。

我将这个bean注入我的控制器中,我需要在其中发送这样的邮件,

@Autowired

private JavaMailSender mailSender;

根据一些建议,我尝试使用@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)它,但是它没有创建新的bean定义(仍然具有旧值)。

所以我需要的是,每次使用此mailSenderbean 发送邮件时,它都应从数据库中选择值,而无需重新启动上下文或服务器。有可能或如何做到?

任何帮助表示赞赏。谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于SSM框架+Mysql的企业CRM客户关系管理系统项目源码+数据库+项目说明.zip # 关于项目 该项目是基于SSM实现的客户关系管理系统 ## 1️⃣技术栈 Spring+SpringMVC+MyBatis+Thymeleaf+Vue+JS+Jquery+Axios+Json 服务器: Tomcat_9.0.60 数据库MySQL_8.0.28 开发工具:IDEA_2021.3.3 页面:Bootstrap_3.3.0 ## 2️⃣已实现的功能 **:star: 账号登录** **:star: 市场活动** ## 3️⃣日志 ### 2022/4/2 - 实现基本的登录功能: 1. 使用@RequestBody接收Axios传来的Json对象时,可以用一个Map对象接收,也可以用一个POJO类对象接收 2. 使用@RequestBody接收Axios传来的Json对象时,必须设置请求报文的Content-Type属性为application/json,否则报HTTP:415 3. 导入js静态文件(vue.js,jquery.js等)时,不要直接使用相对路径,使用thymeleaf或者使用绝对路径 ### 2022/4/3 - 记住密码,退出登录,验证登录状态: 1. 使用@RequestBody接收Axios传来的Json对象时,接收到的checked属性为一个Boolean类型,而不是一个String 2. 在用户不需要记住密码时,调用setMaxAge方法将cookie的生命周期设置为0,即可销毁cookie 3. 由于使用thymeleaf暂时没找到操作cookie的方法,故此导入vue-cookie包,使用vue操作cookie 4. 在vue,不能用$cookies.get('loginAct') && $cookies.get('loginPwd')为checked赋值,此时值为$cookies.get('loginPwd')。应该用!!($cookies.get('loginAct') && $cookies.get('loginPwd')),此时值为一个布尔类型 ### 2022/4/4 - 工作台主页显示,市场活动主页面显示,创建市场活动: 1. 输入日期的input标签应该加上autocomplete="off",否则历史记录的下拉列表会覆盖日历 2. vue无法在实现了bootstrap日历功能的input标签上使用v-model进行双向绑定,会出现值消失的情况。建议ref选择标签用value直接获取日期值 3. bootstrap日历插件汉化包不能正常加载,出现乱码,解决办法:将汉化包的代码复制到Script标签下 ### 2022/4/7 - 市场活动的分页查询与展示,条件查询: 1. 项目视频上有错误,查询市场活动的sql语句的limit后面应该用${beginNo},${pageSize},而不是#{}.此外limit的起始索引应该为0,而不是1 2. vue调用钩子函数beforeMount(),在页面渲染之前向服务器发送axios异步请求,注意:此时页面还没有渲染,所以无法获取页面的标签 3. vue使用v-for,根据列表动态的显示html标签 ### 2022/4/8 - 翻页功能,全选功能,删除市场活动: 1. 进行翻页操作的时候,注意要把选的条目和全选重置 2. 从axios返回给Java的json对象的数组是一个List对象而不是一个数组,在controller强转一下可以直接传入service 3. Mybatis,foreach标签的collection属性应该填list,表示的是List类型 ### 2022/4/9 - 修改市场活动,导出全部市场活动: ### 2022/4/10 - 导入市场活动,市场活动备注的增删改查: 1. 文件上传用到MultipartFile类,需要引入相关插件并在MVC配置文件配置multipartResolver解析器bean 2. 将thy

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值