本人苦逼学生一枚,马上就要毕业,面临找工作,实在是不想离开学校.在老师的教导下学习了spring mvc ,配置文件实在繁琐,因此网上百度学习了spring mvc 全注解方式完成spring的装配工作;
废话不多说了上干货,其实我也没怎么理解不过简单的运行了一个spring mvc 全注解项目,也不能说是全注解,因为保留了web.xml和spring-serlvet.xml文件,(可能有的童鞋会说,这样配置可能对以后的修改不方便,无法达到只修改配置文件就切换某些环境。其实不是,零配置文件只是修改了类定义的配置,并没有修改之前配置文件的灵活性。我想无论谁也不会在之前的web.xml中去修改某个servlet的配置吧。况且这些所谓的配置文件灵活性,只是针对某个值,我们可以写在我们的properties文件里面,而且Spring对这类配置文件有很好的支持,而且使用很方便,有兴趣的童鞋可以去search一下。所以请打消这个配置不灵活的念头)。
首先我们看一下项目结构
项目采用maven管理,入门的同学应该都知道maven的优点,可以学习一下.
下面看一下核心的配置java类
1 packagecn.edu.lhs.config;2 importorg.springframework.context.annotation.Bean;3 importorg.springframework.context.annotation.ComponentScan;4 importorg.springframework.context.annotation.Configuration;5 importorg.springframework.web.servlet.config.annotation.EnableWebMvc;6 importorg.springframework.web.servlet.view.JstlView;7 importorg.springframework.web.servlet.view.UrlBasedViewResolver;8
9 @Configuration10 @ComponentScan("cn.edu.lhs")11 @EnableWebMvc12 public classwebConfig {13 /**
14 * jsp视图解析器15 */
16 @Bean17 publicUrlBasedViewResolver setupviewResolver(){18 UrlBasedViewResolver resilver=newUrlBasedViewResolver();19 resilver.setPrefix("WEB-INF/views/");20 resilver.setSuffix(".jsp");21 resilver.setViewClass(JstlView.class);22 returnresilver;23
24
25 }26 }
以上代码为配置spring-mvc.xml下的jsp视图解析的
让后就是去web.xml
package cn.edu.lhs.config;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration.Dynamic;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;
@ComponentScan("cn.edu.lhs")
public class webInitalizer implements WebApplicationInitializer {
public void onStartup(ServletContext servletContext)throws ServletException{
AnnotationConfigWebApplicationContext ctx=new AnnotationConfigWebApplicationContext();
ctx.register(webConfig.class);
ctx.setServletContext(servletContext);
Dynamic servlet=servletContext.addServlet("dispatcher", new DispatcherServlet(ctx));
servlet.addMapping("/");
servlet.setLoadOnStartup(1);
}
}
这里以webApplicationINitializer接口,利用AnnotationCOnfigwebApplicationCOntext 类
寄存器
public void register(Class ... annotatedClasses)
注册要处理的一个或多个注释类。
注册配置类
现在就可以删除web.xml里的东西了
项目代码:https://github.com/tsxylhs/spring-mvc