zoukankan      html  css  js  c++  java
  • java spring mvc 全注解

               本人苦逼学生一枚,马上就要毕业,面临找工作,实在是不想离开学校.在老师的教导下学习了spring mvc ,配置文件实在繁琐,因此网上百度学习了spring mvc 全注解方式完成spring的装配工作;

    废话不多说了上干货,其实我也没怎么理解不过简单的运行了一个spring mvc 全注解项目,也不能说是全注解,因为保留了web.xml和spring-serlvet.xml文件,(可能有的童鞋会说,这样配置可能对以后的修改不方便,无法达到只修改配置文件就切换某些环境。其实不是,零配置文件只是修改了类定义的配置,并没有修改之前配置文件的灵活性。我想无论谁也不会在之前的web.xml中去修改某个servlet的配置吧。况且这些所谓的配置文件灵活性,只是针对某个值,我们可以写在我们的properties文件里面,而且Spring对这类配置文件有很好的支持,而且使用很方便,有兴趣的童鞋可以去search一下。所以请打消这个配置不灵活的念头)。

     首先我们看一下项目结构

             

    项目采用maven管理,入门的同学应该都知道maven的优点,可以学习一下.

    下面看一下核心的配置java类

     1 package cn.edu.lhs.config;
     2 import org.springframework.context.annotation.Bean;
     3 import org.springframework.context.annotation.ComponentScan;
     4 import org.springframework.context.annotation.Configuration;
     5 import org.springframework.web.servlet.config.annotation.EnableWebMvc;
     6 import org.springframework.web.servlet.view.JstlView;
     7 import org.springframework.web.servlet.view.UrlBasedViewResolver;
     8 
     9 @Configuration
    10 @ComponentScan("cn.edu.lhs")
    11 @EnableWebMvc
    12 public class webConfig {
    13     /**
    14      * jsp视图解析器
    15     */
    16     @Bean
    17     public UrlBasedViewResolver setupviewResolver(){
    18         UrlBasedViewResolver resilver=new UrlBasedViewResolver();
    19          resilver.setPrefix("WEB-INF/views/");
    20          resilver.setSuffix(".jsp");
    21          resilver.setViewClass(JstlView.class);
    22          return resilver;
    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)
    注册要处理的一个或多个注释类。

    请注意,AbstractApplicationContext.refresh()为了使上下文完全处理新类必须调用它们。

    指定者:
    register 在界面 AnnotationConfigRegistry
    参数:
    annotatedClasses- 一个或多个注释类,例如@Configuration
    也可以看看:
    scan(String...) loadBeanDefinitions(DefaultListableBeanFactory)AbstractRefreshableConfigApplicationContext.setConfigLocation(String) AbstractApplicationContext.refresh()

    注册配置类

    现在就可以删除web.xml里的东西了

    项目代码:https://github.com/tsxylhs/spring-mvc

  • 相关阅读:
    dotnet Framework 源代码 类库的意思
    dotnet Framework 源代码 类库的意思
    dotnet Framework 源代码 · Ink
    dotnet Framework 源代码 · Ink
    dotnet core 用值初始化整个数组
    dotnet core 用值初始化整个数组
    dotnet core 隐藏控制台
    dotnet core 隐藏控制台
    PHP mt_rand() 函数
    PHP mt_getrandmax() 函数
  • 原文地址:https://www.cnblogs.com/tsxylhs/p/6748249.html
Copyright © 2011-2022 走看看