ssh整合三种方式(二)

1、搭建ssh开发环境(纯XML配置):

准备工作

创建数据库,创建web工程,创建实体类,编写Service层和Dao层的接口和实现类。

步骤一:搭建Spring开发环境,保证Spring可以独立运行;

  • 测试内容:只需要验证Spring容器为我们创建了实体类对象,我们可以调用service层的方法(service会调用dao层的方法),能正常执行表示Spring环境搭建成功。

步骤二:搭建Hibernate开发环境,保证Hibernate可以独立运行;

  • 测试内容:不需要实现功能,验证可以操作数据库即可。

步骤三:整合Spring和Hibernate;

具体事项:

(1) 把sessionFactory的创建交给Spring管理;
(2) 在Dao层配置使用jdbcTemplate或HibernateTemplate操作数据库,然后在Spring配置文件中配置JdbcTemplate或HibernateTemplate;
(3) 修改hibernate的配置文件,如下:

				<property name="hibernate.current_session_context_class">thread</property>
			改为:
				<property name="hibernate.current_session_context_class">
						org.springframework.orm.hibernate5.SpringSessionContext
				</property>

(3) 配置事务。

步骤四:搭建Struts2开发环境,保证Struts2可以独立运行;

步骤五:整合Spring和Struts2;

具体事项:
(1) 在web.xml中配置如下:

<listener>
	 <listener-class>
		org.springframework.web.context.ContextLoaderListener
	</listener-class>
</listener>
  • 该监听器是ServletContextListener接口的实现类,负责监听ServletContext对象的创建,为我们创建容器,监听ServletContext对象的销毁,销毁容器。

  • ContextLoaderListener 在 spring-web-4.2.4.RELEASE.jar中
    所以我们要先导入这个jar包。

  • 此监听器只能读取WEB-INF目录中的名称为applicationContext.xml的配置文件。这显然限制了我们的配置。
    我们可以通过配置全局初始化参数的方式,指定spring配置文件的位置.具体配置方法 我们在第二种方法中进行阐述。

(2) 把Spring的配置文件applicationContext.xml放到WEB-INF目录下。

第二种方式: 其实就是对第一种搭建方式的优化:

优化步骤如下:

  • 把第一种方式中的hibernate主配置文件的内容配置到Spring的配置文件中;
    hibernate主配置文件其实就是配置了sessionFactory,现在我们把他们都配置为sessionFactory的属性,如下:
 <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
 	<!-- 连接数据库的基本信息 -->
 	<!-- 1.配置数据源 -->
 	<property name="dataSource" ref="dataSource"></property>
 	<!-- 2.hibernate的基本配置 -->
 	<property name="hibernateProperties">
 		<props>
 			<!-- mysql的方言配置 -->
			<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
			<!-- 配置是否显示sql语句 -->
			<prop key="hibernate.show_sql">true</prop>
			<!-- 配置是否格式化SQL语句 -->
			<prop key="hibernate.format_sql">false</prop>
			<!-- 配置自动根据model对象来更新表结构 -->
			<prop key="hbm2ddl.auto">update</prop>
			<!-- 配置使用当前线程上绑定的session-->
			<prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate5.SpringSessionContext</prop>		
 		</props>
 	</property>
 	<property name="mappingLocations">
 		<array>
 			<value>classpath:cn/com/pojo/*.hbm.xml</value>
 		</array>
 	</property>
 </bean>
 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
 	<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
 	<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/environment_S2S4H5"></property>
 	<property name="user" value="root"></property>
 	<property name="password" value="123456"></property>
 </bean>
  • 手动指定配置文件的位置;

把配置文件放到指定的包中
需要在web.xml中手动指定配置文件的位置,如下:

  • 分配置文件编写Spring和Struts2的配置;

    我们原来是把所有的配置都配置到一个applicationContext.xml文件中,但是那样写的话会非常的乱,
    我们可以写四个Spring配置文件(如下图)
    在这里插入图片描述
    在applicationContext-customer.xml中只配与customer相关的配置,在applicationContext-jdbc.xml中只配与与访问数据库相关的配置,在applicationContext-tx.xml中只配与事务相关的配置,然后在applicationContext.xml中引用前三个配置;
    在applicationContext.xml中的配置如下:

	<import resource="applicationContext-customer.xml"/>
	<import resource="applicationContext-jdbc.xml"/>
	<import resource="applicationContext-tx.xml"/>
  • HibernateDaoSupport的使用;

在Dao层继承 HibernateDaoSupport 类,该类在内部有一个HibernateTemplate属性,并且提供了get方法,我们可以在dao层直接调用get方法得到HibernateTemplate,然后操作数据库;
但是需要传入sessionFactory,所有在配置文件中需要给dao层的实现类添加一个sessionFactory属性。

  • 让Spring接管Action的创建;

在Spring的配置文件中,配置Action,让Spring容器对Action动作类进行初始化,在Struts2的配置文件中我们就可以直接写类名,让struts直接到Spring的容器中拿动作类对象。
Spring中的配置如下:
在这里插入图片描述

struts中的配置如下(不需要写类的全限定类名):

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值