SlideShare a Scribd company logo
构建工业模型的Java模块系统JIOPi项目介绍
章节起因目标建模装配模块化系统框架特点Hello World 无API侵入风格级联式资源库容器整合类加载模型总结
起因Jar包升级繁琐lib目录Jar管理混乱Jar依赖冲突局部实现更换几乎不可能分布部署时的边界较难重新规划
目标Jar包自动兼容性升级lib下仅放置被直接使用的Jar忽略实现类细节配置式模块更换弱化分布部署的边界
建模工业产品模块系统模型模块标准化图纸设计模块高度可复用性自由选择实现模块适应需求变化
装配Star Trek Voyager Holodeck装配模型自动默认装配Computer ... di~ ... Give me a Benz SLS配置式装配Computer ... di~ ... Benz SLS with Engine V9级联式装配和级联式装配文件自动双向连接与可选插口连接
模块化系统Classpath:编译时和运行时保持一致性模块隔离:独立ClassLoader接口导出:API与IMPL 独立打Jar包模式依赖管理:API部署与配置文件可选依赖:可选插口连接模型POJO兼容:一致的部署方式和调用方式
框架特点轻量级模块化框架部署于Classpath下的Jar小于50k自动升级随时修复Bug与提升性能非侵入式JIOPi模块无需修改即可用于其它Java系统高兼容性兼容所有Java(J2SE J2EE)系统,以及WEB容器无缝整合无API侵入风格对模块的访问无需添加框架API
HelloWorld所见即所得模式代码ModuleConsole car = CentralConsole.accessModuleConsole("voyager.benz.car_sls_amg", "0.1.0.0");ControlPanelbenzSlsAmg = car.accessControlPanel("voyager.car", ControlPanel.class);System.out.println(benzSlsAmg.operate("getStatus", String.class));API部署模式代码ModuleConsole car = CentralConsole.accessModuleConsole("voyager.benz.car_sls_amg", "0.1.0.0");Car benzSlsAmg =  car.accessControlPanel(Car.class.getName(), Car.class);System.out.println(benzSlsAmg.getStatus());
无API侵入风格POJO代码public class MyMailSender implements MailSender{}public class MyMail implements Mail{}MyMailSender.sendMyMail("姓名<to@yourmail.com>", "hello", "content test");Mail myMail = new MyMail();myMail.addTo("to@yourname.com","姓名");myMail.setSubject("测试邮件");myMail.setTextMsg("测试内容");MailAttachment attachment = new MailAttachment(new URL());myMail.attach(attachment);myMail.send();配置文件<module name="jiopi.module.mailsender" version="0.1"><controlpanel name="jiopi.MailSender" id="mymail"><properties>… </properties></controlpanel><controlpanel name="jiopi.Mail" id="mymail"><inner-accessory id="mailSender" module="this" configuration="mymail"/></controlpanel></module><redefine class="org.jiopi.ibean.show.mailsender.MyMailSender" module="jiopi.module.mailsender" version="0.1" controlpanel="jiopi.MailSender" configuration="mymail"/><redefine class="org.jiopi.ibean.show.mailsender.MyMail" module="jiopi.module.mailsender" version="0.1" controlpanel="jiopi.Mail" configuration="mymail"/>
级联式资源库标准网络资源库标准配置文件模式可使用多种网络协议部署支持分离式部署简化集群环境中的类库管理jiopi.resourcepool.local.path= http://.....jiopi.resourcepool.local.pri=2本地开发资源库与开发环境一致无需配置文件jiopi.resourcepool.local.path= file:/.....jiopi.resourcepool.local.pri=2
容器整合WEB容器整合将配置好的jiopi.properties文件放入JIOPi-iBean.jar中将JIOPi-iBean放入WEB容器的扩展lib目录,如tomcat-home/lib中在WEB应用的classpath中添加一个修改了ibean.work.dir配置的jiopi.properties文件在WEB应用启动时调用FrameworkInitializer.initialize();框架初始化函数当前WEB容器便成为一个支持JIOPi模块化编程风格的WEB容器IoC容器整合代理模式<bean id="jiopi" singleton="false" class="org.jiopi.framework.CentralConsole" factory-method="accessControlPanel"/>appContext.getBean("jiopi","jiopi.ibean.helloworld.i",null,"org.jiopi.ibean.example.module.helloworld.HelloWorldImpl", HelloWorld.class,new Object[]{});直接定义模式<bean id="helloworld" singleton="false"    	class="org.jiopi.framework.CentralConsole" factory-method="accessControlPanel">    	<constructor-arg type="java.lang.String"><value>jiopi.ibean.helloworld.i</value></constructor-arg>    	<constructor-arg type="java.lang.String"><null/></constructor-arg>    	<constructor-arg type="java.lang.String"><value>org.jiopi.ibean.example.module.helloworld.HelloWorldImpl</value></constructor-arg>    	<constructor-arg type="java.lang.Class"><value>org.jiopi.ibean.example.blueprint.helloworld.HelloWorld</value></constructor-arg>    	<constructor-arg type="java.lang.Object[]"><list></list></constructor-arg>    </bean>appContext.getBean("helloworld",HelloWorld.class);
类加载模型BlueprintCommon LibResource Pool ModuleExecution Environment
总结IOP编程和模块编程提议无API侵入的透明轻量级实现忽略实现类细节和避免Jar依赖冲突友好的POJO风格开发和部署模式无运行时负担和运行时风险易于团队协作
谢谢观看2010年6月

More Related Content

PPTX
浅析主流商业和开源Esb产品
PDF
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
PDF
实战Ejb(最终完美版)
PDF
Top100summit automan x之框架介绍 王超
PDF
美团前端架构简介
DOCX
Fttx ttj
PPT
Kirolak presentacion
PPT
The Nervous System
浅析主流商业和开源Esb产品
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
实战Ejb(最终完美版)
Top100summit automan x之框架介绍 王超
美团前端架构简介
Fttx ttj
Kirolak presentacion
The Nervous System

Viewers also liked (13)

PPTX
La săniuş
PPT
Kirola
PPT
HMMWV recovery safety brief
PPT
Meu slide
DOC
BB 11 Hopefuls...
PPT
Pemilihan Duta wisata indonesia 2010
PPTX
Introduction of JIOPi
PDF
Creating Creative Superteams
PDF
You’ve Only Got Two Eyeballs: Designing Products for the Responsive Web
PPTX
RCPA
PPT
Otc
PPTX
Job of Medical representative
La săniuş
Kirola
HMMWV recovery safety brief
Meu slide
BB 11 Hopefuls...
Pemilihan Duta wisata indonesia 2010
Introduction of JIOPi
Creating Creative Superteams
You’ve Only Got Two Eyeballs: Designing Products for the Responsive Web
RCPA
Otc
Job of Medical representative
Ad

Introduction of JIOPi