Spring web mvc環境構築

7932 ワード

この2,3日springを勉強していますが、まあ、仕方がないですね.成都は基本的にjavaなので、これを勉強するのが好きではありません.多くの道を学ぶ.まだ生活しなければなりません.
はい、本題に戻ります.ここでspring mvcを構築する過程を記録します.実は過程はあまり難しくありません.主に私が使っているxml構成を始め、後でjava構成に変更しました(今はjavaコード構成に傾いているようです).いつtomcatの構成をなくしたのか分かりません.それからcontrollerが見つからず、何日も調べさせました.
構築する前に、mavenをインストールして正しく構成する必要があります.私もここではxml構成、javaの構成を使用していません.
スプリングmvcプロジェクトを作成すると、基本的なmavenスケルトンでした.選んだwebappこれ.
二構成pom.xml、いくつかの依存性を増加

  UTF-8
  1.7
  1.7
  4.3.18.RELEASE
  5.2.0.RELEASE
  5.1.21
  3.0.1
  2.2.1-b03
  1.2



  
    junit
    junit
    4.11
    test
  

    
        javax.servlet.jsp.jstl
        jstl-api
        1.2
    

   
    javax.servlet
    javax.servlet-api
    ${servlet.version}
  

  
    javax.servlet.jsp
    jsp-api
    ${jsp.version}
    provided
  
  
    javax.servlet
    jstl
    ${jstl.version}
  

  
  
    org.springframework
    spring-core
    ${spring.version}
  

  
    org.springframework
    spring-beans
    ${spring.version}
  

  
  
    org.springframework
    spring-test
    ${spring.version}
    test
  


  
  
    org.springframework
    spring-context
    ${spring.version}
  

  
    org.springframework
    spring-web
    ${spring.version}
  
  
    org.springframework
    spring-webmvc
    ${spring.version}
  



    org.thymeleaf
    thymeleaf-spring4
    3.0.11.RELEASE


  
  
    org.springframework
    spring-jdbc
    ${spring.jdbc.version}
  
  
    mysql
    mysql-connector-java
    ${mysql.connector.version}
  


三プロジェクトディレクトリ構造を作成し、以下の図
DispatcherServiceletの構成
初期化、A b s t r a c t A n o t i o n t i o n C o n f i g DispatcherServertInitializerというクラスを継承すると、springは自動的に検出されます.
package com.smartrui.common.config;

import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

import javax.servlet.Filter;

public class Initializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    private static final String CHARACTER_ENCODING = "UTF-8";

    private static final String DISPATCHER_SERVLET_MAPPING = "/";

    @Override
    protected Class>[] getRootConfigClasses() {
        return new Class[]{WebAppConfig.class};
    }

    @Override
    protected Class>[] getServletConfigClasses() {
        return null;
    }

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

    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
        characterEncodingFilter.setEncoding(CHARACTER_ENCODING);
        characterEncodingFilter.setForceEncoding(true);
        return new Filter[] { characterEncodingFilter };
    }
}

プロファイルを追加するには、いくつかの注記を追加する必要があります.@EnableWebMvc,@Configuration,@ComponentScan、ここでspringを注入する必要があるパッケージを追加します.
package com.smartrui.common.config;


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.*;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = {"com.smartrui.dao","com.smartrui.service","com.smartrui.controller"})
public class WebAppConfig extends WebMvcConfigurerAdapter {
    
    @Override
    public void addResourceHandlers( ResourceHandlerRegistry registry) {
        super.addResourceHandlers(registry);
        registry.addResourceHandler("/img/**").addResourceLocations("/img/");
      
    }

    
    @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();
    }


}

5つのコントロール入口を書きます
package com.smartrui.controller;


import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import java.util.ArrayList;
import java.util.List;

@Controller
@RequestMapping("/home")
public class HomeController {

    @RequestMapping("/hello")
    public String hello(Model model){
        List s = new ArrayList<>();
        s.add("1");
        s.add("2");
        model.addAttribute("mystr", s);
        return "hello"; //      web-info/views/hello.jsp
    }

    @RequestMapping(value="/user/{id}",method= RequestMethod.GET)
    public String show(@PathVariable("id") long id,Model model) {
        //        /home/user/33
        model.addAttribute("id",id);
        return "hello";
    }

    @RequestMapping("/welcome")
    public String welcome(){

        return "welcome"; //      web-info/views/welcome.html
    }

}

六構成tomcat
ここのあのDeploy at the server startupここで注意して配置して、私がxml配置からjava配置に変え始めたとき、ここの配置はなくなりました.そしてcontrollerが見つからなかった.
構成が完了したら、ポイントで実行し、問題がなければブラウザで入力します.http://localhost:8080/home/hello 表示できるはずです.
ここでは基本的な環境構成にすぎず、データベースやテンプレートなどは構成されていません.これらの後はゆっくりと構成しましょう.