bboss ioc容器之间组件引用方法简介

简介: bboss ioc容器之间组件引用方法简介。我们可以在ioc容器直接获取其他容器中的组件,也可以将其他ioc容器中的组件注入到自己的组件中。本文简单说明如何在ioc容器中获取其他ioc容器中定义的组件,其他容器类型可以为:    org.
bboss ioc容器之间组件引用方法简介。我们可以在ioc容器直接获取其他容器中的组件,也可以将其他ioc容器中的组件注入到自己的组件中。本文简单说明如何在ioc容器中获取其他ioc容器中定义的组件,其他容器类型可以为:
   org.frameworkset.spi.DefaultApplicationContext
   MVC容器
   org.frameworkset.spi.ApplicationContext
  
bboss ioc容器参考文章:
   http://yin-bp.iteye.com/blog/1153798
  
本文涉及到的工厂模式参考文章:
   http://yin-bp.iteye.com/blog/1014361

1.ioc配置文件示例

<!-- 
   本实例说明如何在ioc容器中获取其他ioc容器中定义的组件,其他容器类型包括:
   org.frameworkset.spi.DefaultApplicationContext 
   MVC容器
   org.frameworkset.spi.ApplicationContext 
   
   bboss ioc容器请参考文章:
   http://yin-bp.iteye.com/blog/1153798
   
        涉及到的工厂模式请参考文章:
   http://yin-bp.iteye.com/blog/1014361
 -->
<properties>
	<!-- 
		使用工厂模式,定义一个外部org.frameworkset.spi.ApplicationContext类型的容器对象引用,以便引用容器中的组件
	            该容器对象通过加载配置文件 org/frameworkset/spi/beans/testapplicationcontext.xml
	           创建
	-->
	<property name="test.outnerapplicationcontext" 
			  factory-class="org.frameworkset.spi.ApplicationContext" 
			  factory-method="getApplicationContext">
		<construction>
			<property  value="org/frameworkset/spi/beans/testapplicationcontext.xml"/>	
		</construction>
	</property>
	
	<!-- 
		使用工厂模式定义一个对外部组件的引用组件test_refbean_from_outnerapplicationcontext,
		从外部容器test.outnerapplicationcontext中获取名称为rpc.restful.convertor的组件
	-->
	<property name="test_refbean_from_outnerapplicationcontext" 
			  factory-bean="test.outnerapplicationcontext" 
			  factory-method="getBeanObject">
		<construction>
			<property  value="rpc.restful.convertor"/>	
		</construction>
	</property>
	
	
	<!-- 
		使用工厂模式,定义bboss MVC类型的容器对象引用,以便引用容器中的组件
	            该容器对象通过MVC框架自动创建
	-->
	<property name="test.mvcapplicationcontext" 
			  factory-class="org.frameworkset.web.servlet.support.WebApplicationContextUtils" 
			  factory-method="getWebApplicationContext"/>
	
	<!-- 
		使用工厂模式定义一个对外部组件的引用组件test_refbean_from_mvcapplicationcontext,从MVC容器中获取名称为deskTopMenuShorcutManager的组件
	-->
	<property name="test_refbean_from_mvcapplicationcontext" 
			  factory-bean="test.mvcapplicationcontext" 
			  factory-method="getBeanObject">
		<construction>
			<property  value="deskTopMenuShorcutManager"/>	
		</construction>
	</property>
	
	
	<!-- 
		使用工厂模式,定义一个外部org.frameworkset.spi.DefaultApplicationContext 类型的容器对象,以便引用改容器中的组件
	            该容器对象通过加载配置文件 org/frameworkset/spi/beans/testapplicationcontext.xml
	           创建
	-->
	<property name="test.outnerdefaultapplicationcontext" 
			  factory-class="org.frameworkset.spi.DefaultApplicationContext" 
			  factory-method="getApplicationContext">
		<construction>
			<property  value="org/frameworkset/spi/beans/testapplicationcontext.xml"/>	
		</construction>
	</property>
	
	<!-- 
		使用工厂模式定义一个对外部组件的引用组件test_refbean_from_outnerdefaultapplicationcontext,
		从外部容器test.outnerdefaultapplicationcontext中获取名称为rpc.restful.convertor的组件
	-->
	<property name="test_refbean_from_outnerdefaultapplicationcontext" 
			  factory-bean="test.outnerdefaultapplicationcontext" 
			  factory-method="getBeanObject">
		<construction>
			<property  value="rpc.restful.convertor"/>	
		</construction>
	</property>
	
</properties>


2.ioc配置文件加载和跨ioc容器组件实例获取方法
我们可以在ioc容器直接获取其他容器的组件,也可以将其他ioc容器的组件注入到自己的组件中,这里值说明第一种情况:
/*
 *  Copyright 2008 biaoping.yin
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

package org.frameworkset.spi.container;

import org.frameworkset.spi.BaseApplicationContext;
import org.frameworkset.spi.DefaultApplicationContext;
import org.frameworkset.spi.remote.restful.RestfulServiceConvertor;

/**
 * <p>Title: IOCReference.java</p> 
 * <p>Description: </p>
 * <p>bboss workgroup</p>
 * <p>Copyright (c) 2007</p>
 * @Date 2012-8-4 下午2:17:18
 * @author biaoping.yin
 * @version 1.0
 */
public class IOCReference {

	public void test()
	{
		//初始化ioc容器对象,在该容器对象中定义了三个外部ioc容器组件的引用组件
		BaseApplicationContext context = DefaultApplicationContext
						.getApplicationContext("org/frameworkset/spi/container/iocreference.xml");
		//跨ioc组件实例获取方法示例
		RestfulServiceConvertor convertor = context.getTBeanObject("test_refbean_from_outnerapplicationcontext",RestfulServiceConvertor.class);
		RestfulServiceConvertor convertor1 = context.getTBeanObject("test_refbean_from_mvcapplicationcontext",RestfulServiceConvertor.class);
		RestfulServiceConvertor convertor2 = context.getTBeanObject("test_refbean_from_outnerdefaultapplicationcontext",RestfulServiceConvertor.class);
	}
}
目录
相关文章
|
Web App开发 前端开发 JavaScript
前端新利器:CSS容器查询——让组件真正“自适应
前端新利器:CSS容器查询——让组件真正“自适应
570 83
|
9月前
|
XML Java 测试技术
《深入理解Spring》:IoC容器核心原理与实战
Spring IoC通过控制反转与依赖注入实现对象间的解耦,由容器统一管理Bean的生命周期与依赖关系。支持XML、注解和Java配置三种方式,结合作用域、条件化配置与循环依赖处理等机制,提升应用的可维护性与可测试性,是现代Java开发的核心基石。
|
前端开发 API 开发者
harmonyOS基础- 快速弄懂HarmonyOS ArkTs基础组件、布局容器(前端视角篇)
本文由黑臂麒麟(6年前端经验)撰写,介绍ArkTS开发中的常用基础组件与布局组件。基础组件包括Text、Image、Button等,支持样式设置如字体颜色、大小和加粗等,并可通过Resource资源引用统一管理样式。布局组件涵盖Column、Row、List、Grid和Tabs等,支持灵活的主轴与交叉轴对齐方式、分割线设置及滚动事件监听。同时,Tabs组件可实现自定义样式与页签切换功能。内容结合代码示例,适合初学者快速上手ArkTS开发。参考华为开发者联盟官网基础课程。
1428 75
harmonyOS基础- 快速弄懂HarmonyOS ArkTs基础组件、布局容器(前端视角篇)
|
XML Java 数据格式
Spring IoC容器的设计与实现
Spring 是一个功能强大且模块化的 Java 开发框架,其核心架构围绕 IoC 容器、AOP、数据访问与集成、Web 层支持等展开。其中,`BeanFactory` 和 `ApplicationContext` 是 Spring 容器的核心组件,分别定位为基础容器和高级容器,前者提供轻量级的 Bean 管理,后者扩展了事件发布、国际化等功能。
394 18
|
监控 关系型数据库 MySQL
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
1149 30
|
XML Java 数据格式
京东一面:spring ioc容器本质是什么? ioc容器启动的步骤有哪些?
京东一面:spring ioc容器本质是什么? ioc容器启动的步骤有哪些?
|
存储 安全 算法
Java容器及其常用方法汇总
Java Collections框架提供了丰富的接口和实现类,用于管理和操作集合数据。
377 2
Java容器及其常用方法汇总
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
592 4
|
11月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1380 108