Struts+spring+Hibernate+Mysql--环境搭建

    看完SSH的day01,基本上理解了一条线的过程,但那种感觉就像是盲人摸象一样,有了一些的代码经验之后,又回头重新看了一下SHH网上商城环境的搭建;拨开云雾见晴天,总结一下环境搭建的过程;


一.导航地图

    第一天完成之后的,导航地图如下;

        


    下图是对上面导航视图中基本内容的分析,同时也是搭建过程。

二.宏观三步骤:


    1.创建Web工程,选择JavaEE 5.5;

    2.jar包的引入和配置文件的设置;(总结配置文件)


1).struts2:

   在Web.xml中,配置struts2核心过滤器;

	<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>/*</url-pattern>
	</filter-mapping>
    在Struts.xml中配置页面转向;

<struts>
   <constant name="struts.devMode" value="false" />
	<package name="Shop" extends="struts-default" namespace="/">
	 <!-- 很多的页面都要往这里跳转;全局  ;带回来一些信息;-->
	<span style="white-space:pre">	</span><global-results>
		<span style="white-space:pre">	</span><result name = "msg">/WEB-INF/jsp/msg.jsp</result>			
	<span style="white-space:pre">	</span></global-results>
	
    <!-- 配置首页访问的Action -->
		<action name="index" class="indexAction">
			<result name="index">/WEB-INF/jsp/index.jsp</result>
		</action>
	<!--  配置用户模块的Action-->
		<action name="user_*" class="userAction"  method="{1}">		
			<result name="registPage">/WEB-INF/jsp/regist.jsp</result>
			<result name = "input">/WEB-INF/jsp/regist.jsp</result>
			<result name = "loginPage">/WEB-INF/jsp/login.jsp</result>				
			<result name = "login">/WEB-INF/jsp/login.jsp</result>					
		</action>
  <span style="white-space:pre">	</span></package>        
</struts>

2).Spring

    在Web.Xml中,配置Spring的核心监听器;

	<!-- 配置Spring的核心监听器 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>		
	</listener>
	<context-param>
	<!-- 全局重要参数 默认加载的web-inf下的applicationContext,需要加载类编译路径下面,所以要配置一个参数classpath:路径为Src下的applicationContext.xml文件-->
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:applicationContext.xml</param-value>
	</context-param>
    applicationContext.xml 属于Spring;

3).Hibernate

    数据库驱动,连接池;

    在applicationContext.xml中配置Hibernate的相关信息;

	 <!-- Hibernate的相关信息 -->
	<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">
	 	<list>
	 	        <value>cn/itcast/shop/user/vo/User.hbm.xml</value>
	 	</list>
	 	</property>
	 		
	 </bean>

    3.基本信息的配置



1.jdbc.properties中配置连接数据库;

</span>jdbc.driver = com.mysql.jdbc.Driver
</span>jdbc.url = jdbc:mysql:///shop
</span>jdbc.user = root
</span>jdbc.password =123456
2.applicationContext.xml中配置;

    配置连接池:

	 <!-- 配置连接池: -->
	<!-- 引入外部属性文件  classpath:jdbc.properties  -->
	<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>
   事务管理

	<!-- 事务管理: -->
	<!-- 事务管理器 -->
	<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"/>
	</bean>
	
	<!-- 开启注解事务 -->
	<tx:annotation-driven transaction-manager="transactionManager"/>
	 
3. Hibernate的相关信息 (上面配置Hibernate的时候已经提到了)

4.各层的配置;

 <span style="white-space:pre">	</span><!-- ===============================Action 的配置=============================-->
	<!-- 首页访问的Action -->
	<bean id="indexAction" class="cn.itcast.shop.index.action.IndexAction" scope="prototype">
	</bean>
	<!-- 用户模块的Action -->
	<bean id="userAction" class="cn.itcast.shop.user.action.UserAction" scope="prototype">
		<!-- 注入Service -->
		<property name="userService" ref="userService"/>
	</bean>	
	<!--================================= Service的配置  ===========================-->
	<bean id="userService" class="cn.itcast.shop.user.service.UserService">
		<property name="userDao" ref="userDao"/>
	</bean>
	<!-- =================================Dao的配置  ===========================-->
	<bean id="userDao" class="cn.itcast.shop.user.dao.UserDao">
		<property name="sessionFactory" ref="sessionFactory"/>
	</bean>


三.总结:

    刚开始的过程,可以先做,有了实践之后,更应该在原理上进行理解,然后再次用已经理解的理论来指导实践,会更加清晰,理论和实践是一个需要不间断磨合的过程,理论是核心,实践的应用;整体上进行了一个理解,在之后的过程中,细化理解的粒度;


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 35
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值