spring3 0 M4 新特性介紹

2021-08-30 04:59:15 字數 3222 閱讀 5142

2023年8月10日,spring發布了3.0的第四個里程碑版本,這是繼5月6日m3之後的又一次比較大的更新。從發布時間來看,spring在新版本的發布方面的確是非常謹慎,正式版的發布估計要等到今年晚些時候了。廢話少說,下面開始看看m4當中有哪些新的東東。(注:文中的大部分**來自於spring-framework-reference)。

spring整體架構:

其主要新功能有:

* spring表示式語言(spel)

* rest支援

* springmvc annotation 的增強

* 嵌入式資料庫支援

* 等等

[b]一、模組組織方式的改變 [/b]

此次的發行包中未包含此前版本中的spring.jar,在以後也不會提供該jar,spring也支援使用者「按需所取」。這也意味著spring已經全面支援osgi了。

各發行包的大致描述如下:

org.springframework.asm-3.0.0.m4.jar: 提供對asm(乙個位元組碼框架)的簡單封裝

org.springframework.expression-3.0.0.m4.jar: spring表示式語言

org.springframework.test-3.0.0.m4.jar: spring提供的乙個測試框架

org.springframework.jdbc-3.0.0.m4.jar: 對jdbc的簡單封裝

org.springframework.orm-3.0.0.m4.jar: 整合第三方的orm框架,如hibernate,ibatis,jdo,以及spring的jpa實現

org.springframework.transaction-3.0.0.m4.jar: 為jdbc、hibernate、jdo、jpa等提供的一致的宣告式和程式設計式事務管理

org.springframework.web.servlet-3.0.0.m4.jar: springmvc

org.springframework.jms-3.0.0.m4.jar: 為簡化jms api的使用而作的簡單封裝

org.springframework.beans-3.0.0.m4.jar: springioc的基礎實現

org.springframework.core-3.0.0.m4.jar: 提供的基礎核心功能

org.springframework.context-3.0.0.m4.jar: 提供在基礎ioc功能上的擴充套件服務,此外還提供許多企業級服務的支援,如郵件服務、任務排程、jndi定位、ejb整合、遠端訪問、快取以及各種檢視層框架的封裝等

org.springframework.aop-3.0.0.m4.jar: spring的aop實現

org.springframework.aspects-3.0.0.m4.jar: 提供對aspectj框架的整合

[b]二、spring表示式語言(spel)介紹[/b]

spel提供與ognl、mvel類似的功能,它可以用在配置檔案中,也可以在程式中單獨使用,其支援的功能有:字面量表示式、布林型和關係式操作、正規表示式、類表示式、操作集合、關係操作符、方法呼叫、變數操作等。

一些例項:

expressionparser parser = new spelexpressionparser();

expression exp = parser.parseexpression("'hello world'");

string message = (string) exp.getvalue();

message的值為 hello world

expressionparser parser = new spelexpressionparser();

expression exp = parser.parseexpression("'hello world'.concat('!')");

string message = (string) exp.getvalue();

message的值為 hello world!

還可以這樣:

expression exp = parser.parseexpression("'hello world'.bytes");

byte bytes = (byte) exp.getvalue();

expression exp = parser.parseexpression("new string('hello world').touppercase()");

string message = exp.getvalue(string.class);

boolean truevalue = parser.parseexpression("2 == 2").getvalue(boolean.class);

int three = parser.parseexpression("7 % 4").getvalue(integer.class); // 3

用於方法呼叫:

expressionparser parser = new spelexpressionparser();

standardevaluationcontext context = new standardevaluationcontext();

context.registerfunction("reversestring",

stringutils.class.getdeclaredmethod("reversestring",

new class ));

string helloworldreversed =

parser.parseexpression("#reversestring('hello')").getvalue(context, string.class);

在配置檔案中的使用:

[b]三、springmvc的增強:[/b]

一些例項:

匹配請求為 /owners/fred

匹配請求為: /owners/42/pets/21

webpack4新特性介紹

當下最流行的模組打包器 webpack 於2018年2月25日正式發布v4.0.0版本,代號legato。本次大版本更新帶來了很多新特性更新和改善,這將會讓webpack的配置更加簡單。本文,博主將會全面介紹webpack4的新特性及實踐。在發布日誌裡的big changes板塊,官方宣布不在支援n...

C 3 0新特性之擴充套件方法介紹

擴充套件基本型別 namespace testextensionmethods 測試擴充套件方法類 class program demo 2 擴充套件自定義型別,同時展示了擴充套件方法帶引數情況,以及方法過載 namespace testextendmethod public string desc...

C 3 0新特性之擴充套件方法介紹

c 3.0擴充套件方法是給現有型別新增乙個方法。現在型別即可是基本資料型別 如int,string等 也可以是自己定義的類。以下是引用片段 demo 1 擴充套件基本型別 namespace testextensionmethods 測試擴充套件方法類 class program demo 2 擴充...