忍者ブログ

ビーキョウのIT

このブログは99%ののほほんと1%のお菓子でできています。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


プロパティ-読み込み-

こんちゃ(´・ω・)ノ

今回はプロパティファイルの読み込みです。

プロパティファイルとは以下のようなファイル。
--------------------------------------------
sample.properties
--------------------------------------------
text.file.name=sample.txt
text.file.path=C:\SAMPLE\
http.server.url=http://sample.co.jp
http.server.port=8080
dao.class.name=jp.co.sample.dao.SampleDAO

validation.check=true
--------------------------------------------

このプロパティファイルをjavaで読み込むことで、
処理を決定して様々な動作をさせることができる。

◆サンプル
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

public class Sample{
    private static final String PROPERTY_FILE = "sample.properties";
    private static final String TEXT_FILE_NAME = "text.file.name";
    private static final String TEXT_FILE_PATH = "text.file.path";
    private static final String HTTP_SERVER_URL = "http.server.url";
    private static final String HTTP_SERVER_PORT = "http.server.port";
    private static final String DAO_CLASS_NAME = "dao.class.name";
    private static final String VALIDATION_CHECK = "validation.check";

    public static void main(String[] args){
        Sample sample = new Sample();
        try{
            Properties properties = sample.loadProperties(PROPERTY_FILE);
            System.out.println(properties.getProperty
                                                       (TEXT_FILE_PATH+TEXT_FILE_NAME));
            System.out.println(properties.getProperty
                                  (HTTP_SERVER_URL+":"+HTTP_SERVER_PORT));
            System.out.println(properties.getProperty(DAO_CLASS_NAME));

            String validationCheck = properties.getProperty(VALIDATION_CHECK);
            if(validationCheck.equals("ture")){
                System.out.println("チェックする");
            }else{
                System.out.println("チェックしない");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
     }

    private Properties loadProperties(String propertyFile) 
                                                                         throws RuntimeException{
        Properties properties = new Properties();
        try {
            properties.load(new FileInputStream(new File(propertyFile)));
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return properties;
    }
}

◆メリット
・プログラムはコンパイルしてclassファイルになると、中々修正が面倒だが、
 プロパティファイルは外部定義のため、容易に修正が可能になる。
・場合によってはプログラムを起動したままでも、処理を切り替えることができる。

◆デメリット
・設定情報が簡単に参照できる。
・動的に変化させることができるため、処理によっては制御が複雑になる。

◆まとめ
リフレクションと組み合わせることで、
動的にクラスやメソッドを決定することができ、
処理を動的に切り替えることができるのだ。
 

拍手[0回]

PR

COMMENT

Name
Title
Mail
URL
Color
Emoji Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Comment
Pass   コメント編集用パスワード
 管理人のみ閲覧

TRACKBACK

Trackback URL:

カレンダー

09 2018/10 11
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

最新コメント

[11/13 NEX-C3]
[01/24 R]
[07/30 ビーキョウ]
[07/25 unknown]
[06/24 ブログランキング]

最新トラックバック

バーコード

広告

カウンター

ブログ内検索

プロフィール


HN:ビーキョウ
職業:SI屋(PG、SE)
<自己紹介>
ちゃお(´・ω・)ノ
ビーキョウです。
どんどんスキルアップして、 その中で学んだことを忘れないようにメモ代わり的な 感じで記事を書いていこうという考えです。

なので、適当な部分が多々あるとは思いますが、 なにとぞよろしくお願いします
(´ ▽`)

バナーエリア

Copyright ©  -- ビーキョウのIT --  All Rights Reserved
Designed by CriCri / Photo by Geralt / Powered by [PR]
/ 忍者ブログ