プロパティファイルの取得の仕方 備忘録
DIの発想にたつと、プロパティの取得をstaticにAbstractModuleに書くのはよくない。
なので、Injectして与えるということになるが・・・。
なんか、複雑やね。
XADatasouceModuleを見ただけでは、生成の仕方が不明で、Conventionもみないといけないし・・・。
まぁ、単一のルールを決めてとすると、アーキテクト側としてはいいのか、conventionを一か所にまとめて、bindしてやればいいし。
好みの問題か・・・。
@Inject @Named("convention.xaDataSource") PropertiesConvention convention; Properties properties = convention.getProperties(); XADataSourcePaeImpl instance = GuiceInstanceFactory.getInstance(XADataSourcePaeImpl.class, properties); bind(XADataSource.class).toInstance(instance);
XADataSourcePropertiesConvention.java bind(PropertiesConvention).annotatedWith(xxxx).toInsntace(yyyy);
プロジェクトで単一のルールを作るなら
ConventionModule.java yyyy = new YYYYY() bind(PropertiesConvention).anno(xxxx).toInsntance(yyyy); bind(PropertiesConvention).anno(zzzz).toInsntance(yyyy);
あー、namedの指定してあるときにnamedのbindしていないとどういう振る舞いするんだろう、調べないと・・・
プロパティファイルを別に2つのモジュールを作成したいときとかも考えとこ。ある程度は見えているけど。
暗黙的なルールってやめとこ、ソース見てもすぐ判らないし、いいことない。