新增
01. 新增 MyBatis 插件,該插件會(huì)依賴 DBModule。
改進(jìn)
01. 整理出一個(gè) Provider 實(shí)現(xiàn)工具類包。
02. BindInfoBuilder 接口遷移位置。
新增
01. 新增 JFina 插件支持。HasorPlugin、HasorInterceptor、HasorHandler 三個(gè)插件。
02. AppContext 新增兩個(gè) justInject 方法用于對(duì)某個(gè)標(biāo)記了 Hasor 注解的對(duì)象執(zhí)行依賴注入。
03. SpringModule 插件類,增加 DefaultHasorBeanName 常量,表示當(dāng) Hasor 和 Spirng 集成時(shí)。如果 Spring 中的那么默認(rèn) Bean ID。
改進(jìn)
01. Spring sechma 升級(jí)到 2.5.1。factoryID 不再是強(qiáng)制輸入。如果沒(méi)有配置 factoryID 會(huì)采用 "net.hasor.core.AppContext" 為默認(rèn)名。
02. 簡(jiǎn)化 Spring 集成,取消與 Spring 的 Event 雙向打通機(jī)制,如果開(kāi)發(fā)者需要該功能可以自行基于 Spring 實(shí)現(xiàn)。
03. Hasor 在啟動(dòng)的時(shí)候可以從外面?zhèn)鬟f Map 來(lái)指定環(huán)境變量了。之前只能通過(guò) env.config 來(lái)指定環(huán)境變量。
04. 增加 WebHasor 類,繼承自 Hasor 類提供方便的 WebAppContext 初始化入口。
修復(fù)
01. Fix 因 ClassLoader 不同而導(dǎo)致的 shutdown 過(guò)程中可能的異常拋出。
02. Fix Spring集成時(shí),無(wú)法使用最簡(jiǎn)化 Hasor 配置的問(wèn)題。
新增
01. 新增 ClassAwareProvider、InfoAwareProvider 兩個(gè)工具類。
02. Hasor 新增一個(gè) autoAware 方法的重載。
03. 新增 Hasor 和 Junit 的整合,通過(guò) Junit 做 Hasor 單元測(cè)試更加方便了。
04. ApiBinder 接口新增 getBindInfo、findBindingRegister 兩組共計(jì)4個(gè)方法,現(xiàn)在 init 期間也可以查詢其他模塊注冊(cè)的 Bean 了。
05. BeanBuilder 接口增加 getBindInfo、findBindingRegister 兩組共計(jì)4個(gè)方法。其子類加以實(shí)現(xiàn)。
06. AppContext 的 getBindInfo、findBindingRegister 方法實(shí)現(xiàn)沉降到 BeanBuilder 實(shí)現(xiàn)類中。
改進(jìn)
01. 升級(jí)依賴 slf4j-api 到 1.7.21 版本。
02. 刪除 ContextEvent_Initialized 事件,該事件等同于 Module 的 loadModule。
03. ContextShutdownListener、ContextStartListener兩個(gè)內(nèi)部接口提升為 Hasor Api接口。
04. findModules 過(guò)程提升到 doInitialized 之前。
05. 改進(jìn) BeanContainer 使其可以實(shí)時(shí)檢測(cè) ApiBinder 使用期間出現(xiàn)的 id 沖突等問(wèn)題。而不是等待 init 后期最統(tǒng)一檢測(cè)。
新增
01. restful插件增加,json; 攔截。
02. WebEnvironment、WebAppContext可以被依賴注入了。
03. 所有接口類型參數(shù)傳入,都走 AppContext 獲取。
04. upload包變更。
05. 新增 WebAppContext.HTTP_BEFORE_REQUEST 和 WebAppContext.HTTP_AFTER_RESPONSE 事件。
06. 新增了 ScopeManager 接口用于優(yōu)化 Scope 的注冊(cè)。
改進(jìn)
01. 改進(jìn) RenderData 接口使其更加人性化一點(diǎn)。
02. RenderData 的數(shù)據(jù)不在保存在自己獨(dú)立的 map 中而是共同 Request Attr。
03. @ValidBy 注解支持配置多個(gè)表單驗(yàn)證器。
修復(fù)
01. fix restful插件,action方法中無(wú)法傳入 response 的問(wèn)題。
新增
01. BindInfo 新增 setMetaData 方法以設(shè)置元信息。
02. BindInfo 新增 removeMetaData 刪除元數(shù)據(jù)的方法。
03. BizCommon 包增加 log 工具。
04. Spring 集成插件,新增支持將 Spring 容器中的 屬性配置文件導(dǎo)入 Hasor 作為環(huán)境變量。
05. @InjectSettings 注解支持通過(guò) "${xxx}" 形式解析并注入環(huán)境變量了(至此注入環(huán)境變量不再需要通過(guò) hasor 配置文件中轉(zhuǎn))
改進(jìn)
01. JSON 包簡(jiǎn)化了對(duì) Log 的輸出處理,減少了 5 個(gè)日志相關(guān)類。
02. Spring集成時(shí),支持通過(guò) Spring 方式來(lái)指定 Hasor 的配置文件。
03. Spring集成下,env.config 將會(huì)失效,環(huán)境配置屬性需要通過(guò) Spring導(dǎo)入。
04. AbstractEnvironment 類的 afterInitEnvironment 方法取消參數(shù)傳入。
05. AbstractEnvironment 類的 initEnvironment 方法增加boolean參數(shù)來(lái)決定是否啟用 env.config 配置文件。
06. LinkedCaseInsensitiveMap類提升為公共工具類,包位置發(fā)生變更。
修復(fù)
01. Fix Settings 接口的 add & remove & set 系方法,解決 settings key 出現(xiàn)大小寫(xiě)敏感問(wèn)題。
02. Fix AbstractEnvironment 的 refreshVariables 方法,忽略了對(duì)默認(rèn)值的替換,導(dǎo)致了bug出現(xiàn)。
03. Fix Environment 接口拼寫(xiě)錯(cuò)誤的方法名。remoteEnvVar -> removeEnvVar。
新增
01. 寬泛的Servlet版本支持 servlet 2.3 到 servlet 3.1。
02. 新增支持文件上傳功能支持。
03. 新增 @Async 注解,用于標(biāo)記 restful 請(qǐng)求是否以 異步 servlet 方式執(zhí)行。(需要容器支持 servlet 3 ,否則無(wú)效)
04. 如果容器支持 Servlet 3 那么 Hasor 會(huì)自動(dòng)啟用 Servlet 3.0 特性。
05. servlet3: 基于 web-fragment 技術(shù),您的 web.xml 中不需要任何配置或者您干脆刪除 web.xml。
06. servlet3: 支持通過(guò)@Async注解開(kāi)啟異步Servlet。
07. servlet3: 文件上傳共功能可以基于@Async轉(zhuǎn)為異步文件上傳(感謝:哎瑞!麓孩 提供的實(shí)現(xiàn)思路,這里是他的blog, http://ysj12.lofter.com/)。
改進(jìn)
01. otg.more包瘦身前的一些調(diào)整。
02. WebController類中方法訪問(wèn)修飾符調(diào)整。
新增
01. 新增 Htmlspace工具類:StringEscapeUtils、EntitiesUtils。工具來(lái)源為:apache-common
改進(jìn)
01. 改進(jìn)啟動(dòng)日志輸出。
02. WebController 增加一組 putData 方法用于輸出到渲染模版中。
03. JdbcOperations接口可以通過(guò)依賴注入被注入到 Service 中。
05. TransactionTemplateManager 代碼優(yōu)化,修復(fù)潛在的 npe 異常情況。
06. ValidErrors 接口繼承自 RenderData 獲取參數(shù)更加方便。
07. WebController 類重度優(yōu)化,刪除了一些重復(fù)的方法,增添表單驗(yàn)證相關(guān)的方法。
新增
01. Restful 框架整合 Validation 插件增加請(qǐng)求參數(shù) @Valid 驗(yàn)證功能。
02. 注解 @Valid 支持場(chǎng)景化驗(yàn)證。
改進(jìn)
01. env.config 加載環(huán)境變量遇到名稱沖突時(shí)的,Bug。
02. DBModule 類,在聲明 Aop 類匹配的時(shí)候從任意類,改為需要標(biāo)記 @Transactional 注解的類。
改進(jìn)
01. env.config 功能的優(yōu)化。
新增
01. 新增 DecSpaceMap 可以將多個(gè)Map合并成一個(gè)Map對(duì)象給予操作,每個(gè)子map可以通過(guò)一個(gè)空間字符串進(jìn)行標(biāo)識(shí)。
02. AbstractSettings 類增加 resetValues 方法,可以通過(guò) UpdateValue 接口更新載入的配置文件數(shù)據(jù),一個(gè)典型的應(yīng)用場(chǎng)景是模版化配置文件。
03. 支持配置文件模版化,通過(guò)模版化的配置文件??梢栽诓恍薷牟渴鸢那疤嵯?替換配置文件的值。使其可以方便的適用于各種環(huán)境,例如:日常、預(yù)發(fā)、線上、隔離。
04. 新增 @InjectSettings 注解,支持配置文件數(shù)據(jù)注入。
05. Restful、Template、mime 三個(gè)小插件整合到一起,提升為 webmvc 框架,編程接口依然以 Restful 為標(biāo)準(zhǔn)。
06. Render渲染器,支持多種,并通過(guò)viewType可以動(dòng)態(tài)指定。
07. 依賴注入支持 WebAppContext、WebEnvironment 兩個(gè)接口的注入。
改進(jìn)
01. 配置文件加載在原有xml格式下新增 "屬性類型" 文件的加載支持,屬性文件默認(rèn)采用UTF-8編碼方式讀取。
02. Settings 接口的兩個(gè) findClass 方法移動(dòng)到 Environment 接口中 Settings的職責(zé)更佳明確,只負(fù)責(zé)配置文件相關(guān)的操作。
03. 刪除 AbstractMergeSettings 不在需要該類承擔(dān)數(shù)據(jù)的職責(zé),Settings的數(shù)據(jù)承載交給 DecSpaceMap。
04. Settings 小范圍重構(gòu),內(nèi)部的數(shù)據(jù)管理更佳清晰。
05. StartupModule插件的類裝載,使用 Environment 接口提供的。
07. Resource 插件被拆分成兩個(gè)部分。web相關(guān)的部分降級(jí)到demo中,資源加載部分沉淀到 org.more 工具包。
08. Encoding 插件被降級(jí)成為 demo 的一部分。
新增
01. 新增@ImplBy注解,用于方便接口注入。
改進(jìn)
01. 事件機(jī)制,callBack.handleComplete的調(diào)用實(shí)際改為,事件處理結(jié)束。
02. 一些方法的注釋進(jìn)行更正。
03. 新增datachain工具,可以脫離Hasor使用:數(shù)據(jù)對(duì)象轉(zhuǎn)換工具,提供 A 類型對(duì)象到 B 類型對(duì)象轉(zhuǎn)換功能。并使開(kāi)發(fā)者在轉(zhuǎn)換過(guò)程中可以實(shí)現(xiàn)更加高級(jí)別的控制協(xié)調(diào)能力。
04. Result增加一系列Message相關(guān)方法。
05. 插件智能載入。所有內(nèi)置插件,在初始化的時(shí)都做了配置檢查,只有用到了它們才會(huì)被加載到框架中。否則內(nèi)置插件在初始化期間就會(huì)放棄加載自己。
修復(fù)
01. Fix :AbstractMergeSettings在刷新加載配置文件的時(shí),因?yàn)閙ap無(wú)序而導(dǎo)致。主配置文件被率先放入最終結(jié)果集中,正常的邏輯應(yīng)該是最后放入。
新增
01. 新增“.hasor.default.asEagerSingleton”配置用來(lái)配置默認(rèn)情況下,類型是以單例模式運(yùn)行還是以原型方式運(yùn)行。(默認(rèn)單例模式)
02. ApiBinder接口新增“asEagerPrototype”方法用來(lái)強(qiáng)制以原型方式注冊(cè)。到目前為止可以選擇的方式有:“asEagerSingleton”、“asEagerPrototype”
03. 新增注解配置:@Singleton、@Prototype
04. 單例類如果配置了@Init注解,則在注冊(cè)到Hasor容器時(shí),會(huì)在容器啟動(dòng)的第一時(shí)間自動(dòng)調(diào)用init方法以完成對(duì)象初始化功能。
- 這個(gè)特性類似Spring配置文件中 init屬性的功能。
05. Hasor啟動(dòng)類新增傳入File參數(shù)方式指定配置文件。
改進(jìn)
01. 容器在啟動(dòng)時(shí)增加EventContext類型的綁定,開(kāi)發(fā)的時(shí)候可以直接通過(guò)依賴注入或者appContext.getInstance(EventContext.class)方式的到。
02. Event插件在接收到事件響應(yīng)時(shí),需要一直等待AppContext對(duì)象被注入進(jìn)來(lái)。原有邏輯是等待10秒注入AppContext對(duì)象。
03. 優(yōu)化EventModule啟動(dòng)時(shí)間。
04. 事件處理線程命名。
05. 改進(jìn)環(huán)境變量處理方式,凡是Hasor中定義的環(huán)境變量其優(yōu)先級(jí)都高于系統(tǒng)環(huán)境變量。這意味著,定義相同名稱的環(huán)境變量Hasor中配置會(huì)覆蓋系統(tǒng)的配置。
新增 01.增加Event事件注冊(cè)插件,簡(jiǎn)化事件的注冊(cè)機(jī)制。 02.Settings接口增加 addSetting方法和clearSetting方法用來(lái)增加和刪除配置項(xiàng)。 03.新增Spring插件,完美與Spring整合。同時(shí)支持與Spring的雙向事件通知。
- 支持Hasor的Bean通過(guò)Spring獲取、支持SpringBean通過(guò)Hasor獲取。
- 支持Hasor的事件,通過(guò)Spring方式接收、支持Spring的事件,通過(guò)Hasor方式接收。
改進(jìn) 01.改進(jìn)事物管理器的攔截器注冊(cè)機(jī)制,從攔截所有類改為只攔截標(biāo)記了Transactional注解的方法。 02.ResourceModule插件的實(shí)現(xiàn)機(jī)制從 Servlet 改為Filter,當(dāng)資源無(wú)法通過(guò)插件獲取時(shí)候,轉(zhuǎn)交給servlet容器。原有方案是直接拋除404。 03.RestfulModule插件的實(shí)現(xiàn)機(jī)制從 Servlet 改為Filter,可以通過(guò)WebController類中renderTo方法指定具體要渲染的模版,模版渲染更加靈活。 04.RestfulModule插件的實(shí)現(xiàn)機(jī)制從 Servlet 改為Filter,支持ContextMap中setViewName方法來(lái)指定渲染的模版。 05.環(huán)境變量,WOR_HOME 從 USER.DIR 更換到 USER.HOME。原因是,USER.DIR 工作目錄獲取并不是想象的那樣始終是在程序位置。 06.SaxXmlParser類優(yōu)化,在處理配置項(xiàng)沖突時(shí),升級(jí)為保留全部配置。原有邏輯為合并覆蓋。
07.Event接口在傳入?yún)?shù)時(shí)不再使用“Object[]”方式,改為范型T,這樣做簡(jiǎn)化了開(kāi)發(fā)者在使用事件機(jī)制時(shí)各種類型轉(zhuǎn)換的麻煩,從而減少錯(cuò)誤的概率。
新增
01. 增加一個(gè)WebDemo示例工程。
02. 新增一個(gè)插件,簡(jiǎn)化“modules.module”的配置。
03. 新增restful插件,做為hasor內(nèi)置Web開(kāi)發(fā)插件。
04. 添加templates插件,該插件將提供模版渲染支持。
改進(jìn)
01. 修改ShutdownHook鉤子。在start時(shí)注冊(cè)它、當(dāng)shutdown時(shí)解除注冊(cè)。
02. 增加Environment接口的包裝器。
03. 為@Inject注解,增加Type枚舉。通過(guò)枚舉可以標(biāo)識(shí)注入是:ByID 還是 ByName。
04. 剔除JSP自定義函數(shù)功能。
05. resource插件在,選擇緩存目錄時(shí),如果連續(xù)失敗99999次。將會(huì)報(bào)一個(gè)錯(cuò)誤,然后終止插件的啟動(dòng)。
06. templates插件與resource插件,整合了mimetype插件功能。
07. Valid插件增加@ValidDefine注解方式定義驗(yàn)證。
修復(fù)
01. Fix “Shutdown in progress”異常。
02. Fix Web模式下啟動(dòng)空指針異常。
03. Fix @Inject 注解攜帶value參數(shù)時(shí)失效的問(wèn)題。
04. Fix JdbcTemplate使用Result->Object映射時(shí),最后一個(gè)參數(shù)應(yīng)設(shè)值丟失的問(wèn)題。
新增
01. 新增 @Inject、@Init 兩個(gè)注解以支持注解方式的自動(dòng)注入。
02. 添加 ShutdownHook鉤子,當(dāng)外部終止jvm的時(shí)候,Hasor可以引發(fā)shutdown過(guò)程。
03. 事務(wù)管理增加“TransactionTemplate”接口。
04. 啟動(dòng)過(guò)程中增加了一些 log 的輸出。
05. 將jetty的JSON解析器代碼添加到Hasor工具代碼中,位于包“org.more.json”。
06. 新增WebApiBinderWrap類。
07. ASM包升級(jí)為5.0版本,原有的ASM組建在解析jdk1.8的類文件時(shí)會(huì)有異常。
改進(jìn)
01. StandardEnvironment構(gòu)造方法改進(jìn)。
02. StartModule接口更名為L(zhǎng)ifeModule,并新增了onStop方法。至此通過(guò)LifeModule接口可以得到模塊整個(gè)生命周期。
03. AbstractEnvironment類的initEnvironment方法增加Settings類型參數(shù)。createSettings方法不再屬于AbstractEnvironment的抽象方法。
04. StandardEnvironment類增加Settings類型參數(shù)的構(gòu)造方法。
05. MimeType接口增加getContent()方法。
06. 原有模塊在實(shí)現(xiàn) StartModule 接口時(shí),如果是通過(guò)啟動(dòng)參數(shù)或者配置方式的模塊,器onStart調(diào)用時(shí)間點(diǎn)在“ContextEvent_Started”事件之后。
- 現(xiàn)改為引發(fā)“ContextEvent_Started”事件時(shí)。
07. MVC的插件分離成獨(dú)立插件。
08. db包“datasource”模塊重構(gòu)、簡(jiǎn)化邏輯,它不再提供數(shù)據(jù)庫(kù)連接和當(dāng)前線程的映射綁定。
09. 事務(wù)管理器模塊大量?jī)?yōu)化,同時(shí)“Manager”更名為“TranManager”。可以更好的讓人理解。
10. 事務(wù)管理器負(fù)責(zé)提供數(shù)據(jù)庫(kù)連接與當(dāng)前線程的綁定關(guān)系。
11. 刪除ResultModule類和其相關(guān)的功能,該功能不再是核心功能的一部分。
12. MVC框架被遷出 Hasor框架成為一個(gè)獨(dú)立的Web開(kāi)發(fā)框架名為“haweb”。
修復(fù)
01. 大量?jī)?yōu)化。。
02. Fix,classcode模塊對(duì)long、float、double基本類型錯(cuò)誤處理的問(wèn)題。
03. AbstractClassConfig增加對(duì) java javax 包類的排除,凡是這兩個(gè)包的類都不進(jìn)行aop。
更多建議: