我有一个Java程序,在其中编写了调度程序,或者在计时器开始运行时编写了计时器。它将每隔N分钟无限期调用一次该函数。现在,我将N设置为5分钟。
我想以jar文件的形式连同某种属性文件一起发送该程序,测试人员或其他任何人都可以在其中配置N;因此它更加方便,而且我不必更改代码本身。
这是一个示例:
new Vue({
el: '#vueapp',
router,
data () {
return {
linkTemplate1: "<a href='/detail/#:ProductID#' class='k-button'>Link</a>",
detailsLink: [{
name: "details",
click: function(e) {
// prevent page scroll position change
e.preventDefault();
var tr = $(e.target).closest("tr"); // get the current table row (tr)
// get the data bound to the current table row
var data = this.dataItem(tr);
// redirect to new page
router.push({ path: `/detail/${data.ProductID}` })
},// template must include k-grid-[command name]
template: "<a class='k-button k-grid-details'>TEST</a>"
}]
}
}
})
在这种情况下,N = 300000。
我对jar文件不太熟悉,但是我确实创建了带有数据库连接的属性文件。
这就是我所谓的属性:
public void schedule() throws Exception {
Timer t=new Timer();
t.scheduleAtFixedRate(
new TimerTask() {
@Override
public void run() {
// System.out.println("HELEOELE");
try {
test.index();
} catch (Exception e) {
e.printStackTrace();
}
}
},
0,
300000);
}
所以我将有什么办法做到这一点?
答案 0 :(得分:1)
如果只有jar中存在属性文件,则可以从类路径读取属性文件。
请参阅: Load properties file in JAR?
但是,如果您不想将属性文件存储在jar之外,并且能够在其中进行更改,那么有多种选择:
将其存储在文件系统上代码读取位置的指定位置。
代替属性文件,您还可以定义一个系统属性,该属性存储所需的值。但是,每次更改值时,您都必须重新启动容器。
您还可以考虑直接从数据库读取此值(可选地将其加载到内存中的缓存中)。但是,这里需要另一个API来对数据库进行更改。
将其存放在罐子外面。请参考以下链接 Read properties file outside JAR file