日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring4新特性——Web开发的增强

發布時間:2025/4/16 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring4新特性——Web开发的增强 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

Spring4新特性——泛型限定式依賴注入

Spring4新特性——核心容器的其他改進

Spring4新特性——Web開發的增強

Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC?

Spring4新特性——Groovy Bean定義DSL

Spring4新特性——更好的Java泛型操作API?

Spring4新特性——JSR310日期API的支持

Spring4新特性——注解、腳本、任務、MVC等其他特性改進?

?

從Spring4開始,Spring以Servlet3為進行開發,如果用Spring MVC 測試框架的話需要指定Servlet3兼容的jar包(因為其Mock的對象都是基于Servlet3的)。另外為了方便Rest開發,通過新的@RestController指定在控制器上,這樣就不需要在每個@RequestMapping方法上加?@ResponseBody了。而且添加了一個AsyncRestTemplate?,支持REST客戶端的異步無阻塞支持。

?

1、@RestController

@RestController public class UserController {private UserService userService;@Autowiredpublic UserController(UserService userService) {this.userService = userService;}@RequestMapping("/test")public User view() {User user = new User();user.setId(1L);user.setName("haha");return user;}@RequestMapping("/test2")public String view2() {return "{\"id\" : 1}";} }

?其實現就是在@@RestController中加入@ResponseBody:

@org.springframework.stereotype.Controller @org.springframework.web.bind.annotation.ResponseBody public @interface RestController { }

這樣當你開發Rest服務器端的時候,spring-mvc配置文件需要的代碼極少,可能就僅需如下一行:

<context:component-scan base-package="com.sishuok.spring4"/><mvc:annotation-driven/>

??

2、mvc:annotation-driven配置變化

統一風格;將?enableMatrixVariables改為enable-matrix-variables屬性;將ignoreDefaultModelOnRedirect改為ignore-default-model-on-redirect。

?

3、提供AsyncRestTemplate用于客戶端非阻塞異步支持。

3.1、服務器端

對于服務器端的springmvc開發可以參考https://github.com/zhangkaitao/servlet3-showcase中的chapter3-springmvc

@RestController public class UserController {private UserService userService;@Autowiredpublic UserController(UserService userService) {this.userService = userService;}@RequestMapping("/api")public Callable<User> api() {System.out.println("=====hello");return new Callable<User>() {@Overridepublic User call() throws Exception {Thread.sleep(10L * 1000); //暫停兩秒User user = new User();user.setId(1L);user.setName("haha");return user;}};} }

非常簡單,服務器端暫停10秒再返回結果(但是服務器也是非阻塞的)。具體參考我github上的代碼。

?

3.2、客戶端

public static void main(String[] args) {AsyncRestTemplate template = new AsyncRestTemplate();//調用完后立即返回(沒有阻塞)ListenableFuture<ResponseEntity<User>> future = template.getForEntity("http://localhost:9080/spring4/api", User.class);//設置異步回調future.addCallback(new ListenableFutureCallback<ResponseEntity<User>>() {@Overridepublic void onSuccess(ResponseEntity<User> result) {System.out.println("======client get result : " + result.getBody());}@Overridepublic void onFailure(Throwable t) {System.out.println("======client failure : " + t);}});System.out.println("==no wait");}

?此處使用Future來完成非阻塞,這樣的話我們也需要給它一個回調接口來拿結果; Future和Callable是一對,一個消費結果,一個產生結果。調用完模板后會立即返回,不會阻塞;有結果時會調用其回調。

?

AsyncRestTemplate默認使用SimpleClientHttpRequestFactory,即通過java.net.HttpURLConnection實現;另外我們也可以使用apache的http components;使用template.setAsyncRequestFactory(new HttpComponentsAsyncClientHttpRequestFactory());設置即可。

?

另外在開發時盡量不要自己注冊如:

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">

盡量使用

<mvc:annotation-driven/>

它設計的已經足夠好,使用子元素可以配置我們需要的配置。

??

且不要使用老版本的:

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">

否則可能得到如下異常:

寫道 Circular view path [login]: would dispatch back to the current handler URL [/spring4/login] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)

??

轉載于:https://my.oschina.net/qjx1208/blog/200805

總結

以上是生活随笔為你收集整理的Spring4新特性——Web开发的增强的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品国产精品国自产观看浪潮 | 日本精品入口免费视频 | 精品一区电影 | 自拍偷拍校园春色 | 国产精品九九热 | 69av视频在线 | 亚洲男人天堂2017 | 国产这里只有精品 | 丁香花完整视频在线观看 | 国模吧一区二区三区 | 欧美日韩午夜 | 美女国产网站 | 青青草伊人网 | 噼里啪啦免费观看 | 午夜在线观看一区 | 色欧美综合 | 亚洲精品综合 | 欧美激情一二三区 | 天天色天天射综合网 | 最新地址av | 国产福利合集 | 亚洲午夜精品在线观看 | 日本在线视频中文字幕 | 国产亚洲精品电影 | 91影院在线免费观看 | 日韩女优在线播放 | 免费观看视频在线观看 | 国模无码一区二区三区 | 日本高清不卡在线 | 超碰成人在线观看 | 成人免费福利视频 | 91成人免费在线观看 | 久久欧美| 91一区二区在线 | 国产福利在线视频观看 | 日韩精品一区二区亚洲av观看 | 免费中文字幕 | 少妇又紧又爽视频 | 国产欧美一区二区三区视频在线观看 | 欧美在线视频免费 | 精品人妻人人做人人爽 | 干爹你真棒插曲免费 | 欧美午夜精品久久久 | 亚洲精品91在线 | 狠狠操狠狠 | 天天操夜夜草 | 青草福利视频 | 国产日b视频 | 熟女高潮一区二区三区视频 | 亚洲爽爆av | 免费在线看黄视频 | 毛片av免费看 | 亚洲AV无码一区二区三区少妇 | 欧美福利在线 | 天天综合在线观看 | 淫语对白 | 精品久久在线观看 | 久久久中文网 | 亚洲欧美在线成人 | 丰满人妻老熟妇伦人精品 | 毛片a级片 | 午夜视频福利在线观看 | 偷偷久久 | 国产精品久久久久久久无码 | 爆操白虎 | 亚洲免费影院 | 国产传媒视频 | 不卡久久| 91精品人妻互换一区二区 | 一区二区三区久久 | aa丁香综合激情 | 欧美在线性 | 欧美黄色免费观看 | 国产经典久久久 | 成人xx视频 | 欧美日韩人妻精品一区二区三区 | 天天干女人 | 亚洲高清av| 日韩一区二区三区视频 | 日本在线观看www | 日韩麻豆| 国产乱国产乱老熟 | 青春草av | 永久免费视频网站 | 毛片无限看 | 大奶一区二区 | 国产一区二区毛片 | 欧美撒尿777hd撒尿 | 九九av| 国产又粗又黄又爽又硬的视频 | 超碰人人澡 | 国产精品88久久久久久妇女 | 天天干夜夜爱 | 男生女生羞羞网站 | 激情四射综合网 | 精品一二三四 | 成人免费性视频 | 亚洲一区二区日韩 | 久久亚洲一区 |