LaBee Framework 初期起動プロセス実行方法


LaBee FrameworkはJavaによるWebシステム開発のデファクトスタンダードを目指す、ゼロから作られた国産のJavaフレームワークです。 海外製フレームワーク特有の難解さや情報不足による工数や人員の増大を解消しJavaのWeb開発を効率化する為に作られました。 LGPLライセンスでソースコードをオープンソース公開しており、個人・企業問わずどなたでも無償で利用出来ます
https://www.bee-wkspace.com/

初期実行プロセス

Webアプリケーション固有でプロパティ読み込み等の初期設定を行ないたい場合があります。そういう場合に以下の条件に沿ったクラスを作成するとLaBeeFrameworkシステムが初期起動した際に作成したクラスのプロセスが自動で実行されます。

初期起動プロセス実装条件

定義箇所 概要
@AppInitProcessアノテーション付加 初期実行したいプロセスクラスには@AppInitProcessアノテーションを付加します。作成するクラスは設定ファイル等で ファイルの所在等を定義する必要は無く、@AppInitProcessアノテーションを付加するだけでLaBeeFrameworkが自動で当該クラスを 検索して実行します。初期実行プロセスクラスは複数存在しても構いませんが実行順は保証されません。
ProcessInterfaceインタフェース実装 初期実行したいプロセスクラスにはcom.bee_wkspace.labee_fw.core.base.ProcessInterfaceインターフェースの実装定義します。
startProcess()メソッド実装 初期実行したいプロセスクラスにはインターフェースで定義しているstartProcess()メソッドを実装します。初期実行処理は このメソッド内で行ないます。プロパティファイル読込みやポーリングスレッド起動などが考えられます。
その他 ProcessInterfaceインターフェースで定義しているその他メソッドを実装します。

初期実行プロセス実装例 (抜粋)

/**
 * 初期プロパティ読み込み処理
 */
@AppInitProcess
public class LaBeeConfigMng implements ProcessInterface {
    /** プロパティーファイル名 */
    private static String CONFIG_FILE = "config/LaBeeWeb.properties";
    /** メールサーバ接続情報 */
    private static MailServerContext mainServerContext;
    /*
     * (非 Javadoc)
     * 
     * @see
     * com.bee_wkspace.labee_fw.core.base.AppInitializerInterface#initCall()
     */
    @Override
    public void startProcess() throws Exception {
        try {
            Properties prop = SystemUtil.loadProperties(SystemInitializer.getClassLoaderMakedObject(), CONFIG_FILE);
            mainServerContext = new MailServerContext();
            mainServerContext.setServerHost(StringUtil.trim(prop.getProperty("MAIL_SERVER_HOST")));
            mainServerContext.setServerPort(StringUtil.trim(prop.getProperty("MAIL_SERVER_PORT")));
            mainServerContext.setMailAccount(StringUtil.trim(prop.getProperty("MAIL_ACCOUNT")));
            mainServerContext.setMailPassWord(StringUtil.trim(prop.getProperty("MAIL_PASSWORD")));
            mainServerContext.setSendersName(StringUtil.trim(prop.getProperty("MAIL_SENDERS_NAME")));
            mainServerContext.setSenderMailAddr(StringUtil.trim(prop.getProperty("MAIL_SENDER_ADDR")));
        } catch (MissingResourceException e) {
            throw e;
        } catch (Exception e) {
            throw e;
        }
    }
}