1:Spring介绍:
Spring框架是一个分层架构,由7个定义好的模块组成。Spring模块构建在核心容器上,核心容器定义了创建、配置和管理bean的方式。
每个模块的功能如下:
核心容器:核心容器提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现,BeanFactory使用控制反转(IoC)模式将应用程序的配置和依赖性规范与实际的应用代码分开。
Spring上下文:Spring上下文是一个配置文件,向Spring框架提供上下文信息,Spring上下文包括企业服务,例如,JNDI、EJB、电子邮件、国际化、校验和调度功能。
Spring AOP:通过配置管理特性,Spring AOP模块直接将面向方面的编程功能集成到了Spring框架中,所以,可以很容易地使用Spring框架管理任何对象支持AOP。Spring AOP模块为基于Spring的应用程序中的对象提供了事务管理服务,通过使用Spring AOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。
Spring DAO:JDBC DAO(DAO Access Object)抽象层提供了有意义的异常层次机构,可用该机构管理异常处理和不同数据库供应商抛出的错误消息。异常层次机构简化了错误处理,并且极大地降低了需要编写地异常代码数量]。Spring DAO的面向JDBC的异常遵从通用的DAO异常层次机构。
Spring ORM:Spring框架插入了若干个Object/Relation Mapping框架,从而提供了ORM的对象关系映射工具,其中包括JDO、Hibernate和iBatis SQL Map。所有这些都遵从Spring的通用事务和DAO异常层次机构。
Spring Web模块:Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。所以,Spring框架支持与Struts的集成。Web模块还简化了处理多部分请求,以及将请求参数绑定到域对象的工作。
Spring MVC框架:MVC框架是一个全功能的构建Web应用程序的MVC实现,通过策略变为可配置的,MVC容纳了大量视图技术,其中包括JSP等。
Spring框架的功能可以用在任何J2EE服务器中,大多数功能也适用于不受管理的环境,Spring的核心要点是支持不绑定到特定J2EE服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同J2EE环境(Web或EJB)、独立应用程序、测试环境之间重用。
2: Ibatis介绍
纵观目前主流的ORM,无论Hibernate 还是Apache OJB,都对数据库结构提供了较为完整的封装,提供了从POJO 到数据库表的全套映射机制。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过Hibernate或者OJB 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握,Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执行。
大多数情况下(特别是对新项目,新系统的开发而言),这样的机制无往不利,大有一统天下的势头。但是,在一些特定的环境下,这种一站式的解决方案却未必灵光。如:
1 系统的部分或全部数据来自现有数据库,处于安全考虑,只对开发团队提供几条Select SQL(或存储过程)以获取所需数据,具体的表结构不予公开[6]。
2 开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由存储过程实现。
3 系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。“半自动化”的ibatis,却刚好解决了这个问题。这里的“半自动化”,是相对Hibernate等提供了全面的数据库封装机制的“全自动化”ORM 实现而言,“全自动”ORM 实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行。而ibatis 的着力点,则在于POJO 与SQL之间的映射关系。也就是说,ibatis并不会为程序员在运行期自动生成SQL 执行。具体的SQL 需要程序员编写,然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。
使用ibatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象,这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate会自动生成SQL 语句,而ibatis 则要求开发者编写具体的SQL 语句。相对Hibernate等“全自动”ORM机制而言,ibatis 以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间[8]。作为“全自动”ORM实现的一种有益补充,ibatis 的出现显得别具意义。
3 DAO数据存取
J2EE开发人员使用数据访问对象(DAO)设计模式把底层的数据访问逻辑和高层的商务逻辑分开.实现DAO模式能够更加专注于编写数据访问代码.
DAO模式是标准的J2EE设计模式之一.开发人员使用这个模式把底层的数据访问操作和上层的商务逻辑分开.一个典型的DAO实现有下列几个组件:
1 一个DAO工厂类;
2 一个DAO接口;
3 一个实现DAO接口的具体类;
4 数据传递对象(有些时候叫做值对象).
在源程序的一个包中放置的是已经封装好的底层数据库连接组件,也就是所谓的DAO(Data Access Object)组件[11]。DAO组件的主要功能是提供数据库存取服务。通过这一组封装好的组件,可以完成以下的功能:从系统的配置文件中读取系统的配置参数,该配置文件中存放的是连接数据库的配置。
4 配置Sql-map-config.xml
Sql-map-config文件是负责前台业务和后台数据库交互的一个配置文件:
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
maxRequests="256"
maxSessions="100"
maxTransactions="100"
useStatementNamespaces="true"
/>
/*中间为由生成jar包工具生成的各个表的xml文件,用到的数据库表,必须在该文件中配置,否则,将不起作用;
<sqlMap resource="com/zzxy/mvc/dao/atom/maps/CF_AJXX.xml"/>
………
</sqlMapConfig>
其中,我们所写的各个固定的配置文件也必须写在该配置文件中。
5 配置applicationContext.xml
applicationContext.xml文件是基本的配置文件, 放置在你所创建工程的WEB-INF中,所用的技术为Spring+Ibatis,也是该框架的基础,所有的业务开发,都要建立在该配置文件上面;
5.1 配置方法
该配置文件分为四个部分:
(1):文档开头定义
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
(2):数据源定义和SqlMapClient为IBATIS数据库层设定
<bean id="DataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:OracleDS"/>
</bean>
? <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"/>
<!-- SqlMapClient setup for iBATIS Database Layer -->
<bean id="SqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataSource"><ref local="DataSource"/></property>
<property name="configLocation">
<value>WEB-INF/sql-map-config.xml</value>
</property>
</bean>
注意这部分代码, 定义sqlMapClient时,configLocation的value需要定义为<value>WEB-INF/sql-map-config.xml</value>,否则会引起很多错误;
(3): DAO的定义和Ibatis 的实现的class文件路径:
<bean id="publicDao" class="com.zzxy.mvc.mis.dao.custom.PublicDaoImp">
<property name="dataSource"><ref local="DataSource"/></property>
<property name="sqlMapClient" ref="SqlMapClient"/>
</bean>
<bean id="cf_ajxx_dao" class="com.zzxy.mvc.dao.atom.impl.CF_AJXX_DAOImp">
<property name="dataSource"><ref local="DataSource"/></property>
<property name="sqlMapClient" ref="SqlMapClient"/>
</bean>
….
(4):定义数据层和数据库层的接口
DC为所有的dao的集合
<bean id="DC" class="com.zzxy.mvc.mis.dao.DaoCollection">
<property name="publicDao" ref="publicDao"/>
<property name="cf_ajxx_dao" ref="cf_ajxx_dao"/>
…………
</bean>
</beans>
6 MVC架构
MVC架构为目前很流行的系统架构。
MVC最初是在Smalltalk-80中被用来构建用户界面的。M代表模型Model, V代表视图 View, C代表控制器Controller。
MVC的目的是增加代码的重用率,减少数据表达,数据描述和应用操作的耦合度。 同时也使得软件可维护性,可修复性,可扩展性,灵活性以及封装性大大提高。
单用户的应用通常是以事件驱动的用户界面为组织结构的。开发人员用一个界面工具画了一个用户接口界面,然后编写代码根据用户输入去执行相应的动作,许多交互式的开发环境鼓励这么做,因为它强调先有界面然后再有功能。一些软件设计模式策略是这样的,然后经常将固定后的代码融入最后的系统当中。导致的结果就是,程序组织围绕用户界面元素和用户在那些界面元素上的动作,数据的存储,应用的功能以及用来显示的代码都杂乱无章的缠绕在一起。在单用户的系统里代码结构是可以这样的,因为系统需求不会频繁变化。但是对一个大的系统如大型Web系统,或电子商务系统来说就不太适用了。
通过把数据模式从各种可以被存取和控制的数据中分离出来可以改善分布式系统的设计。MVC设计模式由三部分组成。模型是应用对象,没有用户界面。视图表示它在屏幕上的显示,代表流向用户的数据。控制器定义用户界面对用户输入的响应方式,负责把用户的动作转成针对Model的操作。Model 通过更新View的数据来反映数据的变化。
相关推荐
**Spring MVC 框架学习总结** Spring MVC 是 Spring 框架的一部分,它是一个用于构建 Web 应用程序的模型-视图-控制器(MVC)架构。Spring MVC 提供了一个灵活、可扩展的环境,使开发者可以专注于业务逻辑,而无需...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为开发者提供了模型-视图-控制器(MVC)架构,使开发人员能够更好地组织和分离应用程序的业务逻辑、数据处理和用户界面。Spring MVC是Spring框架的一个核心组件,...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring ...通过学习和熟练使用 Spring MVC,开发者可以构建出高效、可扩展的 Web 应用。在实际项目中,了解和掌握这些知识点将大大提升开发效率和代码质量。
在这个学习记录总结中,我们将深入理解Spring MVC的核心概念、主要组件以及其工作流程。 1. Spring MVC 概述 Spring MVC 是Spring框架的一部分,它基于Spring IoC(Inversion of Control,控制反转)容器,简化了...
Spring MVC 是一款强大的Java Web开发框架,用于构建可维护、高性能和灵活的Web应用程序。...通过理解和学习这些核心概念,你将能够更熟练地驾驭Spring MVC框架,构建出高效、可扩展的Web应用程序。
这是一个基于Spring MVC、Mybatis和Spring框架实现的个人博客系统,涵盖了Web开发中的后端架构...对于学习和理解SSM(Spring、SpringMVC、Mybatis)框架集成开发,以及实际的Web应用开发流程,这是一个很好的实践案例。
Spring MVC 是一款强大的Java Web开发框架,用于构建高效、可维护和模块化的Web应用程序。它作为Spring框架的一...通过学习这个教程,你可以提高你的Web开发技能,更好地利用Spring MVC来构建高质量的Java Web应用。
Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建Web应用程序的后端控制器。这个教程“Spring MVC - A Tutorial”旨在帮助开发者深入理解和掌握Spring MVC的核心概念和...
Spring MVC是Spring框架中用于Web应用快速开发的一个模块,其中的MVC是Model-View-Controller的缩写。作为当今业界最主流的Web开发框架,Spring MVC已经成为当前最热门的开发技能,同时也广泛用于桌面开发领域。 ...
Spring MVC 是一个基于Java的轻量级Web应用框架,它属于Spring生态的一部分,主要用于构建Web应用程序的后端控制器。...通过学习和掌握Spring MVC,开发者能够更高效地构建稳定、可扩展的Web服务。
通过本案例,我们可以学习如何使用 Spring、Spring MVC 和 MyBatis 框架来开发一个基于 Java 的 Web 应用程序,并掌握相关的技术和配置。 知识点: 1. Spring 框架的概述和应用场景 2. Spring MVC 框架的概述和...
Spring MVC、Spring和Mybatis是Java开发中非常流行的三大开源框架,它们的组合,通常被称为“SSM”框架。SSM框架的使用可以极大地提高Web应用的开发效率,通过合理的解耦,使得各组件能够更好地协同工作。接下来,...
Spring MVC是Spring框架中用于Web应用快速开发的一个模块,其中的MVC是Model-View-Controller的缩写。作为当今业界最主流的Web开发框架,Spring MVC已经成为当前最热门的开发技能,同时也广泛用于桌面开发领域。 ...
在"spring3MVC框架demo"中,包含了两个关键功能的实现:文件上传下载功能和使用xheditor发布消息功能。 首先,我们来详细了解一下Spring3MVC的基础配置。在Spring3MVC项目中,配置通常包括以下几个部分: 1. **web...
Spring MVC 是一个强大的Java Web开发框架,它是Spring框架的一部分,专为构建高度可扩展和模块化的Web应用程序而设计。...这将有助于提升你在Spring MVC框架下的开发技能,使你能够构建更加高效、健壮的Web应用。
Spring MVC 是一个基于...以上是Spring MVC框架的一些基本知识点,这些内容可能在"springMvc"压缩包中的项目示例中有体现。通过学习和实践这个小例子,你可以更好地理解Spring MVC的工作原理以及如何在实际开发中应用。
在搭建Spring MVC框架的过程中,我们需要遵循以下步骤: 1. **环境准备**:首先确保已安装Java Development Kit (JDK) 和 Apache Maven,这两个是Spring MVC项目的基础。Maven是Java项目的构建工具,它管理项目依赖...
Spring MVC是Spring框架的一部分,专门用于构建Web应用程序的Model-View-Controller(MVC)架构。它提供了一个灵活的模型绑定机制,可以将HTTP请求参数与Java对象字段对应起来,同时支持多种视图技术,如JSP、...