Javaプロジェクトプロファイルの読み込みの2つの方法
2451 ワード
一.OWNER API管理プロファイル
1.プロジェクトにownerのjarパッケージを導入する:owner-1.0.6-sources.jar,owner-java8-1.0.6-sources.jar
mavenプロジェクトならpomに直接xmlに追加:
必要に応じてバージョン番号を選択できます
2.プロジェクトのルートディレクトリにプロファイルを追加する:Config.properties
3.
4.テスト
二.ResourceBundleクラスに従ってプロファイルを読み込む
WEB-INFディレクトリのプロファイル
1.プロジェクトにownerのjarパッケージを導入する:owner-1.0.6-sources.jar,owner-java8-1.0.6-sources.jar
mavenプロジェクトならpomに直接xmlに追加:
org.aeonbits.owner
owner-java8
1.0.6
必要に応じてバージョン番号を選択できます
2.プロジェクトのルートディレクトリにプロファイルを追加する:Config.properties
port=80
hostname=lili
maxThreads=100
3.
import org.aeonbits.owner.Config;
import org.aeonbits.owner.Config.Sources;
@Sources({"file:~/.MyConfig.config", "file:/etc/MyConfig.config","classpath:MyConfig.properties" })
public interface MyConfig extends Config{
int port();
String hostname();
@DefaultValue("42")
int maxThreads();
}
@Sourcesのパラメータはリソースアドレス配列で、複数を選択して複数のファイルから検索できます4.テスト
public static void main( String[] args )
{
MyConfig cfg = ConfigFactory.create(MyConfig.class);
System.out.println("---- " + cfg.hostname() + "---------" + cfg.port() +
" ------- " + cfg.maxThreads());
}
二.ResourceBundleクラスに従ってプロファイルを読み込む
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
import javax.servlet.ServletContext;
import org.springframework.web.context.ContextLoader;
import org.springframework.web.context.WebApplicationContext;
public class Config {
private static ResourceBundle RESOURCE_BUNDLE;
private static BufferedInputStream inputStream;
public static String getString(String key) {
WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();
ServletContext context = webApplicationContext.getServletContext();
String webappRoot = context.getRealPath("/");
File f = new File(new File(webappRoot, "WEB-INF"), "conf.properties");
try {
inputStream = new BufferedInputStream(new FileInputStream(f));
RESOURCE_BUNDLE = new PropertyResourceBundle(inputStream);
inputStream.close();
return RESOURCE_BUNDLE.getString(key);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
この方法で読み取り可能WEB-INFディレクトリのプロファイル