盘点springmvc的常用接口
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
盤點(diǎn)springmvc的常用接口###
springmvc是如今非常流行的web開發(fā)框架之一。我個人非常喜歡它約定優(yōu)于配置的理念。它暴露出非常多的接口,可以讓用戶自定義自己的實(shí)現(xiàn),從而可以滿足大家的各種各樣的需求。
而springmvc也不僅僅是一個“插板”。它也提供了非常多常用的接口實(shí)現(xiàn),一般地,使用它自帶的實(shí)現(xiàn)類也即可滿足大部分的需求了。
看了周邊好多開發(fā)者使用springmvc,真的讓我非常哭笑不得。大家都把springmvc這么神奇的框架,當(dāng)做servlet來使用,依然是
public void demo(HttpServletRequest request, HttpServletResponse response) {String name = request.getParameter("name");if (StringUtils.hasText(name)) {try {InputStream is = request.getInputStream();// do somethingresponse.getWriter().write("content");} catch (IOException e) {e.printStackTrace();}}}有些人會說,這樣寫也沒什么不對啊,業(yè)務(wù)照樣可以正常跑啊。
這就涉及到代碼侵入性的問題了,request、response這些對象都來自于web容器,使用這些對象緊緊和容器耦合在了一起,不便于單元測試。還有mvc的controller層,本來應(yīng)該處理業(yè)務(wù)的邏輯轉(zhuǎn)發(fā)工作,而不是這些數(shù)據(jù)獲取、驗證、數(shù)據(jù)輸出等等繁瑣的工作。而且重點(diǎn)是使用request、response對象來處理數(shù)據(jù)非常之麻煩,代碼也不容易重復(fù)使用,造成代碼冗余,使用這種代碼的,往往controller方法冗長笨重,不易于閱讀和維護(hù)。
說到底,我是一個追求高雅代碼的人,絕對不能容忍這樣爛大街的代碼。springmvc已經(jīng)提供給我們非常多好用的接口,我們可以利用接口,避免直接操作request、response。
本系列文章就來盤點(diǎn)一下springmvc中常用的一些接口:
- 1.盤點(diǎn)springmvc的常用接口之HandlerMethodArgumentResolver
- 2.盤點(diǎn)springmvc的常用接口之HandlerMethodReturnValueHandler
- 3.盤點(diǎn)springmvc的常用接口之HttpMessageConverter
- 4.盤點(diǎn)springmvc的常用接口之PropertyEditor
- 5.盤點(diǎn)springmvc的常用接口之Converter(上篇)
- 6.盤點(diǎn)springmvc的常用接口之Converter(中篇)
- 7.盤點(diǎn)springmvc的常用接口之Converter(下篇)
- 8.盤點(diǎn)springmvc的常用接口之HandlerInterceptor
- (未完結(jié))
每個接口都給出了幾個使用示例,為了簡單易懂,功能都不是很完整。
示例使用spring-boot 和 lombok
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 {}實(shí)體類:
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;@Overridepublic String toString() {return firstName + " " + lastName;} }(其它文章不再贅述環(huán)境配置)
關(guān)于lombok
示例源碼:
https://github.com/developframework/springmvc-demo
本人才疏學(xué)淺,難免會有錯誤,請springmvc的大神不要見笑。寫此系列盤點(diǎn)文章,也是對自己多年學(xué)習(xí)java和spring框架的總結(jié)。
java技術(shù)交流QQ群:247276498
轉(zhuǎn)載于:https://my.oschina.net/sugarZone/blog/704570
總結(jié)
以上是生活随笔為你收集整理的盘点springmvc的常用接口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring MVC入门示例
- 下一篇: C++对象模型详解(上)