zoukankan      html  css  js  c++  java
  • 吴裕雄天生自然SPRING基于Java配置的Spring MVC应用

    使用web.xml和springmvc-servlet.xml配置文件进行Web配置和Spring MVC配置。但Spring Boot推荐使用Java配置的方式进行项目配置
    创建Spring MVC的Java配置
    
    在该配置类中使用@Configuration注解声明该类为Java配置类;使用@EnableWebMvc注解开启默认配置,如ViewResolver;使用@ComponentScan注解扫描注解的类;使用@Bean注解配置视图解析器;该类需要实现WebMvcConfigurer接口来配置Spring MVC。
    创建Web的Java配置
    
    创建Web的Java类WebConfig。该类需要实现WebApplicationInitializer接口替代web.xml文件的配置。实现该接口将会自动启动Servlet容器。在WebConfig类中需要使用AnnotationConfigWebApplicationContext注册Spring MVC的Java配置类SpringMVCConfig,并和当前ServletContext关联。最后,在该类中需要注册Spring MVC的DispatcherServlet。
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        没注册的用户,请<a href="index/register">注册</a><br>
        已注册的用户,去<a href="index/login">登录</a></body>
    </html>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        登录页面!
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        注册页面!
    </body>
    </html>
    package config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.EnableWebMvc;
    import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    import org.springframework.web.servlet.view.InternalResourceViewResolver;
    
    @Configuration
    @EnableWebMvc
    @ComponentScan("controller")
    public class SpringMVCConfig implements WebMvcConfigurer {
        /**
         * 配置视图解析器
         */
        @Bean
        public InternalResourceViewResolver getViewResolver() {
            InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
            viewResolver.setPrefix("/WEB-INF/jsp/");
            viewResolver.setSuffix(".jsp");
            return viewResolver;
        }
    
        /**
         * 配置静态资源
         */
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/html/**").addResourceLocations("/html/");
        }
    }
    package config;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRegistration.Dynamic;
    
    import org.springframework.web.WebApplicationInitializer;
    import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
    import org.springframework.web.servlet.DispatcherServlet;
    
    public class WebConfig implements WebApplicationInitializer {
        @Override
        public void onStartup(ServletContext arg0) throws ServletException {
            AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
            ctx.register(SpringMVCConfig.class);// 注册Spring MVC的Java配置类SpringMVCConfig
            ctx.setServletContext(arg0);// 和当前ServletContext关联
            /**
             * 注册Spring MVC的DispatcherServlet
             */
            Dynamic servlet = arg0.addServlet("dispatcher", new DispatcherServlet(ctx));
            servlet.addMapping("/");
            servlet.setLoadOnStartup(1);
        }
    }
    package controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    /**
     * “@Controller”表示IndexController的实例是一个控制器
     * 
     * @Controller相当于@Controller("indexController") 或@Controller(value =
     *                                              "indexController")
     */
    @Controller
    @RequestMapping("/index")
    public class IndexController {
        @RequestMapping("/login")
        public String login() {
            /**
             * login代表逻辑视图名称,需要根据Spring MVC配置 文件中internalResourceViewResolver的前缀和后缀找到对应的物理视图
             */
            return "login";
        }
    
        @RequestMapping("/register")
        public String register() {
            return "register";
        }
    }
  • 相关阅读:
    PC上图标显示异常 白色框框处理方案
    判断Javascript变量是否为空 undefined 或者null(附样例)
    MySQL双版本共存解决方案
    跨境电商进口业务的通关模式
    史上最完整跨境电商投资分析报告!
    Fastcgi_Finish_Request 提高页面响应速度
    浏览器工作原理
    thinkphp 命名规范
    git diff ^M的消除
    git简明教程
  • 原文地址:https://www.cnblogs.com/tszr/p/15312020.html
Copyright © 2011-2022 走看看