几大框架整合知识点总结

1、hibernate与spring整合

在我的理解力spring与hibernate的整合,无非是sessionfactory由spring创建。

配置文件如下

	<!-- 3:spring整合hibernate的核心 -->
	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource">
			
		</property>
		<property name="configLocation">
			<value>
				classpath:hibernate.cfg.xml
			</value>
		</property>
	</bean>
在这里我们还需要掌握hibernate的另一个知识点,如下一段代码很重要

HibernateDaoSupport这个类是hibernate与spring整合是才有的。非常重要。

public class CommonDaoImpl<T> extends HibernateDaoSupport implements CommonDao<T> {
	
	/**T型转换*/
	Class entityClass = TUtil.getActualType(this.getClass());
	
	@Resource(name="sessionFactory")
	public void setDi(SessionFactory sessionFactory){
		this.setSessionFactory(sessionFactory);
	}
下面这段代码在写基类时,貌似百分百用到

	public static Class getActualType(Class entity) {
		ParameterizedType parameterizedType = (ParameterizedType) entity.getGenericSuperclass();
		Class entityClass = (Class) parameterizedType.getActualTypeArguments()[0];
		return entityClass;
	}
下面给几个方法吧,掌握这些基本上spring与hibernate的整合也就没啥了

	public void save(T entity) {
		this.getHibernateTemplate().save(entity);
	}
	
	/**更新*/
	public void update(T entity) {
		this.getHibernateTemplate().update(entity);
	}
	
	/**使用主键ID,查询对象*/
	public T findObjectByID(Serializable id) {
		return (T) this.getHibernateTemplate().get(entityClass, id);
	}
	
	public T findObjectBySno(Serializable sno) {
		return (T) this.getHibernateTemplate().get(entityClass, sno);
	}
	
	/**删除(使用主键ID删除)*/
	public void deleteObjectByIds(Serializable... ids) {
		if(ids!=null && ids.length>0){
			for(Serializable id:ids){
				//先查询
				Object entity = this.findObjectBySno(id);
				//再删除
				this.getHibernateTemplate().delete(entity);
			}
		}
	}

接下来讲解spring与struts2的整合

这个整合其实就是struts动作类的对象由spring创建,更重要的是它是javaweb的集合,已启动容器,我们所说的启动tomcat,spring就要工作起来,

如果要实现struts的对象由spring创建,那么我们要做哪些配置呢。

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:beans.xml</param-value>
  </context-param>
  
      <filter>
    <display-name>SystemUtils</display-name>
    <filter-name>SystemUtils</filter-name>
    <filter-class>jsu.java.ld.utls.SystemUtils</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>SystemUtils</filter-name>
    <url-pattern>*.do</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>SystemUtils</filter-name>
    <url-pattern>*.jsp</url-pattern>
  </filter-mapping>
  
  <filter>
    <filter-name>openSessionInViewFilter</filter-name>
    <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>openSessionInViewFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>*.do</url-pattern>
    <url-pattern>*.jsp</url-pattern>
  </filter-mapping>
  


其实这个注解就两层含义,已启动tomcat,spring就工作起来,创建对象,通过监听器实现,

下面还有一个注解是告诉struts,动作类的对象由spring创建。


下面我们来学习一下spring 和mybatis整合把

首先sqlsesion由spring来创建,看配置文件

<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
	<!-- 数据源 -->
	<property name="dataSource" ref="dataSource"/>
	<!-- 配置SqlMapConfig.xml -->
	<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"/>
	
</bean><pre name="code" class="html"><bean id="userDao" class="cn.itcast.ssm.dao.old.UserDaoImpl">
	注入会话工厂
	<property name="sqlSessionFactory" ref="sqlSessionFactoryBean"/>
</bean> 

 同时dao层编写案例 

public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {
	

	@Override
	public User findUserById(int id) throws Exception {
		//创建SqlSession
		SqlSession sqlSession = this.getSqlSession();
		
		return sqlSession.selectOne("test.findUserById", id);
	}

}


mybatis还提供了我们一个更好的东西,动态代理

我们只需要写dao层接口就可以了

首先配置mybatis文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
     http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

	<!--mybatis  sessionFactory配置-->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"/>
		<!-- 读取配置文件,在xml中需要用classpath,如果是指明哪个包,或哪个类,就如同import一样 -->
		<!-- <property name="mapperLocations" value="classpath:jsu/java/ld/core/dao/*.xml"/> -->
		<!--别名  -->
		<property name="typeAliasesPackage" value="jsu.java.ld.core.bean"/>
	</bean>
	
	 <!-- 扫包  -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage"  value="jsu.java.ld.core.dao"/>
	</bean>
	
</beans>
但是这里要注意,xml文件和dao接口前缀名相同,并且在相同目录下,原因下段配置。

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage"  value="jsu.java.ld.core.dao"/>
	</bean>




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当涉及到SSM框架(Spring + Spring MVC + MyBatis)时,以下是一些常用的知识点: 1. Spring框架:IoC(控制反转)和AOP(面向切面编程)概念,以及Spring的核心模块和特性。 2. Spring MVC:控制器、视图解析器、处理器映射器等基本概念,以及如何处理HTTP请求和响应。 3. MyBatis:ORM(对象关系映射)框架,映射数据库表和Java对象之间的关系,以及如何执行SQL语句和进行事务管理。 4. 数据库操作:使用MyBatis进行数据库的增删改查操作,包括使用注解和XML配置两种方式。 5. 事务管理:使用Spring的声明式事务管理,配置事务的传播行为和隔离级别,确保数据的一致性和完整性。 6. 异常处理:处理业务逻辑中的异常,使用Spring的异常处理机制和全局异常处理器。 7. 日志管理:使用日志框架(如Log4j、Logback)记录系统运行过程中的日志信息。 8. 单元测试:使用JUnit等单元测试框架进行代码的单元测试,保证代码的质量和可靠性。 9. 配置文件:配置Spring和MyBatis的相关配置文件,包括数据源配置、Bean的定义和依赖注入等。 10. 整合其他技术:如整合Redis、RabbitMQ等第三方技术,实现缓存、消息队列等功能。 这些是SSM框架中的一些常用知识点,涵盖了Spring、Spring MVC和MyBatis的基本概念和使用方法。希望对您有所帮助!如有更多问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值