【SSH框架搭建】Spring,Struts2,Hibeinate終極攻略(一)

本文爲系列攻略,如何搭建SSH框架並且進行實戰。

這一篇首先將搭建框架。

1.開發工具:MyEclipse2015

2.開發框架:Struts-2.3.15.3,Spring 3.2,Hibernate-distribution-3.6.10

3.框架介紹:

       (1)Struts:Struts2是一個基於MVC設計模式的Web應用框架,它本質上相當於一個servlet,在MVC設計模式中,Struts2作爲控制器(Controller)來建立模型與視圖的數據交互。Struts 2是Struts的下一代產品,是在 struts 1和WebWork的技術基礎上進行了合併的全新的Struts 2框架。其全新的Struts 2的體系結構與Struts 1的體系結構差別巨大。Struts 2以WebWork爲核心,採用攔截器的機制來處理用戶的請求,這樣的設計也使得業務邏輯控制器能夠與ServletAPI完全脫離開,所以Struts 2可以理解爲WebWork的更新產品。雖然從Struts 1到Struts 2有着太大的變化,但是相對於WebWork,Struts 2的變化很小。

       (2)Spring:Spring能有效地組織你的中間層對象,無論你是否選擇使用了EJB。如果你僅僅使用了Struts或其他的包含了J2EE特有APIs的framework,你會發現Spring關注了遺留下的問題。Spring能消除在許多工程上對Singleton的過多使用。根據我的經驗,這是一個主要的問題,它減少了系統的可測試性和麪向對象特性。

Spring能消除使用各種各樣格式的屬性定製文件的需要,在整個應用和工程中,可通過一種一致的方法來進行配置。曾經感到迷惑,一個特定類要查找迷幻般的屬性關鍵字或系統屬性,爲此不得不讀Javadoc乃至源編碼嗎?有了Spring,你可很簡單地看到類的JavaBean屬性。倒置控制的使用(在下面討論)幫助完成這種簡化。

Spring能通過接口而不是類促進好的編程習慣,減少編程代價到幾乎爲零。

Spring被設計爲讓使用它創建的應用盡可能少的依賴於他的APIs。在Spring應用中的大多數業務對象沒有依賴於Spring。

       (3)Hibeinate:Hibernate是一個開放源代碼的對象關係映射框架,它對JDBC進行了非常輕量級的對象封裝,它將POJO與數據庫表建立映射關係,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。

4.其他框架使用:Amaze UI,jQuery。

 

二、框架配置

1.Struts2的配置過程

(1)引用的jar包:

       *jar包:

struts-2.3.15.3\apps\struts2-blank.war\WEB-INF\lib\*.jar

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

       將jar包放到/WebRoot/WEB-INF/lib文件夾下,然後右鍵項目->Properties,彈出界面,選擇Java Build Path,點擊add jars,選擇剛纔的目錄,把jar包都添加進來。

   (2)在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複製到src目錄下

              <?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPEstruts PUBLIC

    "-//Apache Software Foundation//DTD StrutsConfiguration 2.3//EN"

    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

 

   <constantname="struts.enable.DynamicMethodInvocation"value="false"/>

   <constantname="struts.devMode"value="false"/>

   <packagename="default"namespace="/"extends="struts-default">

   </package>

</struts>

2.Spring配置

(1)引用的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框架

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

(2)配置web.xml:

       <!--配置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>

(3) *applicationContext.xml

* log4j.properties

三、Hibeinate配置:

(1)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的核心配置文件的方式整合:

* 映射文件:

(2)配置基本的信息:

* C3P0連接池:

* 引入外部屬性文件:

* jdbc.properties

* 配置連接池:

       <!-- 配置連接池: -->

       <!-- 引入外部屬性文件 -->

       <context:property-placeholderlocation="classpath:jdbc.properties"/>

       <!-- 配置C3P0連接池: -->

       <beanid="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource">

              <propertyname="driverClass" value="${jdbc.driver}"/>

              <propertyname="jdbcUrl" value="${jdbc.url}"/>

              <propertyname="user" value="${jdbc.user}"/>

              <propertyname="password" value="${jdbc.password}"/>

       </bean>

 

* Hibernate相關信息:

       <!-- Hibernate的相關信息 -->

       <beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

              <!-- 注入連接池 -->

              <propertyname="dataSource" ref="dataSource"/>

              <!-- 配置Hibernate的其他的屬性 -->

              <propertyname="hibernateProperties">

                     <props>

                            <propkey="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>

                            <propkey="hibernate.show_sql">true</prop>

                            <propkey="hibernate.format_sql">true</prop>

                            <propkey="hibernate.connection.autocommit">false</prop>

                            <propkey="hibernate.hbm2ddl.auto">update</prop>

                     </props>

              </property>

              <!-- 配置Hibernate的映射文件 -->

             

       </bean>

 

* 事務管理:

       <!-- 事務管理: -->

       <!-- 事務管理器 -->

       <beanid="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager">

              <propertyname="sessionFactory" ref="sessionFactory"/>

       </bean>

      

       <!-- 開啓註解事務 -->

       <tx:annotation-driventransaction-manager="transactionManager"/>

 

到這裏,配置結束,啓動Tomcat,可以啓動。



如果你覺得還是搞不定,那麼我建議直接只用我提供的文件複製進來就行了。

地址:鏈接:http://pan.baidu.com/s/1i5wMMeL 密碼:g2ey


只有web.xml是放在web-inf下,其他的文件複製到src目錄下。


同時要注意jdbc.properties

jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql:///這要填你的數據庫名稱
jdbc.user = 數據庫賬號
jdbc.password =數據庫密碼

這個一定要修改,不然的話,tomcat會無法啓動


如果你懶得去搞jar包的話,我直接把需要用的jar打包,下載下來複制到lib進去就可以了。

鏈接:http://pan.baidu.com/s/1mhN4RLe 密碼:ms24


這樣的話,應該是會可以了,其實搭建SSH框架很簡單。無非就是兩步:

第一:加入jar,並且要進行add jars操作

第二:把配置文件都複製進去搞好就可以了。

文章寫的有點亂,排版不太好,湊合看吧。。。


這只是第一篇,這是簡單的做好了框架,後續我會完成在這個框架的基礎上做幾個demo,算是實戰吧,估計很快就會搞定的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章