Java之基於Eclipse搭建SSH框架(下)

在上篇博客裏,我簡介了Tomcat滴配置與Struts2滴搭建,假設對這個還不會滴童鞋去看一下我滴上篇博客《Java之基於Eclipse搭建SSH框架(上)》。今天咱們接着上篇博客滴內容。繼續搭建咱們滴SSH框架。
(一)在上篇博客滴基礎上整合Spring:
首先咱們把Spring所需要的jar(上篇博客有),拷貝到WebContent下的WEB-INF下的lib裏面。java

其次在src下建立名爲:applicationContext.xml文件。(有些人提示在WEB-INF下建立)我的建議在src下建立
Spring配置文件有兩種格式:DTD格式。Schema格式。
基於DTD格式的配置文件格式例如如下:mysql

web

<?xml version="1.0" encoding="UTF-8"?

> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <beans> <!-- Service配置 --> <bean id="loginService" class="com.hy.service.impl.LoginServiceImpl" /> </beans>

Schema格式的配置文件擁有本身的命名空間。格式例如如下:spring

sql

<?xml version="1.0" encoding="UTF-8"?

> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- Service配置 --> <bean id="loginService" class="com.hy.service.impl.LoginServiceImpl" /> </beans>

這裏我用的是另一種配置方式。applicationContext.xml內容爲:數據庫

<?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
        <!-- Service配置 -->
        <bean id="loginService" class="com.hy.service.impl.LoginServiceImpl" />
        <!-- Action配置 -->
        <bean id="loginServer" class="com.hy.action.LoginAction" scope="prototype">
            <property name="loginService" ref="loginService"></property>
        </bean>
    </beans>

在struts裏面這樣配置就可以了:apache

<package name="struts2" extends="struts-default">
        <!-- 此處的class的內容要與Spring配置文件裏的bean的id一樣 -->
        <action name="Login" class="loginServer">
            <result name="success">/result.jsp</result>
            <result name="input">/login.jsp</result>
        </action>
    </package>

這裏要注意的是在struts.xml文件裏面的action配置中。class=」「與咱們上篇博客講的Struts搭建不同了。這裏的class內容與applicationContext.xml裏面的Action配置bean的id是一樣的!markdown

。!session


其次在web.xml咱們需要在加入如下這些代碼:app

<!-- 用來定位Spring框架配置文件 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext*.xml,classpath*:applicationContext*.xml</param-value>
    </context-param>
    <!-- 配置Spring監聽 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

這樣集成Spring所要配置的文件算是結束了,另外一點要強調整合Struts與Spring需要一個jar(struts2-spring-plugin-2.3.8.jar)。這個jar我放到了struts2所需jar裏面了,加入了這個jar纔算把Struts與Spring整合在一塊兒了。
在集成Hibernate前,說一下關於Spring XML文件上下文配置問題。

applicationContext.xml事實上這個文件可以保存到classpath或者WEB-INF文件下。隨着項目增大,Spring的配置文件也會變得龐大,可以依據已定的原則分爲幾個配置文件。從而使配置更加清晰。提升可維護性。上面代碼中的寫法是查找classpath和WEB-INF文件下所有的配置文件(好多人都說了當中一種。假設寫的查找和文件保存位置不同。就會報錯哦~)。


測試一下,整合狀況,效果圖例如如下:
這裏寫圖片描寫敘述
莫急哈~~demo我會在如下給你們,請你們看清裏面的網址,因爲這個demo裏面也包含最後SSH的搭建測試。
(二)集成Hibernate
首先仍是把Hibernate所需要的jar(上篇博客有)。拷貝到WebContent下的WEB-INF下的lib裏面。而後在applicationContext.xml中加入如下的配置:

<!-- 配置數據源 -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <!-- 指定鏈接數據庫的驅動 -->
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <!-- 指定鏈接數據庫的URL -->
        <property name="url" value="jdbc:mysql://localhost:3306/test" />
        <!-- 指定鏈接數據庫的用戶名 -->
        <property name="username" value="root" />
        <!-- 指定鏈接數據庫的密碼 -->
        <property name="password" value="" />
    </bean>
    <!-- 配置SessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource">
            <ref bean="dataSource" />
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">
                    org.hibernate.dialect.MySQLDialect
                </prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="hibernate.connection.autocommit">true </prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="sql_format">true</prop>
            </props>
        </property>
        <property name="mappingResources">
            <!-- 指定hibernate映射文件 -->
            <list>
                <value>com/hy/entity/User.hbm.xml</value>
            </list>
        </property>
    </bean>

到這裏框架就算搭建完成了。

有人會有疑惑。不是要建立hibernate.cfg.xml或者hibernate.properties配置嘛。事實上在上面的配置文件裏,你是否是發現有一個bean中的文件特別像這兩個文件裏的內容嘛。事實上這樣就可以了,不用再建立那兩個文件了。
在此說明一下假設你的數據庫是MySQL配置依照上面那種方式配置,別忘了加入相應的jar(有人告訴我:jar包也要與本身的數據版本號相應,不然連不上)。假設你的數據庫是Oracle,配置依照如下圖中進行配置。
這裏寫圖片描寫敘述
最後在說一下Hibernate映射文件(類與表之間的關係映射)

<hibernate-mapping>
    <class name="類名" table="表名">
        <!-- 主鍵 -->
        <id name="主鍵名">
            <column name="主鍵列" />
            <!-- 主鍵生成器 -->
            <generator class="生成策略" />
        </id>
        <property name="屬性名" type="數據類型">
            <column name="列名" length="長度" not-null="是否不爲空" />
        </property>
    </class>
</hibernate-mapping>

測試一下,效果圖:

這裏寫圖片描寫敘述

這裏寫圖片描寫敘述

這裏寫圖片描寫敘述

搭建SSH到這裏就結束啦。若有疑問。請給我留言~~
最近有小夥伴反映。看了偶滴博客而後跟着作仍是報錯,總結了他們的錯誤這裏我簡單說明一下:
1.假設親尚未配置Spring,就不要把(struts2-spring-plugin-2.3.8.jar)。這個jar包提早導入到項目裏(這是我滴錯。把這個jar包放到struts所需的包包裏面了)。假設按個人博客驗證struts時出錯。那就把這個包刪除就能夠。(整合Spring別忘了導入哦~)
2.就是配置問題:(上圖,有圖有真相~)
這裏寫圖片描寫敘述

這裏寫圖片描寫敘述

這裏寫圖片描寫敘述

這裏寫圖片描寫敘述

這裏寫圖片描寫敘述
配置文件和代碼裏面的名字要相應,否則就出錯哦~
3.就是咱們的框架用到Hibernate,童鞋們都知道寫映射表,但是別忘了配置文件裏指定。
這裏寫圖片描寫敘述

最後附上:
demo地址

相關文章
相關標籤/搜索