工作开发框架技术思想解析

     从进浪潮工作以来,开发框架一直用的是楼上框架3.0,想通过这篇文章简单的介绍一下楼上框架所用到的技术和思想:

    首先我认为楼上框架最大的特性就是集成了Spring框架,特别是IOC技术以及AOP思想:

    1) IOC全程为Inversion of Control,译为控制反转,也被称为依赖注入,因此,不管是依赖注入,还是控制反转,其含义完全相同:当每个Java实例(调用者)需要另一个Java实例(被调用者)时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。在依赖注入的模式下,创建被调用者的工作不再有调用者来完成,因此称为控制反转;创建被调用者的实例的工作通常由Spring容器来完成,然后注入调用者,因此称为依赖注入。不管是依赖注入还是控制反转,都说明Spring采用动态、灵活的方式来管理各种对象。对象与对象之间的具体实现互相透明。

        可以把IoC模式看做是工厂模式的升华,可以把IoC看作是一个大工厂,只不过这个大工厂里要 生成的对象都是在XML文件中给出定义的,然后利用Java 的“反射”编程,根据XML中给出的类名生成相应的对象。从实现来看,IoC是把以前在工厂方法里写死的对象生成代码,改变为由XML文件来定义,也就是把工厂和对象生成这两者独立分隔开来,目的就是提高灵活性和可维护性。

        IOC中最基本的Java技术就是“反射”编程。反射又是一个生涩的名词,通俗的说反射就是根据给出的类名(字符串)来生成对象。这种编程方式可以让对象在生成时才决定要生成哪一种对象。反射的应用是很广泛的,象Hibernate、Spring中都是用“反射”做为最基本的技术手段。

 2)AOP全程Aspect Oriented Programming,译为面向切面的编程,通过这个名字我们也可以推断它是一种设计思想,是继面向过程的编程、面向对象的编程(OOP)后,又一个新的想法、新的思想、新的模式;AOP 是一个概念,一个规范,本身并没有设定具体语言的实现,AOP主要是针对企业级的服务应用功能,AOP将应用系统分为两部分,核心业务逻辑及横向的通用逻辑,横向的通用逻辑一般是企业级的服务应用功能,如:日志记录,跟踪,优化和监控,事务处理,系统统一的认证、权限管理等。AOP与OOP并不冲突,相反,AOP是OOP的有益补充,二者相得益彰。

 通过以上描述,可以看出Loushang3.0是一个轻量级开发平台,更重要的是降低了业务对象之间耦合度,并提高了代码的重用性。

   其次我看了一下Loushang框架引用的jar包,竟然引用了EJB相关的jar包,大家也知道EJB是重量级开发,而Spring是轻量级开发框架。大家一定纳闷这两个思想截然相反的怎么能同时运用呢?下面通过图给大家介绍一下:

wKioL1LNWLSQkNSQAACG0qQi6TI603.jpg

                                     图1.1

 通过图1.1我们可以看出Loushang3.0共分为6层:展现层、Command控制层、Service服务层、Domain逻辑层、Dao持久层、数据库层。客户端至服务端数据表现形式有两种:viewbean、databean,其实我认为viewbean其实对应的是EJB中的sessionbean,而databean对应的是EJB中的entitybean,这是早期的EJB包括的内容,EJB2.0之后又添加了MessageDriven(消息驱动bean),从这里看出Loushang3.0也借鉴了EJB的规范标准。但是viewbean、databean都是通过IOC容器生成和初始化的,所以也说其集成了Spring框架。从这里可以看出Loushang3.0把两个截然相反的设计思想完美的融合在一起了,这也是Loushang框架的独特之处吧!

   通过图1.1我们也可以看出Loushang框架开发设计模式为MVC三层架构,具体如图1.2所示:

wKioL1LOr9OTzVEbAAE0Md4UMLY386.jpg

刚开始开发时我以为直接运用的是SpringMVC组件,但是通过反编译工具查看Loushang相关jar包时才恍然大悟,原来MVC组件不是任何开源的组件,而是开发人员自己重新开发类似SpringMVC组件的LoushangMVC(暂且这么叫吧)。

你可能感兴趣的:(spring,开发框架,浪潮,楼上框架,Loushang)