Spring MVC Setting up - Tuong-Nguyen/Spring GitHub Wiki

Introduction

This wiki covers the following:

  • Development environment
  • Create a Spring MVC project
  • Setup a simplest Spring MVC configuration to be able to run the controller. The configuration will be set up by java code, not xml

Setup

Development environment

Create Spring MVC project

Configure the Tomcat server

  • Open Settings by pressing Ctrl+Alt+S or File | Settings
  • On Application Servers click and choose Tomcat Server
  • Select Tomcat Home by browsing to extract Tomcat Server folder (ex: C:\apache-tomcat-7.0.77)
  • Click OK

Configure the SDK

  • Press Ctrl+Shift+Alt+S or choose File | Project Structure on the main menu.
  • In the Project Structure Dialog, choose SDK's under the Platform Settings.
  • Click and choose JDK.
  • In JDK home path, browse to Jdk install folder (ex: C:\Program Files\Java\jdk1.8.0_121)
  • Click OK

Spring MVC configuration

Remove current config

Clear all config in /web/WEB-INF/web.xml file

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
<!--Clear all content here-->
</web-app>

Add Servlet library from Tomcat

  • Press Ctrl+Shift+Alt+S or choose File | Project Structure on the main menu.
  • In the Project Structure Dialog, choose Modules's under the Project Settings.
  • Open tab Dependencies, click and choose Libraries
  • Select Tomcat 7.0.77 under Application Server Libraries

Configure with Java classes

  • All config classes are placed on /src/spitter/config folder (splitter is application name), it means spitter.config package

Configuring DispatcherServlet

Create SpittrWebAppInitializer class

public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class<?>[] { RootConfig.class };
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class<?>[] { WebConfig.class };
    }

    @Override
    protected String[] getServletMappings() {
        return new String[] { "/" };
    }
}

Enable Spring MVC

  • Create WebConfig class
@Configuration
@EnableWebMvc
@ComponentScan("spitter.web")
public class WebConfig extends WebMvcConfigurerAdapter {
    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver resolver =
                new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        resolver.setExposeContextBeansAsAttributes(true);
        return resolver;
    }

    @Override
    public void configureDefaultServletHandling(
            DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
}
  • Simple RootConfig class
@Configuration
@ComponentScan(basePackages={"spitter"},
        excludeFilters={
                @ComponentScan.Filter(type= FilterType.ANNOTATION, value=EnableWebMvc.class)
        })
public class RootConfig {
}

Simple view and controller

Controller

Create HomeController class in the spitter.web.controller package (placed in /src/spitter/web/controllers)

@Controller
public class HomeController {
    @RequestMapping(value="/spitter/", method= RequestMethod.GET)
    public String home(){
        return "home";
    }
}

View

Create home.jsp in /web/WEB-INF/views/

<%@ taglib prefix="c" uri="http://www.springframework.org/tags" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Welcome to Spitter</title>
</head>
<body>
<h1>Welcome to Spittr</h1>
<a href="<c:url value="/spittles" />">Spittles</a> |
<a href="<c:url value="/spitter/register" />">Register</a>
</body>
</html>

Configure the Maven Proxy

  • Open Settings by pressing Ctrl+Alt+S or File | Settings
  • On Settings choose Build, Execution, Development -> Build Tools -> Maven
  • In Maven look for ** User setting file:** to get maven setting file locaion (EX: "C:\Users\mypc.m2\setting.xml").
  • Open maven setting file "settings.xml"
  • Add proxy node config follow:
<proxies>
   <proxy>
     <id></id>
     <active>true</active>
     <protocol>http</protocol>
     <host>proxy.tma.com.vn</host>
     <port>8080</port>
     <username></username>
     <password></password>
     <nonProxyHosts>www.google.com|*.example.com</nonProxyHosts>
   </proxy>
</proxies>
⚠️ **GitHub.com Fallback** ⚠️