springフレームなしで、propertiesファイルを読み込む方法
1353 ワード
プロジェクトチームにソロ4.6の応用を組み入れた.新しいプロファイルが追加されました.プロジェクトの重要な情報が保存されています.この時はまだspringのフレームを使っていません.propertiesファイルの内容を得るためだけにspringのフレームを導入すると、お得ではないと思います.そこで暴力的になって、直接プロジェクトコードの中のpropertiesファイルを読みます.
ファイルの区切りは当然のことながら「\」で表してはいけません.間違いないです.Windows下のファイルセパレータはこれを使っていますが、一部のLinuxシステム下のファイルセパレータもこれを使っています.しかし、私たちのオンライン環境に行くと、問題が発生します.ログを調べてみると、オンラインのLinuxのファイルのセパレータには「/」が使われています.ですから、保険のために、やはりFile.separatorを使って表します.どのプラットフォームでも食べられます.
public void contextInitialized(ServletContextEvent sce) {
Properties properties = new Properties();
try {
String path = sce.getServletContext().getRealPath("/");
LOG.error("path:" + path);
InputStream fis = new FileInputStream(path + "WEB-INF" + File.separator + "classes" + File.separator + "im-solr.properties");
properties.load(fis);
Config.DOMAIN_URL = (String)properties.get(Config.DOMAIN_URL_KEY);
Config.LOGIN_COOKIE_NAME = (String)properties.get(Config.LOGIN_COOKIE_NAME_KEY);
Config.splitAdminStr2Set((String)properties.get(Config.ADMIN_SET_KEY));
} catch (FileNotFoundException e) {
LOG.error(e.getMessage(), e);
} catch (IOException e) {
LOG.error(e.getMessage(), e);
}
}
sce.getServletConttext().getRealPath(/);この行のコードはプロジェクトコードのルートパスを得ることができます.不思議なコードです.ファイルの区切りは当然のことながら「\」で表してはいけません.間違いないです.Windows下のファイルセパレータはこれを使っていますが、一部のLinuxシステム下のファイルセパレータもこれを使っています.しかし、私たちのオンライン環境に行くと、問題が発生します.ログを調べてみると、オンラインのLinuxのファイルのセパレータには「/」が使われています.ですから、保険のために、やはりFile.separatorを使って表します.どのプラットフォームでも食べられます.