1. 程式人生 > >Javaweb專案不用重啟載入properties檔案的方法(根據時間戳來判斷)

Javaweb專案不用重啟載入properties檔案的方法(根據時間戳來判斷)

不多說 先來原始碼

package com.lx.core.util;


import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;


import org.apache.log4j.Logger;


public class PropertiesUtil {


private static Properties prop;


private static Logger log = Logger.getLogger(PropertiesUtil.class);

private static Long lastModified = 0l;  


private static void init() {


prop = new Properties();
String filepath = PropertiesUtil.class.getClassLoader().getResource("/properties/config.properties").getPath();
log.info(filepath);
FileInputStream fis = null;
try {
fis = new FileInputStream(filepath);
prop.load(fis);
} catch (IOException e) {
log.error("載入系統路徑資原始檔錯誤!");
e.printStackTrace();
}
}


public static String getProperty(String key) {


if (prop == null || isPropertiesModified()) {
init();
}
String value = prop.get(key).toString();
return value;
}

//判斷是否被修改過  
public static boolean isPropertiesModified() {  
        boolean returnValue = false;  
        File file = new File(PropertiesUtil.class.getClassLoader().getResource("/properties/config.properties").getPath());  
        if (file.lastModified() > lastModified) {  
        lastModified=file.lastModified();
            returnValue = true;  
        }  
        return returnValue;  
    } 
}

isPropertiesModified方法來判斷配置檔案的最後修改時間和lastModified 中儲存的最後修改時間戳是否一致,一致,不進行重新載入.不一致  重新讀取檔案內容到記憶體

以下是測試類

package com.lx.core.util;


import org.springframework.stereotype.Service;


@Service  
public class TaskJob {  

    public void AutoLaunchSend() throws Exception{
   
    String zxq=PropertiesUtil.getProperty("zxq");
   
    System.out.println(zxq);
   
    }
}

相關推薦

Javaweb專案不用載入properties檔案方法(根據時間判斷)

不多說 先來原始碼 package com.lx.core.util; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Pro

idea配置熱載入,開發不用tomcat,tomcat配置熱載入,釋出專案不用tomcat,在自己專案的context配置jdbc資料來源

在conf/server.xml裡面的Host加入Context節點,設定以下屬性 path="/project_name" docBase="project_name" debug="1" reloadable="true"> 然後在Context節點加入以下子節點 <Watche

javaWeb專案ssm框架中jdbc.properties檔案載入不了或獲取不到值的解決方法

最近在做的ssm專案在junit測試是發現jdbc.properties檔案讀取不到資料庫配置檔案,開始以為是配置檔案有錯,後來才發現是jdbc.properties檔案中存在空格導致的錯誤。下面來總結以下可能的錯誤:背景:ssm框架+mysql(c3p0資料來源配置)

修改Java檔案不用Tomcat服務的方法

在tomcat的安裝目錄的conf檔案中找到server.xml這個檔案,在 <Host>結點裡面加上 <Context docBase="工程物理路徑" path="/工程名" reloadable="true" source="org.eclip

[JAVA]修改Java檔案不用Tomcat服務的方法

修改Java檔案不用重啟Tomcat服務的方法       在使用Eclipse+Tomcat開發Java專案的時候常常會碰到這樣的情況,已修改Java檔案Tomcat就會自動重啟,接下來就是漫長的等待服務重啟完畢。那其實大多數的Java檔案修改是沒有必要重啟服務的,只有一

groovy修改代碼不用通過監聽記錄改變時間重新加載

.com 寫法 ges java代碼 好的 jpg 一個 png blog groovy是一個跟java 很像的腳本語言,基於jvm,寫法比java隨意一點可以跟java代碼很好的集合,如果項目中有用到規則可以在控制層使用groovy編寫代碼,調用規則。 在spring-m

maven專案 修改properties屬性檔案不用

1.專案中經常變化的值, 比如 圖片伺服器路徑啊‘第三方的路徑’,都需要放到 屬性檔案裡, 怎樣才能不用重啟 修改 屬性檔案呢, public static String getPropertiesValue(String name, String key) {     

eclipse mavenWeb專案真正實現熱部署(修改java程式碼和頁面檔案不用tomcat)

        1.前言   先說熱部署的含義:   熱部署原來被定義為:tomcat啟動後,如果你往webapps目錄下,新增新的專案,tomcat會實現自動將其釋出的功能,這時,就叫做熱部署。   網上所實現的熱部署

java不服務動態載入properties檔案

動態載入properties檔案內容,不需要重啟服務! 1 、Maven 工程,在resource下新建一個properties檔案 target/classes/config.properties user=dufy phoneNo=123456

Java中動態載入properties檔案,而不需要應用的解決辦法

java中動態載入properties檔案,而不需要重啟應用的解決方法在Java專案中,如果需要使用.properties型別的檔案作為某些配置資訊存放介質的時候,一般都是將.properties檔案放在src目錄下,程式碼大部分都是這樣寫的: Properties pro

Eclipse 修改方法裡面的內容不用專案

在跑專案得時候,修改了一個字元都需要重啟,覺得特別麻煩。網上看了一堆都是eclipse+tomcat不用重啟的教程。我的專案使用run as java application啟動的。找了一堆資料才發現: 沒有勾選Build Automatically,導致不能自動編譯為class檔案(專案特別大

springcloud專案 jar啟動專案載入properties檔案報錯

專案在使用命令cmd視窗下   java -jar test.jar 的時候,報錯task.properties (檔名、目錄名或卷標語法不正確。 正常的war包是寫法如下: String path = PropertiesHander.class.getResource(

修改配置檔案不用tomcat

專案需要頻繁更新配置檔案,每次改完需要先停tomcat,在重啟很麻煩~~~ 今天抽個空研究了一下,發現很多人都遇到類似的問題,然後綜合了下各個網站的解決辦法,我整了一個demo出來了,廢話不多說先上圖: 說明:配置檔案第一次只有一個屬性,test;待執行完後又新增一個新屬

idea利用devTools熱部署,修改java檔案不用服務

pom檔案中引入依賴 <dependency> <groupId>org.springframework.boot</groupId> <a

IDEA修改java檔案不用Tomcat服務便可自動更新

一、問題使用IDEA開發Java時,修改java檔案後,需要重啟tomcat,程式碼方生效,重啟tomcat耗時較長,嚴重影響開發效率。二、解決1、配置tomcat時,on 'update' action和on frame deactivation選項都選擇 update c

修改Java檔案後終於不用伺服器了.

 今天發現一個很NB的玩意,讓我們在開發的時候修改Java檔案,不用重啟伺服器立刻生效!支援Jetty tomcat jboss等很多伺服器,它就是JRebel。       http://www.zeroturnaround.com/jrebel/installation/ 這裡有針對不同伺服器的安裝方法

不用Tomcat服務實現修改Java檔案後自動部署

可以修改類不用重啟Tomcat載入整個專案(手工啟動) 1.配置reloadable=true(自動過載) 2.使用Debug模式,前提是僅限於區域性修改。(修改類不用重啟--熱載入) 在使用Eclipse+Tomcat開發Java專案的時候常常會碰到這樣的情況,已修改Ja

如何explorer,不用電腦 也能使設置生效

標簽 .exe 生效 不用 win10 電腦 運行 ont 切換 下面以win10 為例,其實其他系統也一樣 換湯不換藥。 1、執行Ctrl + Shift + Delete組合鍵,打開任務管理器,切換到進程標簽。找到explorer.exe進程,右鍵點擊結束任務  

MySQL管理之道-筆記-MySQL5.7-在線調整innodb_buffer_pool_size不用mysql進程

位置 mysq chunk ike global hunk 單位 數據頁 buffer 在線調整innodb_buffer_pool_size不用重啟mysql進程MySQL5.7以前,調整innodb_buffer_pool_size需要重啟mysql進程才可以生效。建議

為什麼修改jsp不用tomcat,而修改servlet要tomcat

servlet和jsp本質都是servlet,執行時都是執行.class檔案。但是它們的部署方式不一樣。   servlet是先編譯後部署,修改完以後,MyEclipse進行編譯,然後部署.class檔案到servlet容器中。如果web伺服器已啟動,則之前class已被servl