weblog of key_amb

主にIT関連の技術メモ

Struts2におけるDependency Injection

Struts2では、Springプラグインを使わなくても、「DIっぽいこと」ができます。

struts2のソースを"@Inject"でGrepすると参考ソースがわらわらと出てきます。

設定によるインジェクション

org.apache.struts2.components.template.TemplateEngineManager
public static final String DEFAULT_TEMPLATE_TYPE_CONFIG_KEY \
= "struts.ui.templateSuffix";
:
@Inject(DEFAULT_TEMPLATE_TYPE_CONFIG_KEY)
public void setDefaultTemplateType(String type) {
    this.defaultTemplateType = type;
}
:

"struts.ui.templateSuffix"は、default.propertiesで定義されています。

struts.ui.templateSuffix=ftl

このように、設定を外部に記述し、依存性を注入することが出来ます。