J2ee框架 bbossgroups 3.4 發布

fmms 13年前發布 | 23K 次閱讀 Java

bbossgroups-3.4 版本特性:

重點功能:

1.bbossgroups監控模塊,以便能夠監控框架所有配置信息:
ioc組件基本配置信息,所屬組件容器類型,所屬配置文件路徑,屬性注入配置,構建函數注入配置,聲明式事務配置,攔截器配置信息,mvc跳轉路徑映射配置信息
rmi服務配置信息,webservice服務配置信息,組件擴展屬性配置,全局參數信息配置
sql配置文件信息,sql語句配置信息,sql文件實時掃描信息;
連接池配置信息,連接池實時信息(高峰連接數,活動連接數,空閑連接數)

監控頁面的訪問地址:http://localhost:8080/bboss-mvc/monitor/console.htm

(可以參考文檔《bbossgroups mvc demo構建部署方法》部署bboss mvc 應用,然后訪問監控地址)

2.改進webservice服務發布模塊,使得服務發布與容器的無關性,兼容所有應用服務器

3.改進rpc框架,增加ClientProxyContext組件,客戶端可以通過服務接口生成服務的調用樁程序,客戶端不再需要服務組件的aop配置文件和實現類

4.去掉控制器方法文件上傳參數類型MultipartFile、MultipartFile[]必須和RequestParam注解一起使用的限制

5.改進序列化/反序列化功能,大幅提升性能,并將rpc框架中的序列化/反序化機制由xstream換成自帶的序列化控件

具體明細如下:

1.aop/ioc

1.1 增加webservice服務JaxWsProxyFactory組件,用來獲取webservice服務組件的客戶端調用代理組件
org.frameworkset.spi.remote.webservice.JaxWsProxyFactory
使用方法如下:

 org.frameworkset.web.ws.WSService wsservice = JaxWsProxyFactory.getWSClient("http://localhost:8080/bboss-mvc/cxfservices/mysfirstwsservicePort", org.frameworkset.web.ws.WSService.class);


1.2 改進遠程協議,客戶端直接通過ClientProxyContext類根據服務接口生成服務的調用樁程序,客戶端不再需要服務組件的aop配置文件和實現類
使用方法參考測試用例:

//獲取mvc容器中組件的遠程服務調用接口,mvc容器由服務端mvc框架自動初始化
        ClientInf mvcinf = ClientProxyContext.getWebMVCClientBean("(http::172.16.25.108:8080/bboss-mvc/http.rpc)" +"/client.proxy.demo?user=admin&password=123456",ClientInf.class);
        //獲取ApplicationContext類型容器中組件的遠程服務調用接口
        //ApplicationContext容器必須是以下方式創建
//      ApplicationContext context = ApplicationContext.getApplicationContext("org/frameworkset/web/ws/testwsmodule.xml");
        WSService WSService = ClientProxyContext.getSimpleClientBean("org/frameworkset/web/ws/testwsmodule.xml", "(http::172.16.25.108:8080/bboss-mvc/http.rpc)" +"/mysfirstwsservice?user=admin&password=123456", WSService.class);
        //獲取服務器端默認容器中組件的遠程服務調用接口
        //服務器端默認容器manager-provider.xml必須是以下方式創建
//      ApplicationContext context = ApplicationContext.getApplicationContext();
        //以下是傳統的遠程服務獲取方式,必須要求本地有相應的接口和組件實現以及配置文件,新的api已經消除了這種限制
//      context.getTBeanObject("(http::172.16.25.108:8080/bboss-mvc/http.rpc)" +
//              "/client.proxy.simpledemo?user=admin&password=123456",  ClientInf.class);
        ClientInf defaultinf = ClientProxyContext.getApplicationClientBean( "http::172.16.25.108:8080/bboss-mvc/http.rpc)" +  "/client.proxy.simpledemo?user=admin&password=123456", ClientInf.class);
        //獲取客戶端調用代理接口
        //服務器端容器org/frameworkset/spi/ws/webserivce-modules.xml必須是以下方式創建
//      DefaultApplicationContext context = DefaultApplicationContext.getApplicationContext("org/frameworkset/spi/ws/webserivce-modules.xml");
        ClientInf simpleinf = ClientProxyContext.getSimpleClientBean("org/frameworkset/spi/ws/webserivce-modules.xml",//容器標識
        "(http::172.16.25.108:8080/bboss-mvc/http.rpc)/client.proxy.simpledemo?user=admin&password=123456",//服務組件地址 
                                                                    ClientInf.class);//服務接口

    //環境預熱
    mvcinf.helloworld("aaaa,多多");
    WSService.sayHello("aaaa,多多");
    simpleinf.helloworld("aaaa,多多");</pre> 


1.3 修復組件生命周期管理缺陷,該問題表現為通過destroy-method指定組件銷毀方法不起作用

<property name="test.destorybeans" init-method="init" destroy-method="destroy"
        class="org.frameworkset.spi.beans.DestroyBean"/>


1.4 改進在weblogic上發布webservice服務功能。改進后無需在resources/org/frameworkset/spi/ws/webserivce-modules.xml中配置ws.base.contextpath參數

1.5 完善Pro對象中集合list,map,set,array的監控方法

1.6 解決SOAApplicationContext存在的構造函數缺陷

1.7 完善bbossgroups監控模塊,以便能夠監控spi的所有配置:
ioc組件基本配置信息,所屬組件容器類型,所屬配置文件路徑,屬性注入配置,構建函數注入配置,聲明式事務配置,攔截器配置信息,mvc跳轉路徑映射配置信息
rmi服務配置信息,webservice服務配置信息,組件擴展屬性配置,全局參數信息配置
sql配置文件信息,sql語句配置信息,sql文件實時掃描信息
監控頁面的訪問地址:http://localhost:8080/bboss-mvc/monitor/console.htm

1.8 BaseApplicationContext中增加以下方法

public static BaseApplicationContext getBaseApplicationContext(String configfile)
public Pro getInnerPro(String parent,String name)


---------------------------------------------------------------------

2.mvc

2.1 完善spi組件監控模塊
2.2 值對象屬性中如果包含MultipartFile類型時,允許表單不是附件上傳表單,忽略MultipartFile的綁定操作
給出友好提示:
EvaluateMultipartFileParamWithNoName for type["+ type.getCanonicalName() +"] fail: form is not a multipart form,please check you form config.

2.3 新增框架監控實例,訪問地址:http://localhost:8080/bboss-mvc/monitor/spiFrame.jsp
可以對框架管理的組件、mvc控制器、全局配置屬性、sqlfile中的sql語句等配置信息進行監控
2.4 去掉控制器方法參數類型MultipartFile、MultipartFile[]必須和RequestParam注解一起使用的限制

----------------------------------------------------------------------

3.persistent

3.1 完善MultipartFile對象持久化功能,增加友好提示,如果對象屬性類型為MultipartFile,要自動存儲到數據庫的blob或者clob字段時
需要添加@Column(type="blobfile")或者@Column(type="clobfile");查詢大字段數據時,避免將大字段注入到類型為MultipartFile的屬性中
3.2 完善ProArray對象序列化可能存在的問題
3.3 SQLParams中無法獲取父類bean的字段定義信息
3.4 ResultMap中無法獲取父類bean的字段定義信息
3.5 將數字Wraper類型、Boolean、Charaset,Byte等Wraper類型的獲取默認值調整為返回null
3.6 SQLParams中getParamJavatype方法對Long,Double,Float,Short,Bloone處理不正確的問題
3.7 解決動態sql語句中,bean屬性沒有set方法時導致邏輯判斷不能正確解析的問題
3.8 優化blob/clob處理,修改某些情況下blob/clob為空時報錯的問題

---------------------------------------------------------------

4.taglib

4.1 完善convert標簽,將值全部轉換為字符串,只允許Map對象中存放的數據的key是字符串
4.2 完善cell標簽及其子標簽性能,改進使用反射機制的方法

-----------------------------------------------------------------

5.util

5.1 優化ValueObjectUtil中根據屬性名稱獲取字段值得方法,改進性能。
5.2 完善Velocity模板引擎模板路徑配置機制,在bboss-aop.jar/aop.properties文件中增加approot配置,
用來指示應用上下文的絕對路徑:
approot=D:/workspace/bbossgroups-3.2/bboss-mvc/WebRoot
以便能夠查找到對應的模板根目錄
由于標簽庫中使用了vm文件,這些文件存放在approot的/WEB-INF/templates目錄下面,因此必須保證Velocity引擎啟動后正確地找到
這個目錄,在tomcat中是能夠自動找到的,但是在weblogic等容器中無法自動找到這個目錄,因此需要在bboss-aop.jar/aop.properties文件中增加approot配置

5.3 完善VelocityUtil類,解決找不到velocity.properties文件的問題

5.4 完善類型轉換機制,支持lob字段向File/byte[]/String類型的轉換

---------------------------------------------------------------

6.序列化反序列化

6.1 性能優化,將一些結構屬性采用縮寫,具體對應關系如下,減少序列化產生的xml串長度
properties轉換為ps
property轉換為p
name轉換為n
value轉換為v
class轉換為cs

list轉換為l
array轉換為a
map轉換為m
set轉換為s

soa:type_null_value轉換為s:nvl
soa:type轉換為s:t
componentType轉換為cmt

6.2 修復set轉換問題
6.3 修復枚舉類型轉換問題
6.4 修護HashMap,ArrayList,TreeSet子類序列化問題
6.5 增加以下序列化/反序列化api
6.7 對象xml序列化接口完善

ArrayBean bean1 = new ArrayBean(); 
String xmlcontent = ObjectSerializable.toXML(beanObject); 
ObjectSerializable.toXML(Object obj, Writer out); //將序列化得包輸出到out對象中


6.8 xml反序列化接口完善

ArrayBean bean1 = ObjectSerializable. toBean("xmlcontent,ArrayBean.class);
ArrayBean bean1 = ObjectSerializable. toBean(InputStream instream,ArrayBean.class); //反序列化的

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!