Spring web mvc環境構築
7932 ワード
この2,3日springを勉強していますが、まあ、仕方がないですね.成都は基本的にjavaなので、これを勉強するのが好きではありません.多くの道を学ぶ.まだ生活しなければなりません.
はい、本題に戻ります.ここでspring mvcを構築する過程を記録します.実は過程はあまり難しくありません.主に私が使っているxml構成を始め、後でjava構成に変更しました(今はjavaコード構成に傾いているようです).いつtomcatの構成をなくしたのか分かりません.それからcontrollerが見つからず、何日も調べさせました.
構築する前に、mavenをインストールして正しく構成する必要があります.私もここではxml構成、javaの構成を使用していません.
スプリングmvcプロジェクトを作成すると、基本的なmavenスケルトンでした.選んだwebappこれ.
二構成pom.xml、いくつかの依存性を増加
三プロジェクトディレクトリ構造を作成し、以下の図
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は自動的に検出されます.
プロファイルを追加するには、いくつかの注記を追加する必要があります.@EnableWebMvc,@Configuration,@ComponentScan、ここでspringを注入する必要があるパッケージを追加します.
5つのコントロール入口を書きます
六構成tomcat
ここのあのDeploy at the server startupここで注意して配置して、私がxml配置からjava配置に変え始めたとき、ここの配置はなくなりました.そしてcontrollerが見つからなかった.
構成が完了したら、ポイントで実行し、問題がなければブラウザで入力します.http://localhost:8080/home/hello 表示できるはずです.
ここでは基本的な環境構成にすぎず、データベースやテンプレートなどは構成されていません.これらの後はゆっくりと構成しましょう.
はい、本題に戻ります.ここで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 表示できるはずです.
ここでは基本的な環境構成にすぎず、データベースやテンプレートなどは構成されていません.これらの後はゆっくりと構成しましょう.