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