这两个Spring注释和XML配置之间有什么区别
1)基于注释
@Configuration
@EnableWebMvc
public class MyWebConfig{
//
}
2)基于XML
<mvc:annotation-driven />
我看不出除xml和注释之外的任何其他区别。 什么时候使用哪一个?
答案 0 :(得分:1)
基于注释的配置比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);
还有很多其他专业人士:
从匿名内部类型
在启动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;
}
}
答案 1 :(得分:1)
@Treydone写了一些例子,并表达了关于基于Java的配置更好的主观意见。
我不同意这种说法,因为基于Java的配置和XML配置之间没有功能差异,这只是你习惯使用的习惯问题。有人说传统的XML命名空间配置更好,其他人说基于Java的配置(从3.0开始就是Spring)是Spring的下一级IoC。
BTW基于注释的配置与基于Java的配置不一样 - 您从后者编写了示例,因此我假设您在XML和Java配置之间进行选择。
我认为你应该阅读:
然后决定哪一个最适合你。
P.S。基于注释的配置比IMO更糟糕,因为它将一些依赖信息直接移动到普通类中。