これらの2つのSpringアノテーションとXML構成の違いは何ですか
1)注釈ベース
@Configuration
@EnableWebMvc
public class MyWebConfig{
//
}
2)XMLベース
<mvc:annotation-driven />
xmlとアノテーション以外の違いはわかりません。いつどれを使うの?
これらの2つのSpringアノテーションとXML構成の違いは何ですか
1)注釈ベース
@Configuration
@EnableWebMvc
public class MyWebConfig{
//
}
2)XMLベース
<mvc:annotation-driven />
xmlとアノテーション以外の違いはわかりません。いつどれを使うの?
アノテーションベースの構成は、xmlの同等の構成よりも簡単で読みやすく構築できます。たとえば、xmlでプロパティをマップとして設定すると、次のようになります。
<property name="maps">
<map>
<entry key="Key 1" value="1" />
<entry key="Key 2" value-ref="PersonBean" />
<entry key="Key 3">
<bean class="com.mkyong.common.Person">
<property name="name" value="mkyongMap" />
<property name="address" value="address" />
<property name="age" value="28" />
</bean>
</entry>
</map>
</property>
Java構成ファイルでは、これは次のようになります。
Map<String, Object> maps = ...
maps.put()...
....setMaps(maps);
他にも多くの長所があります。
匿名の内部型のインスタンスからBeanを追加します
SpringコンテキストとTomcatを開始する前に、コンパイル中にエラーを確認してください...
Bean構造にいくつかの条件を追加します
例えば:
@Bean
public ViewResolver internalResourceViewResolver() {
ClassLoader classLoader = getClass().getClassLoader();
if (ClassUtils.isPresent("org.apache.tiles.TilesContainer", classLoader)) {
TilesViewResolver viewResolver = new TilesViewResolver();
return viewResolver;
} else {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
@Treydoneはいくつかの例を書き、Javaベースの構成の方が優れているという主観的な意見を表明しました。
Javaベースの構成とXML構成の間に機能的な違いはないため、どちらを使用するかは習慣の問題であるため、このステートメントには同意しません。従来のXML名前空間構成の方が優れていると言う人もいれば、Javaベースの構成(3.0以降Springにある)がSpringの次のレベルのIoCであると言う人もいます。
ところで、アノテーションベースの構成はJavaベースの構成と同じではありません。後者の例を書いたので、XML構成とJava構成のどちらかを選択していると思います。
私はあなたが読むべきだと思います:
次に、どれがあなたに最適かを決定します。
PSアノテーションベースの構成は、一部の依存関係情報を通常のクラスに直接移動するため、これら2つよりもIMOの選択肢としては不適切です。