Spring部分模块概念解析

本文详细介绍了Spring框架中的三大核心模块:AOP模块、DAO模块及ORM支持。AOP模块通过面向切面编程增强了代码的复用性,DAO模块简化了JDBC的操作并提供了异常处理的抽象层,而ORM支持则简化了对象关系映射的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,AOP模块:

       1,什么是AOP:

              我对aop的理解是面向切面编程,也称为横向编程,在之前的动态代理的文章中也介绍过AOP的编程思想,关于AOP的实例。a,serlvet中我们写到的过滤器filters      b,service中对事务进行的统一管理     c,Spring中的拦截器

       2, AOP模块的定义:

           Spring在它的AOP模块中提供了对面向切面编程的丰富支持。例如方法拦截器(method-interceptors)和切点(pointcuts),可以有效的防止代码上功能的耦合,这个模块是在Spring应用中实现切面编程的基础。

二,DAO模块:

1,Spring对DAO的支持:(dataSource的作用)

直接通过配置来理解吧:

a,dataSource  注入数据源

 <bean name="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="${jdbc.driverClass}"></property>
		<property name="url" value="${jdbc.jdbcUrl}"></property>
		<property name="username" value="${jdbc.user}"></property>
		<property name="password" value="${jdbc.password}"></property>
</bean>

b,配置properties

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/zufang
jdbc.user=root
jdbc.password=a

c,数据源dataSource注入到SqlSession工厂

<bean name="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>	
		<!-- 优化:不需要mybatis的配置文件  ,配置mybatis中别名  , typeAliases -->
		<property name="typeAliasesPackage">
			<array>
				<value>com.yc.bean</value>
			</array>
		</property>	
		<property name="mapperLocations" value="classpath*:com/yc/mapper/*.xml"></property>	
		<!-- mybatis的属性配置-->
		<!-- 主要用来配mybatis中的configuration中的setting配置 -->
		<property name="configurationProperties">
			<props>
				<prop key="logImpl">LOG4J</prop>
			</props>
		</property>
</bean>

d,配置SqlSession

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
		<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
</bean>

 2,JDBC抽象:

Spring中JDBC抽象框架由四个包组成,核心的包JDBCTemplate,为Spring框架提供JDBC的支持与使用。

JDBC抽象的意义:

       对于传统的JDBC,在书写工具类的时候,对于Connection,PreparedStatement,ResultSet用到了大量的try-catch-finally块,代码重复繁琐的同时,因为抛出的异常统一为SqException异常类,这让我们很难分辨是数据库方面的异常,还是java代码书写上的异常,增加了我们调整Bug的时间。

* Spring JDBC中由于Spring对Dao的支持,数据源写入配置文件,使用的时候调用我们所熟悉的set配置方式来取DirverClassName,Url,Username,Password。在书写Dao层的时候继承SqlSessionDaoSupport,SqlSessionDaoSupport中提供对配置进行检测的方法checkDaoConfig,以及getSqlSession的方法进行数据操作。

* 模板设计模式,代码中的重复的复杂的任务部分在模板类中实现的。这种方式简化了JDBC的使用,因为由它来处理资源的创建和释放。

* 提供一个异常抽象层,一套异常可对应的处理方法。当处理异常时,将SQLException映射到其自己异常层次中的具体的异常上(不再单一的抛出SqlException类)。因此,我们不需要担心专门性的SQL状态或错误代码问题;Spring的数据存取异常不是JDBC特定的,因此你的DAO不必绑定到JDBC(由于其可能抛出的异常)。

三,Spring支持ORM

ORM全称对象关系映射(Object/Relation Mapping),指将Java对象状态自动映射到关系数据库中的数据上,从而提供透明化的持久化支持,即把一种形式转化为另一种形式。

   Spring对ORM的支持主要表现在以下方面:

  • 一致的异常体系结构,对第三方ORM框架抛出的专有异常进行包装,从而在使我们在Spring中只看到DataAccessException异常体系;
  • 一致的DAO抽象支持:提供类似与JdbcSupport的DAO支持类HibernateDaoSupport,使用HibernateTemplate模板类来简化常用操作,HibernateTemplate提供回调接口来支持复杂操作;
  • Spring事务管理:Spring对所有数据访问提供一致的事务管理,通过配置方式,简化事务管理。


  

  

           

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值