![](/img/trans.png)
[英]Spring:- what is the main difference between using @autowired annotation and using “autowire” in spring xml configuration?
[英]What is difference between these 2 Spring Annotation and XML config
這兩個Spring Annotation和XML配置有什么區別
1)基於注釋
@Configuration
@EnableWebMvc
public class MyWebConfig{
//
}
2)基於XML
<mvc:annotation-driven />
我看不出除xml和注釋之外的任何其他區別。 什么時候使用哪一個?
基於注釋的配置比xml中的等效配置更容易,更易讀。 例如,在xml中將屬性設置為map,如下所示:
<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。
BTW基於注解配置的是不一樣的基於Java的一個-你從后者寫道例子,所以我假設你是XML和Java之間CONFIGS選擇。
我想你應該讀:
然后決定哪一個最適合你。
基於PS注釋的配置是IMO比這兩者更糟的選擇,因為它將一些依賴信息直接移動到普通類中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.