0

これらの2つのSpringアノテーションとXML構成の違いは何ですか

1)注釈ベース

@Configuration
@EnableWebMvc
public class MyWebConfig{
   // 
}

2)XMLベース

<mvc:annotation-driven />

xmlとアノテーション以外の違いはわかりません。いつどれを使うの?

4

2 に答える 2

1

アノテーションベースの構成は、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;
    }
}
  • 他の多くの....
于 2012-07-25T08:05:54.193 に答える
1

@Treydoneはいくつかの例を書き、Javaベースの構成の方が優れているという主観的な意見を表明しました。

Javaベースの構成とXML構成の間に機能的な違いはないため、どちらを使用するかは習慣の問題であるため、このステートメントには同意しません。従来のXML名前空間構成の方が優れていると言う人もいれば、Javaベースの構成(3.0以降Springにある)がSpringの次のレベルのIoCであると言う人もいます。

ところで、アノテーションベースの構成はJavaベースの構成と同じではありません。後者の例を書いたので、XML構成とJava構成のどちらかを選択していると思います。

私はあなたが読むべきだと思います:

次に、どれがあなたに最適かを決定します。

PSアノテーションベースの構成は、一部の依存関係情報を通常のクラスに直接移動するため、これら2つよりもIMOの選択肢としては不適切です。

于 2012-07-25T08:34:19.873 に答える