java – 如何在Spring中更改运行时的属性值
发布时间:2020-12-14 05:41:44 所属栏目:Java 来源:网络整理
导读:我需要在运行时更改应用程序中的属性. 例如,我有一个服务,它发送一个带有resset密码的电子邮件.请求有效期为12小时.但我想在运行时将此时间更改为24或更多.我需要为管理员提供此操作的机会. 我的属性文件有 hours.expired=12 我的服务 private int hoursExpi
我需要在运行时更改应用程序中的属性.
例如,我有一个服务,它发送一个带有resset密码的电子邮件.请求有效期为12小时.但我想在运行时将此时间更改为24或更多.我需要为管理员提供此操作的机会. 我的属性文件有 hours.expired=12 我的服务 private int hoursExpiredPassword; public void setHoursExpiredPassword(int hoursExpiredPassword) { this.hoursExpiredPassword = hoursExpiredPassword; } @Override public ERequests checkRequest(String number,Date date) { PasswordResetRequest findedObject = passwordResetRequestDao.getObjectByElement(PasswordResetRequest.class,"requestId",number); if (findedObject == null){ return ERequests.BAD_REQUEST; }else{ long result = getDateDiff(findedObject.getRequestDate(),date,TimeUnit.HOURS); if(result >= hoursExpiredPassword){ return ERequests.EXPIRED_REQUEST; } } return ERequests.CORRECT_REQUEST; } 我的春季xml配置 <bean id="passwordResetRequestService" class="pl.lublin.example.services.servicesDAO.PasswordResetRequestService"> <property name="passwordResetRequestDao" ref="passwordResetRequestDao"></property> <property name="hoursExpiredPassword" value="${hours.expired}"></property> </bean> 我可以在运行时以某种方式更改此值吗? 解决方法
刚刚从2017年的xml配置中脱离出来.
@Service public class PasswordResetRequestService { @Value("${hours.expired:12}") private int hoursExpiredPassword; @Autowired private PasswordResetRequestDao passwordResetRequestDao; public void setHoursExpiredPassword(int hoursExpiredPassword) { this.hoursExpiredPassword = hoursExpiredPassword; } @Override public ERequests checkRequest(String number,TimeUnit.HOURS); if(result >= hoursExpiredPassword){ return ERequests.EXPIRED_REQUEST; } } return ERequests.CORRECT_REQUEST; } } 使用@Value,您将从属性文件中提取hours.expired值,如果没有值,则默认值为12.您还可以在运行时调用setHoursExpired并设置新值并将该功能公开给您的管理员. 这对于一次性操作很方便.如果您希望管理员永久更改密码到期时间,我会在mysql或您正在使用的数据库中持续使用hours.expired值. 编辑:回答完全有效的@matt评论.如果是这种情况并且转向Java confing不是一种选择.对于自定义行为,您只需在服务中自动装配XML定义的bean并执行您想要的任何逻辑. @Autowired private pl.lublin.zeto.zetoRA.services.servicesDAO.PasswordResetRequestService passwordResetRequestService; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |