`

bboss 组件容器的使用方法浅析

阅读更多
本文重点介绍bboss 中的4大组件容器的特点及使用方法

4大组件容器
[1] ApplicationContext
org.frameworkset.spi.ApplicationContext
包括基本的aop/ioc功能,业务组件、dao组件管理,远程服务,全局属性管理,拦截器,包含声明式事务管理
[2] WebApplicationContextorg.frameworkset.web.servlet.context.WebApplicationContext
管理所有mvc框架中的控制器,包括基本的aop/ioc功能,业务组件、dao组件管理,不提供远程服务(和远程服务协议包无关联)
[3] DefaultApplicationContextorg.frameworkset.spi.DefaultApplicationContext
包括基本的aop/ioc功能,业务组件、dao组件管理,不提供远程服务(和远程服务协议包无关联)

[4] SOAApplicationContext/SOAFileApplicationContext
org.frameworkset.spi.SOAApplicationContext
org.frameworkset.spi.SOAFileApplicationContext
两个轻量级的ioc容器,包含aop/ioc功能、全局属性管理,业务组件、dao组件管理,不包含远程服务、拦截器、不包含声明式事务管理,是DefaultApplicationContext的子类,二者主要用来实现对象xml序列化功能,前者从xml串中反序列化组件,后者从xml文件中反序列化组件


4大组件容器相对于相同的配置文件都是单实例的,也就是说在应用程序中的任何地方通过以下方法获取到的ioc容器实例都是同一个实例(除了在第一次会加载配置文件并初始化文件中包含的组件外,之后都不会进行初始化加载),而且这些方法是多线程安全的:

WebApplicationContext context = org.frameworkset.web.servlet.support.WebApplicationContextUtils.getWebApplicationContext();//获取mvc容器实例

BaseApplicationContext context = DefaultApplicationContext.getApplicationContext("org/frameworkset/spi/beans/testapplicationcontext.xml");//获取普通ioc容器实例


4大组件容器的初始化和操作示例

本文涉及的组件配置文件如下:
org/frameworkset/spi/beans/testapplicationcontext.xml
org/frameworkset/soa/datasource-sql.xml

[1] ApplicationContext初始化和使用示例
org.frameworkset.spi.ApplicationContext
初始化:
ApplicationContext context = ApplicationContext.getApplicationContext("org/frameworkset/spi/beans/testapplicationcontext.xml");

使用示例:
本地服务组件实例获取方法
RestfulServiceConvertor convertor = context.getTBeanObject("rpc.restful.convertor",RestfulServiceConvertor.class);


远程服务组件实例获取方法(以rmi协议为例,其他协议类似,更多信息参考博客其他文章):
 RestfulServiceConvertor convertor = (RestfulServiceConvertor)context.getBeanObject("(rmi::172.16.17.216:1099)/rpc.restful.convertor");


[2] WebApplicationContext
org.frameworkset.web.servlet.context.WebApplicationContext
WebApplicationContext的初始化是在bboss mvc框架启动过程中自动初始化的,你、只需要在web.xml文件中做如下配置即可:
<servlet>
		<servlet-name>mvcdispather</servlet-name>
		<servlet-class>org.frameworkset.web.servlet.DispatchServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/bboss-*.xml,
						/WEB-INF/conf/bboss-*.xml</param-value>
		</init-param>
		<load-on-startup>0</load-on-startup>
	</servlet>
		
	<servlet-mapping>
		<servlet-name>mvcdispather</servlet-name>
		<url-pattern>*.page</url-pattern>
	</servlet-mapping>	


WebApplicationContext容器将会加载contextConfigLocation属性中配置的所有配置文件,形成一个的mvc 框架组件容器。

我们可以在程序这样获取WebApplicationContext容器的实例:
WebApplicationContext context = org.frameworkset.web.servlet.support.WebApplicationContextUtils.getWebApplicationContext();//获取实例

//通过以下方式获取mvc容器中的组件实例方法
DeskTopMenuShorcutManager m = context.getTBeanObject("deskTopMenuShorcutManager", DeskTopMenuShorcutManager.class);


[3] DefaultApplicationContext
org.frameworkset.spi.DefaultApplicationContext
DefaultApplicationContext的实例定义和获取组件实例方法为:
BaseApplicationContext context = DefaultApplicationContext.getApplicationContext("org/frameworkset/spi/beans/testapplicationcontext.xml");
	    RestfulServiceConvertor convertor = context.getTBeanObject("rpc.restful.convertor",RestfulServiceConvertor.class);


[4] SOAApplicationContext/SOAFileApplicationContext
org.frameworkset.spi.SOAApplicationContext
org.frameworkset.spi.SOAFileApplicationContext

SOAApplicationContext的实例化和获取组件实例示例代码:

String content = "<?xml version=\"1.0\" encoding=\"gbk\"?>" +
			"<esb>"+
				"<call>"+
				
				"<!-- 调度中心需要的数据开始 -->"+
					
					"<property name=\"soamethodcall\" " +
						"class=\"org.frameworkset.soa.SOAMethodCall\" "+
						"f:requestor=\"requestor\" "+
						"f:requestid=\"1000000\" "+
						"f:password=\"requestpassword\" "+
						"f:encypt=\"encrypt\" "+
						"f:encyptalgorithem=\"algorithm\" "+
						"f:serviceid=\"hilaryserviceid\" "+
						"f:issynchronized=\"true\" >"+
						"<!-- 调度中心需要的数据结束 -->"+
						"<!-- 调度中心提交给服务提供方的服务方法信息 -->"+
						"<property name=\"soamethodinfo\" class=\"org.frameworkset.soa.SOAMethodInfo\" " +
														"f:methodName=\"methodname\">"+
							"<property name=\"paramTypes\">"+
								"<array componentType=\"Class\">"+
									"<property >String</property>"+
									"<property >String</property>"+
									"<property >String[]</property>"+
								"</array>"+
							"</property>" +
							"<property name=\"params\">"+
								"<array componentType=\"object\">"+
									"<property name=\"condition\">1=1</property>"+
									"<property name=\"orderby\">order by ${A}</property>"+
									"<property>"+
									"	<array componentType=\"String\">"+
										"<property>A</property>"+
										"<property>B</property>"+
										"</array>"+
									"</property>"+
								"</array>"+
							"</property>" +
						"</property>" +
					"</property>"+
				"</call>"+
			"</esb>";
//从xml字符串实例化SOAApplicationContext对象 
		SOAApplicationContext context  = new SOAApplicationContext(content);
//获取xml串中包含的组件对象实例	
		SOAMethodCall object = context.getTBeanObject("soamethodcall",SOAMethodCall.class);


SOAFileApplicationContext的实例化和获取组件实例示例代码:
SOAFileApplicationContext context = new SOAFileApplicationContext("org/frameworkset/soa/datasource-sql.xml");
//获取xml串中包含的组件对象实例	
		SOAMethodCall object = context.getTBeanObject("soamethodcall",SOAMethodCall.class);
分享到:
评论
2 楼 yin_bp 2014-09-23  
如果想在普通的java程序中引用定义在mvc 容器中的业务组件,那么可以通过以下方式先获取到组件的实例:

WebApplicationContext context = org.frameworkset.web.servlet.support.WebApplicationContextUtils.getWebApplicationContext();//获取实例

//通过以下方式获取mvc容器中的组件实例方法
DeskTopMenuShorcutManager m = context.getTBeanObject("deskTopMenuShorcutManager", DeskTopMenuShorcutManager.class);

然后调用m组件上的方法即可
1 楼 yin_bp 2014-07-17  
bboss中全局默认容器获取方法,这个容器会加载classes根目录下的manager-provider.xml文件:
BaseApplicationContext context = ApplicationContext.getApplicationContext();

相关推荐

    bboss会话共享培训文档

    例如,在一个域下的多个子应用之间,使用bboss可以共享认证信息,用户登录其中一个应用后,无需再次登录即可访问其他应用。 文档中提到了会话共享需要解决的五大技术难题: 1. session数据序列化问题,即如何有效...

    bboss mvcdemo 下载地址

    在“bboss mvc开发手册.doc”中,我们可能会找到关于如何使用BBoss MVCDemo进行开发的详细指南。 首先,让我们深入了解BBoss MVCDemo的核心特性: 1. **模型(Model)**:BBoss MVCDemo支持多种数据访问方式,如JDBC...

    企业级J2EE开源框架bboss

    1. **组件化开发**:BBoss支持模块化和组件化的开发模式,允许开发者根据项目需求选择必要的功能组件,避免了传统框架中“大而全”的问题,降低了系统的复杂度。 2. **数据库操作**:BBoss提供了便捷的数据访问层...

    bboss ioc配置文件中使用外部属性文件介绍

    除了`&lt;property-placeholder&gt;`标签,BBoss还支持使用`&lt;context:property-placeholder&gt;`标签,它是Spring框架的一部分,也可以与BBoss集成使用。这种方式的配置类似,但提供了更多的选项,如默认值、忽略未定义的属性...

    springboot整合bboss es增删改查测试demo代码

    本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...

    bboss 安全认证过滤器功能介绍

    BBoss安全认证过滤器是Java Web开发中一种用于实现用户身份验证和权限控制的重要组件。在Web应用程序中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP之前进行预处理,以及在...

    bboss elasticsearch-5.7.8.rar

    3. `bboss-util-5.5.0.jar`和`bboss-persistent-5.5.0.jar`:这是BBoss框架的核心组件,提供了许多实用工具类和持久化操作支持,如数据库连接、事务管理等,为Elasticsearch的数据导入提供底层支持。 4. `...

    bboss会话共享培训文档分享

    本培训文档将介绍集群session管理的发展历史、bbosssession的架构及特点、性能指标、与应用的集成方式、部署模式以及场景演示等,旨在帮助技术人员理解并掌握bbosssession的使用方法和优势。 一、集群session管理...

    bboss-http:bboss http 服务组件

    http负载均衡组件-HttpRequestProxy 使用参考文档 负载均衡组件特点: 1.服务负载均衡(目前提供RoundRobin负载算法) 2.服务健康检查 3.服务容灾故障恢复 4.服务自动发现(zk,etcd,consul,eureka,db,其他第三...

    bboss-elasticsearch开发环境搭建和开发入门视频教程.

    2. **bboss elasticsearch开发入门教程.wmv**: 通过实例演示,讲解如何使用BBoss进行索引操作、数据插入、查询和更新,帮助初学者快速上手。 **六、资料阅读** "说明.txt" 文件可能包含了关于这些教程的详细步骤和...

    bboss+easyui帮助文档比较详细

    2. **BBoss核心组件讲解**:详细解析BBoss的各个模块,如DAO、Service、权限控制等的使用方法。 3. **EasyUI组件使用**:讲解如何在页面中引入EasyUI,以及各种组件的属性设置和事件绑定。 4. **实战示例**:提供...

    bboss+es基本操作示例.zip

    在`demo`这个文件中,可能包含了使用bboss操作Elasticsearch的基本示例代码。例如,创建索引、插入文档、执行查询等。通常,这些示例会展示如何初始化bboss客户端,如何构造和执行DSL查询,以及如何处理返回结果。 ...

    springboot集成ElasticsearchBboss调用Elasticsearch.md

    springboot集成ElasticsearchBboss调用Elasticsearch的案例分享

    由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能

    **bboss-datatran** 是一个由 **bboss** 社区开源的高效数据处理工具,专注于数据采集、数据清洗转换以及数据入库等任务。...通过深入学习和使用bboss-datatran,用户可以提升数据处理效率,更好地挖掘数据的价值。

    基于bboss新版平台项目环境搭建和代码工具使用视频教程.rar

    bboss,全称为Business Basic Open Source,是一个开源的企业级开发框架,它为构建企业级应用提供了丰富的功能和组件。 首先,我们来详细探讨环境搭建的过程。bboss新版平台的开发环境搭建通常包括以下几个关键步骤...

    bboss-db-elasticsearch-tool-master_java_

    【bboss-db-elasticsearch-tool-master_java_】是一个Java ORM(对象关系映射)框架,它在功能上超越了MyBatis,提供了对多种数据库的广泛支持,包括MySQL、Oracle、PostgreSQL、SQLServer、DB2、DM以及MongoDB。...

    bboss persistent 1.0.2中方便地实现大字段(clob,blob)的处理

    通过学习相关文档和博客(如提供的链接),开发者可以快速上手并掌握其使用方法。 6. **性能优化**:BBoss Persistent还可能包括针对CLOB和BLOB的性能优化,比如预读取、延迟加载等策略,以提高应用的响应速度和...

    bboss-soa.jar

    官方版本,亲测可用

Global site tag (gtag.js) - Google Analytics