的是這2春天註釋和XML配置 是什麼這2春天註釋和XML配置之間的差異
2)基於XML的
1)基於註解
@Configuration
@EnableWebMvc
public class MyWebConfig{
//
}
之間的差異
<mvc:annotation-driven />
我看不到任何其他差異比XML和註釋。 何時使用哪一個?
的是這2春天註釋和XML配置 是什麼這2春天註釋和XML配置之間的差異
2)基於XML的
1)基於註解
@Configuration
@EnableWebMvc
public class MyWebConfig{
//
}
之間的差異
<mvc:annotation-driven />
我看不到任何其他差異比XML和註釋。 何時使用哪一個?
@Treydone寫了一些例子加expresse d關於基於Java的配置的主觀意見更好。
我不同意這個說法,因爲在基於Java的配置和XML配置之間沒有功能上的區別,只是你會使用哪一種習慣。有人說傳統的XML命名空間配置比較好,另外一些人則說基於Java的配置(Spring 3.0以來的版本)是Spring中IoC的下一個級別。
基於註釋的配置不是與基於Java的配置相同 - 您是從後者編寫示例的,所以我假定您在XML和Java配置之間進行選擇。
我認爲你應該閱讀:
,然後決定哪一個是最適合你。
P.S.基於註釋的配置是IMO比這兩個更糟糕的選擇,因爲它將一些依賴信息直接轉移到普通類中。
@Downvoter:你能評論答案有什麼問題嗎? – Xaerxess 2012-07-26 10:03:36
基於註解的配置比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
查看錯誤du響彙編,開始你的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;
}
}
如果您沒有在xml中使用mvc:annotation-driven,它不會讀取您的註釋。 – 2012-07-25 06:57:11
@subirkumarsao'@ EnableWebMvc' **將**讀取MVC註釋,[它們是等效的](http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html #MVC-Config中啓用)。 – Xaerxess 2012-07-25 08:36:22