搭建一个struts2+spring+hibernate框架

    我们使用的开发工具是Myeclipse,数据库是mysql

1、创建一个web工程:


建好的项目是:


2、引入jar包

首先我们引入struts2的jar包

在我们下载的struts2的包中struts-2.3.15.3\apps\struts2-blank.war\WEB-INF\lib\*.jar里面存放。

使用JSon的包
struts-2.3.15.3\lib\struts2-json-plugin-2.3.15.3.jar
struts-2.3.15.3\lib\struts2-spring-plugin-2.3.15.3.jar

配置文件:需要配置web.xml和struts.xml

   web.xml

<span style="font-family:KaiTi_GB2312;font-size:18px;"><!--   配置struts2核心过滤器 -->
  <filter>
  	<filter-name>struts2</filter-nam
  	<filter-class>
  		org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  	</filter-class>
  </filter>
  
  <filter-mapping>
  		<filter-name>struts2</filter-name>
  		<url-pattern>/*</url-pattern>
  	</filter-mapping></span>

* struts.xml

因为自己建立的项目中没有所以需要找到一个Struts.xml文件复制过来。可以在自己下载的struts2的包中查找。


在项目中的结果


第二个是Spring

* jar包:
Spring3.2 开发最基本jar包
spring-beans-3.2.0.RELEASE.jar
spring-context-3.2.0.RELEASE.jar
spring-core-3.2.0.RELEASE.jar
spring-expression-3.2.0.RELEASE.jar
com.springsource.org.apache.commons.logging-1.1.1.jar
com.springsource.org.apache.log4j-1.2.15.jar
AOP开发
spring-aop-3.2.0.RELEASE.jar
spring-aspects-3.2.0.RELEASE.jar
com.springsource.org.aopalliance-1.0.0.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
Spring Jdbc开发
spring-jdbc-3.2.0.RELEASE.jar
spring-tx-3.2.0.RELEASE.jar
Spring事务管理
spring-tx-3.2.0.RELEASE.jar
Spring整合其他ORM框架整合Hibernate
spring-orm-3.2.0.RELEASE.jar
Spring在web中使用
spring-web-3.2.0.RELEASE.jar
Spring整合Junit测试
spring-test-3.2.0.RELEASE.jar
     拷贝一个applicationContext.xml可以在Spring开发的jar包里面查找。


拷贝的位置


* 配置文件:web.xml和applicationConte.xml
 * web.xml

<span style="font-family:KaiTi_GB2312;font-size:18px;"> <!-- 配置Spring的核心监听器 -->
   <listener>
   	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>	
   <context-param>   <!-- 全局的参数 -->
   	<param-name>contextConfigLocation</param-name>
   	<param-value>classpath:applicationContext.xml</param-value>
   </context-param></span>
  * applicationContext.xml
  * log4j.properties
 
* Hibernate:
* jar包:
* hibernate-distribution-3.6.10.Final\hibernate3.jar
* hibernate-distribution-3.6.10.Final\lib\required\*.jar
* hibernate-distribution-3.6.10.Final\lib\jpa\*.jar
* slf4j-log4j整合的jar包 :
* 数据库驱动:
* 连接池:(c3p0连接池)
* 配置文件:Hibernate的配置文件是可以被整合到spring中的。
* 没有hibernate的核心配置文件的方式整合:
* 映射文件:是必须要有的。

解释一下这里的映射文件是指:


 
 配置基本配置信息: C3P0连接池:和事物管理以及一些Hibernate的一些信息,这些都可以在spring中进行的。
* C3P0连接池:
* 引入外部属性文件:
* jdbc.properties

内容:
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql:///shop
jdbc.user = root
jdbc.password =root



* 配置连接池:在spring的文件applicationContext.xml中进行配置。

<span style="font-family:KaiTi_GB2312;font-size:18px;"><!-- 配置连接池: -->
	<!-- 引入外部属性文件 -->
	<context:property-placeholder location="classpath:jdbc.properties"/>
	<!-- 配置C3P0连接池: -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="${jdbc.driver}"/>
		<property name="jdbcUrl" value="${jdbc.url}"/>
		<property name="user" value="${jdbc.user}"/>
		<property name="password" value="${jdbc.password}"/>
	</bean><span style="font-family: KaiTi_GB2312; background-color: rgb(255, 255, 255);">	</span><span style="font-family: KaiTi_GB2312; background-color: rgb(255, 255, 255);"> </span>
* Hibernate相关信息:也是在applicationContext.xml
<pre name="code" class="html"><bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
	<!-- 注入连接池 -->
	<property name="dataSource" ref="dataSource"/>
	<!-- 配置Hibernate的其他的属性 -->
	<property name="hibernateProperties">
		<props>
		<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
			<prop key="hibernate.show_sql">true</prop>
			<prop key="hibernate.format_sql">true</prop>
			<prop key="hibernate.connection.autocommit">false</prop>
			<prop key="hibernate.hbm2ddl.auto">update</prop>
		</props>
	</property>
	<!-- 配置Hibernate的映射文件  如果有映射文件的话可以在这里进行配置 
        <property name="mappingResources">
<span style="white-space:pre">	</span>    <list>
<span style="white-space:pre">	</span>      <value>cn/itcast/shop/user/vo/User.hbm.xml</value>
             </list>
<span style="white-space:pre">	</span></property>
       -->
</bean></span>


 
 * 事务管理:也是在applicationContext.xml 
<span style="font-family:KaiTi_GB2312;font-size:18px;"><!-- 事务管理: -->
	<!-- 事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
	<property name="sessionFactory" ref="sessionFactory"/>
</bean>
	
 <!-- 开启注解事务 -->
<tx:annotation-driven transaction-manager="transactionManager"/></span>

3.引入页面:
 引入静态页面:我们的页面一般不会直接放到webroot 下面因为在这里可以直接被浏览器访问到,我们一般放到web-inf中

我们可以编写一个JSP页面,可以创建一个默认的JSP命名为Index。


* 在WEB-INF/jsp/
* 将静态页面复制到jsp下.
* 将css/js 放到 WebRoot下.

下面只是一个例子图片


7. 访问首页:只是完成了页面的跳转
建包的格式:
* cn.itcast.shop.index
* action
* cn.itcast.shop.user
* action
* service
* dao
* vo

下面图片只是一个例子


4. 编写Action:
* IndexAction

  

<span style="font-family:KaiTi_GB2312;font-size:18px;">package cn.itcast.shop.index.action;
import com.opensymphony.xwork2.ActionSupport;

public class IndexAction extends ActionSupport {
	public String execute(){
		return "index";
	}
}
</span>


5. 配置Action
* 配置applicationContext.xml 这是使用Spring来管理我们的Action

<span style="font-family:KaiTi_GB2312;font-size:18px;"><!-- Action的配置  将我们的Action交给Spring管理 ===========================-->
	
	<!-- 首页访问的Action -->
	<bean id="indexAction" class="cn.itcast.shop.index.action.IndexAction" scope="prototype">
		<property name="categoryService" ref="categoryService"/>
		<property name="productService" ref="productService"/>
	</bean></span>

配置struts.xml

<span style="font-family:KaiTi_GB2312;font-size:18px;"><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	<constant name="struts.devMode" value="false" />

	<package name="shopTest" extends="struts-default" namespace="/">
		<!-- 配置首页访问的Action -->
		<action name="index" class="indexAction">
			<result name="index">/WEB-INF/jsp/index.jsp</result>
		</action>
	</package>
</struts>
</span>
整个项目的目录结构


接下来我们就可以在浏览器中访问了。ip:端口号/项目名字/需要跳转的Action



     在这个项目中如果我们没有在mysql中创建一个mysql数据库,暂时不用建表,那么我们的hibernate配置就没有使用到,所以在启动的时候要将hibernate配置注释掉。

     咱们框架搭建好了之后接下来会详细的解析的。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值