SpringMVC配置之使用annotation替代xml

原创
2015/01/10 23:28
阅读数 363

##前言 如何使用annotation取代xml呢。其实质就是把xml用java class表示,不过这些class要实现特定的接口。 那对于springmvc程序来说,我们要用到哪些xml呢。一般来讲会用到web.xml,spring根容器配置文件applicationContext.xml,springmvc容器配置文件mvc.xml

##web.xml

###用途 此文件为servlet规范中规定的文件。用来把我们要用到的servlet,filter,listener等注册给web服务器。算是一个java web应用的入口。 ###annotation化 Servlet 3.0中定义了一个接口ServletContainerInitializer,web服务器在启动的时候会扫描classpath下面所有实现了该接口的类,并调用它们。实现该接口,通过编码,可以实现与web.xml同样的功能。当然直接使用ServletContainerInitializer比较麻烦,spring及springmvc又给我们提供了一系列的简化,我们直接继承AbstractAnnotationConfigDispatcherServletInitializer即可。

##根容器配置文件applicationContext.xml

###用途 spring根容器的配置文件,比如说我们的dao啊,service啊一般都是放在根容器中的。 ###Annotation化 这个很简单,一个普通的java class就行了。类名上一般要加@Configuration@ComponentScan注解。注意在@ComponentScan的参数中指定要扫描的包名和要过滤的类。@ComponentScan要过滤的类通常有两种:一种是留给mvc容器的,一种是mvc容器本身的配置类。

##mvc容器配置文件mvc.xml

###用途 mvc容器的配置文件,mvc容器一般包含了ControllerViewResolverHandlerMapping等。 ###Annotation化 其实也是一个普通的java class就行了,加上@Configuration@ComponentScan还有@EnableWebMvc。当然为了更复杂的自定义也可以不使用@EnableWebMvc而是继承WebMvcConfigurationSupport。这里的@ComponentScan同样要指定扫描包以及如何过滤的bean(只留下带有@Controller@ControllerAdvice的bean)。

##如何关联 在web.xml中我们通过字符串指定了applicationContext.xmlmvc.xml。 Annotaion方式是在AbstractAnnotationConfigDispatcherServletInitializer的子类中,通过getRootConfigClassesgetServletConfigClasses两个方法,返回配置类。

##示例代码 mvc版本参考这里
等价的annotation版本参考这里

展开阅读全文
打赏
1
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
1
分享
返回顶部
顶部