【vfp开源代码栏目提醒】:网学会员--在 vfp开源代码编辑为广大网友搜集整理了:Spring框架在J2EE中的应用 - 期刊论文绩等信息,祝愿广大网友取得需要的信息,参考学习。
学 术 研 究 Spring 框架在 J2EE 中的应用 兰 婷 于莉莉 (石家庄信息工程职业技术学院 河北 石家庄 050035) 摘 要:Spring 框架由一个容器,一个配置和组织组件的框架,和一组内置的为事务、持久化和 Web 用户接口提供的服务组成。
作为一种轻量级的 J2EE 框架,Spring 提供了一种有效的方式来建立和组织 J2EE 应用程序。
本文就针对 Spring 框架在 J2EE中的应用作出简单的分析。
通过对传统的设计方法以及利用 Spring 框架的设计方法进行对比,显示出 Spring 的优势和特点。
关键词:java 框架 事务 类 管理 一、Spring 框架简介 Connection conn null Spring 框架是一个 2003 年 2 月才出现的
开源项目,目前 try专业人员倡导 J2EE 实用主义的
设计思想, Spring 框架正是 而 conn DBConnectionFactory.getConnection这一思想的更全面和具体的实现。
conn.setAutoCommitfalse Spring 的特性: //do something IoCInversion of Control;控制反转是面向对象领域新兴 conn.commit //commit transaction的编程思想;也是 Spring 的精髓所在。
简单地说;IoC 就是指 catchException e
程序之间的关系由容器来控制;而不是传统实现中由程序
代码 conn.rollback直接操控。
Spring IoC,借助于依赖注入设计模式,使得开发 者不用理会对象自身的生命周期极其关系,而且能够改善开发 finally者对模式的使用。
对于一个对象的管理不是什么困难,难就难 try在对整个对象群的管理。
依赖注入可以让容器管理对象,这样 conn.close对象本身的生命周期以及对象之间的关系就不再让开发者费 catchSQLException se //do sth.神了。
//close ResultSetPreparedStatementConnection Spring AOP,借助于 Spring 实现拦截器,开发者能够实现 //notice:Maybe ocurr Exception when u close以声名方式使用企业级服务,比如安全性服务、事务服务。
rspstmtconnAOP 合理的补充了 OOP,借助于 Spring AOP,开发者能够高 效的使用 J2EE 服务。
按照以往的思路来写
代码,
代码量比较长,而且容易疏忽, Spring 服务抽象,借助于各种 J2EE API 抽象,使得开发 忘掉一些 try/catch,引发一些异常无法 catch,虽然有时候我者能够一致地使用 J2EE 技术,而不管具体是使用什么 J2EE 们会写 DBTool 类,来关闭这些资源,并且保证在关闭这些资API,借助于 Spring 服务抽象,使
代码大大减少,满足“更少 源时,不向外抛异常,但是这样做会导致额外的麻烦。
代码,更少 BUG”的软件设计原则。
2、Spring 提供的编程式事务处理 Spring IoCSpring AOPSpring 服 务 抽 象 , 一 起 形 成 Spring 提 供 了 几 个 关 于 事 务 处 理 的 类 :Spring,这样一个有机体,使构建轻量级 J2EE 成为可能。
TransactionDefinition //事务属性定义 二、Spring 提供的事务管理 TranscationStatus //代表了当前的事务,可以提交,回滚。
Spring 提供的事务管理可以分为两类:编程式的和声明式 PlatformTransactionManager 这个是 spring 提供的用于管的。
编程式的,比较灵活,但是
代码量大,存在重复的
代码比 理事务的基础接口,其下有一个实现的抽象类较多;声明式的比编程式的更灵活方便。
AbstractPlatformTransactionManager,我们使用的事务管理类 1、传统的事务管理 例如 DataSourceTransactionManager 等都是这个类的子类。
以往使用 JDBC 进行数据操作,使用 DataSource,从数据 编程式的事务管理流程如下:源中得到 Connection,我们知道数据源是线程安全的,而连接 1 声明数据源。
不是线程安全的,所以对每个请求都是从数据源中重新取出一 2 声 明 一 个 事 务 管 理 类 , 例 如 :个连接。
一般的数据源由容器进行管理,包括连接池。
例如 DataSourceTransactionManagerHibernateTransactionMangerJTTOMCAT,WEBSPHERE,WEBLOGIC 等这些 J2EE 商业容 ATransactionManager 等。
器都提供了这个功能。
3 在我们的
代码中加入事务处理
代码: 以往的我们使用 JDBC 在写
代码时,事务管理可能会是这 TransactionDefinition td new TransactionDefinition样: TransactionStatus ts 143现代
经济信息transactionManager.getTransactiontd </property> try <property nameinterceptorNames> //do sth <list> transactionManager.committs <idref localtransactionInterceptor/> catchException etransactionManager.rollbackts </list> 使用 Spring 提供的事务模板 TransactionTemplate: </property> void add </bean> 使用 TransactionProxyFactoryBean: transactionTemplate.execute new TransactionCallback <bean iduserManager pulic Object doInTransactionTransactionStatus ts classorg.springframework.transaction.interceptor.Transacti //do sth onProxyFactoryBean> < property nametransactionManager > < ref beantransactionManager/> TransactionTemplate 也是为我们省去了部分事务提交、回 </property>滚
代码;定义事务模板时,需注入事务管理对象。
< property nametarget > < ref 3、Spring 声明式事务处理 localuserManagerTarget/></property> Spring 声明式事务处理也主要使用了 IoC,AOP 思想,提 <property nametransactionAttributes>供 了 TransactionInterceptor 拦 截 器 和 常 用 的 代 理 类 <props>TransactionProxyFactoryBean,可以直接对组件进行事务代理。
< prop keyinsert > PROPAGATION_REQUIRED < 使用 TransactionInterceptor 的步骤: /prop> (1)定义数据源,事务管理类 < prop keyupdate > PROPAGATION_REQUIRED < (2)定义事务拦截器,例如: /prop> <bean id transactionInterceptor < prop key > PROPAGATION_REQUIREDreadOnly classorg.springframework.transaction.interceptor.Transacti </prop>onInterceptor> </props> < property nametransactionManager > < ref </property>beantransactionManager/> </bean> </property> TransactionProxyFactoryBean 只是为组件的事务代理,如 <property nametransactionAttributeSource> 果我们要给组件添加一些业务方面的验证等,可以使用 <value> TransactionTemplate 加拦截器方式,为组件添加多个拦截器, com.test.UserManager.rPROPAGATION_REQUIRED spring AOP 中提供了三类 Advice即前增强,后增强,抛出异 </value> 常时的增强,可以灵活使用。
</property> </bean> 参考文献: (3)为组件声明一个代理类:ProxyFactoryBean 〔1〕Cay S.Horstmann,Gary Cornell.Java 2 核心技术 < bean iduserManager (CoreJava 2)〔M〕.北京:机械工业出版社.classorg.springframework.aop.framework.ProxyFactoryBean 〔2〕Bruce Eckel. (Thinking in Java)M〕北
Java 编程思想 〔 .> 京:机械工业出版社. < property nameproxyInterfaces > < value > 〔3〕Joseph L.Weber.Java 2 编程详解(Using Java 2)com.test.UserManager</value> 〔M〕.北京:电子工业出版社. (上接 158 页) 的点滴进步依据个性化的评价目标及评价标准.不将学生做简 4.2、任务驱动法虽然有很多优点,但也不是解决一切问 单的横向对比而是鼓励学生在原有基础上不断进步。
题的灵丹妙药。
在对高职院校计算机教学内容进行了深刻细致分析的基础上,我认为,对于操作技能要求较高的应用
软件的 参考文献:学习,采用任务驱动法,可以达到事半功倍的教学效果。
但对 1胡晓红.应用“任务驱动”教学提高学生
计算机操作能力于理论性较强,如计算机基础知识等,则不宜采用。
的研究J.首都师范大学20055. 5、“任务驱动法”教学效果评价 2侯海云.任务驱动教学理念新解.《中国现代教育装备》 根据
VFP 课程的特点应关注学生参与教学活动的态度 2007/2.解决
问题的能力和自主
学习的能力以及获取知识的经验与教 3杨晨.《数据库技术》
课程教学改革探讨.《中国高新技训使其真正得到提高。
在学生学习效果的达标评价中应采用 术企业》2007/3.多元标准允许异步达标。
关注学生的个体差异及时肯定学生144