盤點springmvc的經常使用接口

盤點springmvc的經常使用接口###

springmvc是現在很是流行的web開發框架之一。我我的很是喜歡它約定優於配置的理念。它暴露出很是多的接口,可讓用戶自定義本身的實現,從而能夠知足你們的各類各樣的需求。java

而springmvc也不單單是一個「插板」。它也提供了很是多經常使用的接口實現,通常地,使用它自帶的實現類也便可知足大部分的需求了。git

看了周邊好多開發者使用springmvc,真的讓我很是啼笑皆非。你們都把springmvc這麼神奇的框架,當作servlet來使用,依然是github

public void demo(HttpServletRequest request, HttpServletResponse response) {
		String name = request.getParameter("name");
  		if (StringUtils.hasText(name)) {
			try {
				InputStream is = request.getInputStream();
				// do something

				response.getWriter().write("content");
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

有些人會說,這樣寫也沒什麼不對啊,業務照樣能夠正常跑啊。web

這就涉及到代碼侵入性的問題了,request、response這些對象都來自於web容器,使用這些對象牢牢和容器耦合在了一塊兒,不便於單元測試。還有mvc的controller層,原本應該處理業務的邏輯轉發工做,而不是這些數據獲取、驗證、數據輸出等等繁瑣的工做。並且重點是使用request、response對象來處理數據很是之麻煩,代碼也不容易重複使用,形成代碼冗餘,使用這種代碼的,每每controller方法冗長笨重,不易於閱讀和維護。spring

說到底,我是一個追求高雅代碼的人,絕對不能容忍這樣爛大街的代碼。springmvc已經提供給咱們很是多好用的接口,咱們能夠利用接口,避免直接操做request、response。mvc

本系列文章就來盤點一下springmvc中經常使用的一些接口:框架

每一個接口都給出了幾個使用示例,爲了簡單易懂,功能都不是很完整。dom

示例使用spring-boot 和 lombokide

spring-boot配置:spring-boot

package com.demo;

import org.springframework.boot.SpringApplication;

public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(WebMvcConfiguration.class, args);
	}

}

springmvc配置類:

package com.demo;

import java.util.List;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import com.demo.mvc.component.PersonReturnValueHandler;

@SpringBootApplication
public class WebMvcConfiguration extends WebMvcConfigurationSupport {

}

實體類:

package com.demo.domain;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Person {

	private String firstName;

	private String lastName;

	@Override
	public String toString() {
		return firstName + " " + lastName;
	}
}

(其它文章再也不贅述環境配置)

關於lombok

示例源碼:

https://github.com/developframework/springmvc-demo

本人才疏學淺,不免會有錯誤,請springmvc的大神不要見笑。寫此係列盤點文章,也是對本身多年學習java和spring框架的總結。

java技術交流QQ羣:247276498

相關文章
相關標籤/搜索