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 擴充...