本文爲系列攻略,如何搭建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,算是實戰吧,估計很快就會搞定的。