【Spring】web开发 javaConfig方式 图解

来源:互联网 发布:js picker 编辑:程序博客网 时间:2024/06/05 19:15

spring3.2之后开始支持java配置方式开发web项目,不使用web.xml,但需要在servlet3.0环境,一般tomcat7会支持,6不行

下图中:MyAppInitializer和SpringServletContainerInitializer是查找关系,没有继承


创建maven的web项目 

容器首先会加载这个类

package org.spitter.config;import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;public class MyAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{//抽象类的实现类会自动地配置DispatcherServlet 和 spring 应用的上下文@Overrideprotected Class<?>[] getRootConfigClasses() {return new Class<?>[]{RootConfig.class};}@Overrideprotected Class<?>[] getServletConfigClasses() {return new Class<?>[]{WebConfig.class};}@Overrideprotected String[] getServletMappings() {return new String[]{"/"};}}

然后是RootConfig.class

package org.spitter.config;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.ComponentScan.Filter;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.FilterType;import org.springframework.web.servlet.config.annotation.EnableWebMvc;@Configuration@ComponentScan(basePackages={"org.spitter"},excludeFilters={@Filter(type=FilterType.ANNOTATION,value=EnableWebMvc.class)})public class RootConfig {}

然后是WebConfig.class

package org.spitter.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.ViewResolver;import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;import org.springframework.web.servlet.config.annotation.EnableWebMvc;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;import org.springframework.web.servlet.view.InternalResourceViewResolver;@Configuration@EnableWebMvc@ComponentScan(basePackages = {"org.spitter.web"})public class WebConfig extends WebMvcConfigurerAdapter {//配置视图解析器@Beanpublic ViewResolver viewResolver() {InternalResourceViewResolver resolver = new InternalResourceViewResolver();resolver.setPrefix("/page/");resolver.setSuffix(".jsp");resolver.setExposeContextBeansAsAttributes(true);return resolver;}//配置静态资源的处理@Overridepublic void configureDefaultServletHandling( DefaultServletHandlerConfigurer configurer) {configurer.enable();}}

最后写一个Controller

package org.spitter.web;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;@Controllerpublic class HomeController {@RequestMapping(value="/myhome",method=RequestMethod.GET)public String home(){return "home";}}


这样,初始web项目完成,可以启动tomcat加载了


0 0
原创粉丝点击