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