"
1.为何${pay_order_risk_task.cron}值可以传到cron里,却不能传到execute参数里?
<context:property-placeholder location="classpath:dbservice-datasource.properties,classpath:task-config.properties" system-properties-mode="OVERRIDE"/>
@Scheduled(cron = "${pay_order_risk_task.cron}") // 每5秒执行一次
public void run() throws Exception {
super.execute("${pay_order_risk_task.cron}");
}
2.有没更好的方法传值到execute的参数里,从配置文件里取,已知道的方法
public class XXX implements InitializingBean {
@Value("#{xxxx['xxx.xxx']}")
private boolean xxx;
@Override
public void afterPropertiesSet() throws Exception {
xxx();
}
3.我想统一传参数的方式,最好能直接用
${pay_order_risk_task.cron}
搞定
求各位大神给点建议。
"
"
不知道题主注意到@PathVariable
这个注解没有,例如像下面这样的代码,
@Scheduled(cron = "${pay_order_risk_task.cron}") @LikeRequestMapping("/crontab/{expression}") public void run(@LikePathVariable("expression")String cron) throws Exception { super.execute(cron); }
请忽略上面的注解名字。
所以你需要做的就是实现自己的注解LikePathVariable
,把注解注册到Spring
,大概在扫描package的时候可以确定这个值。
不太确定实现起来会不会麻烦,有什么需要调整的地方。
######目前采用的spring配置文件注入
<bean id="taskConfigProperties"
class="com.xxx..properties.TaskConfigProperties">
<property name="payOrderRiskTaskParam" value="${pay_order_risk_task.param}" />
</bean>
${pay_order_risk_task.param}貌似不支持直接在代码里用,但是可以在spring注入的时候替换变量
######没注解当然不行了,写在properties里面的,可以直接读取这个properties文件获取值
"版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。