框架搭建撮竿,逆向生成bean類dao類,配置文件(第三天)

第三天骆姐;

框架搭建

1.打開myeclispe

File=>New=>Web Project


image.png

2.輸入項(xiàng)目名 myTest并點(diǎn)擊Finish

點(diǎn)擊Finish

3.添加Spring支持

右鍵項(xiàng)目名
MyEclispe=>Add Spring Capabilities...

image.png

如圖所示我們要選中Spring2.5下面的5項(xiàng)
1.Spring2.5 AOP Libraries
2.Spring2.5 Core Libraries
3.Spring2.5 Persistence Core Libraries
4.Spring2.5 Persistence JDBC Libraries
5.Spring2.5 Web Libraries
然后 Next==》Finish


image.png

2.添加Hibernate支持

右鍵項(xiàng)目名
MyEclispe=>Add Hibernate Capabilities...


image.png
image.png

點(diǎn)擊Next

image.png

繼續(xù)點(diǎn)擊Next镜粤,選中oracle

image.png
image.png

點(diǎn)擊Finish

3.添加Struts2支持

右鍵項(xiàng)目名
MyEclispe=>Add Struts Capabilities...

image.png

如圖所示,選中Struts2.1玻褪,然后點(diǎn)擊Next


image.png

選中兩項(xiàng)肉渴,點(diǎn)擊Finish


image.png

至此S2SH框架搭建完畢

image.png

上面紅框中的都可以去掉,換成jar包带射,儲(chǔ)存在
WebRoot=》WEB-INF=》lib文件夾里面
我把這個(gè)項(xiàng)目涉及到的所有jar同规,js,css窟社,圖片儲(chǔ)存在百度云盤里面捻浦,可供下載

同時(shí)我建立了四個(gè)包,導(dǎo)入了EasyUi所需js桥爽,css和圖片朱灿,使架構(gòu)更清晰

image.png

hibernate逆向工程

1.打開DB Browser視圖


DB Browser視圖

2.雙擊oracle,然后雙擊Connected to oracle钠四,然后雙擊MYDB盗扒,按住Ctrl選中我們的四張表ALLCLASS,ERRORSUBJECT缀去,SUBJECT侣灶,USERINFO,然后右鍵選擇Hibernate Reverse Engineering


3.如圖缕碎,將各個(gè)數(shù)據(jù)補(bǔ)齊褥影,然后點(diǎn)擊Next

image.png

4.id Generator輸入sequence,直接點(diǎn)擊Finish

image.png

5.如圖咏雌,在com.jianshu.bean逆向生成了8個(gè)java類凡怎,4個(gè).hbm.xml文件 校焦,我們把含有DAO的4個(gè)java類移動(dòng)到com.jianshu.dao*

image.png

6.com.jianshu.bean里面有4個(gè)java類,4個(gè)hibernate配置文件统倒,每個(gè)配置文件對(duì)應(yīng)一個(gè)java類(也叫實(shí)體類)寨典,在這里不建議修改

image.png

7.在這里我自己動(dòng)手生成對(duì)應(yīng)的Action,Service

image.png

8.下一步由Spring接管這些java類,我們打開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" 
        xmlns:aop="http://www.springframework.org/schema/aop"
        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.xsd
                        http://www.springframework.org/schema/tx 
                        http://www.springframework.org/schema/tx/spring-tx.xsd">
    <!-- 數(shù)據(jù)源 -->
    <bean id="dataSource"
        class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName"
            value="oracle.jdbc.driver.OracleDriver">
        </property>
        <property name="url"
            value="jdbc:oracle:thin:@127.0.0.1:1521:orcl">
        </property>
        <property name="username" value="mydb"></property>
        <property name="password" value="mydb"></property>
    </bean>
    <!-- 緩沖了HIbernate自動(dòng)生成SQL語句和其他的映射數(shù)據(jù) 還緩沖了一些將來有可能重復(fù)利用的數(shù)據(jù) -->
    <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.Oracle9Dialect
                </prop>
            </props>
        </property>
        <property name="mappingResources">
            <list>
               <!-- 在bean包里面都有對(duì)應(yīng)的配置文件 -->
                <value>com/jianshu/bean/Userinfo.hbm.xml</value>
                <value>com/jianshu/bean/Errorsubject.hbm.xml</value>
                <value>com/jianshu/bean/Subject.hbm.xml</value>
                <value>com/jianshu/bean/Allclass.hbm.xml</value></list>
        </property>
        </bean>
            <!-- Hibernate事務(wù)管理 -->
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory">
            <ref bean="sessionFactory" />
        </property>
    </bean>

    <!-- 配置事務(wù)攔截 -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="insert*" propagation="REQUIRED" />
            <tx:method name="delete*" propagation="REQUIRED" />
            <tx:method name="update*" propagation="REQUIRED" />
            <tx:method name="add*" propagation="REQUIRED" />
            <tx:method name="del*" propagation="REQUIRED" />
            <tx:method name="upd*" propagation="REQUIRED" />
            <tx:method name="*" />
        </tx:attributes>
    </tx:advice>

    <!-- 配置aop房匆,配置對(duì)哪些類的方法進(jìn)行事務(wù)管理耸成,當(dāng)前com.myhopu.service包中的子包、類中所有方法需要 -->
    <aop:config>
        <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.jianshu.service.*.*(..))" />
    </aop:config>
    <!-- dao層 在這里id的首字母要小寫 -->
    <bean id="UserinfoDAO" class="com.jianshu.dao.UserinfoDAO">
        <property name="sessionFactory">
            <ref bean="sessionFactory" />
        </property>
    </bean>
    <bean id="ErrorsubjectDAO"
        class="com.jianshu.dao.ErrorsubjectDAO">
        <property name="sessionFactory">
            <ref bean="sessionFactory" />
        </property>
    </bean>
    <bean id="SubjectDAO" class="com.jianshu.dao.SubjectDAO">
        <property name="sessionFactory">
            <ref bean="sessionFactory" />
        </property>
    </bean>
    <bean id="AllclassDAO" class="com.jianshu.dao.AllclassDAO">
        <property name="sessionFactory">
            <ref bean="sessionFactory" />
        </property>
    </bean>
        <!-- service層   scope="prototype"在這里指單實(shí)例-->
    <bean id="allclassService" class="com.jianshu.service.AllclassService" scope="prototype"/>
    <bean id="subjectService" class="com.jianshu.service.SubjectService" scope="prototype"/>
    <bean id="userinfoService" class="com.jianshu.service.UserinfoService" scope="prototype"/>
    <bean id="errorsubjectService" class="com.jianshu.service.ErrorsubjectService" scope="prototype"/>
    <!-- action層 -->
    <bean id="allclassAction" class="com.jianshu.action.AllclassAction" scope="prototype"/>
    <bean id="subjectAction" class="com.jianshu.action.SubjectAction" scope="prototype"/>
    <bean id="userinfoAction" class="com.jianshu.action.UserinfoAction" scope="prototype"/>
    <bean id="errorsubjectAction" class="com.jianshu.action.ErrorsubjectAction" scope="prototype"/>
    </beans>

9.如圖浴鸿,是不是發(fā)現(xiàn)Spring中對(duì)應(yīng)的java文件圖標(biāo)右上角出現(xiàn)個(gè)“S”井氢,這就證明配置生效


image.png

同時(shí)在上圖我們看見了三個(gè)xml后綴的文件
分別是
1.web.xml ---------------------------用來初始化工程配置信息,啟動(dòng)加載級(jí)別岳链,寫過濾器或監(jiān)聽器等配置文件
2.struts.xml---------------------------判斷要調(diào)用哪個(gè)Action去處理用戶請(qǐng)求
3.applicationContext.xml---------ApplicationContext的中文意思是“應(yīng)用前后關(guān)系”毙沾,它繼承自BeanFactory接口,除了包含BeanFactory的所有功能之外宠页,在國際化支持左胞、資源訪問(如URL和文件)、事件傳播等

在這之中
applicationContext.xml已經(jīng)配置好了
讓我們看看web.xml把

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <display-name></display-name>
  <!-- 指定了首頁举户,顯示時(shí)按順序從第一個(gè)找起烤宙,如果第一個(gè)存在,就顯示第一個(gè)俭嘁,后面的不起作用躺枕。如果第一個(gè)不存在,就找第二個(gè)供填,以此類推拐云。 -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <!-- 用來定位applicationContext.xml文件的上下文配置 -->  
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext*.xml</param-value>
  </context-param>
  <filter>
  <!--   Hibernate 允許對(duì)關(guān)聯(lián)對(duì)象、屬性進(jìn)行延遲加載近她,
          但是必須保證延遲加載的操作限于同一個(gè) Hibernate Session 范圍之內(nèi)進(jìn)行叉瘩。
          如果 Service 層返回一個(gè)啟用了延遲加載功能的領(lǐng)域?qū)ο蠼o Web 層,
          當(dāng) Web 層訪問到那些需要延遲加載的數(shù)據(jù)時(shí)粘捎,
          由于加載領(lǐng)域?qū)ο蟮?Hibernate Session 已經(jīng)關(guān)閉薇缅,這些導(dǎo)致延遲加載數(shù)據(jù)的訪問異常
          而Spring為我們提供的OpenSessionInViewFilter過濾器為我們很好的解決了這個(gè)問題。
          OpenSessionInViewFilter的主要功能是用來把一個(gè)Hibernate Session和一次完整的請(qǐng)求過程對(duì)應(yīng)的線程相綁定攒磨。
          目的是為了實(shí)現(xiàn)"Open Session in View"的模式 -->
    <filter-name>openSessionInViewFilter</filter-name>
    <filter-class>
        org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    </filter-class>
  </filter>
  <!-- struts2過濾器 -->
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
  </filter>
  <!-- 啟用延遲加載(openSessionInViewFilter) -->
  <filter-mapping>
    <filter-name>openSessionInViewFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <!-- 啟用struts2過濾器 -->
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>*.action</url-pattern>
  </filter-mapping>
  <!-- 配置Spring監(jiān)聽 -->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
</web-app>

接著我們打開strus.xml,添加包名

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
    <package name="default" namespace="/answer" extends="struts-default">
    
    </package>
</struts>    

第三天總結(jié)
1.搭建S2SH框架
2.逆向生成Dao泳桦,bean
3.對(duì)三個(gè)配置文件要理解
第四天:登錄

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市娩缰,隨后出現(xiàn)的幾起案子灸撰,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浮毯,死亡現(xiàn)場(chǎng)離奇詭異完疫,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)亲轨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門趋惨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鸟顺,“玉大人惦蚊,你說我怎么就攤上這事⊙渡” “怎么了蹦锋?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)欧芽。 經(jīng)常有香客問我莉掂,道長(zhǎng),這世上最難降的妖魔是什么千扔? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任憎妙,我火速辦了婚禮,結(jié)果婚禮上曲楚,老公的妹妹穿的比我還像新娘厘唾。我一直安慰自己,他們只是感情好龙誊,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布抚垃。 她就那樣靜靜地躺著,像睡著了一般趟大。 火紅的嫁衣襯著肌膚如雪鹤树。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天逊朽,我揣著相機(jī)與錄音罕伯,去河邊找鬼。 笑死叽讳,一個(gè)胖子當(dāng)著我的面吹牛捣炬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绽榛,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼湿酸,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了灭美?” 一聲冷哼從身側(cè)響起推溃,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎届腐,沒想到半個(gè)月后铁坎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜂奸,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年硬萍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扩所。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡朴乖,死狀恐怖祖屏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情买羞,我是刑警寧澤袁勺,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站畜普,受9級(jí)特大地震影響期丰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吃挑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一钝荡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧舶衬,春花似錦埠通、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至圾浅,卻和暖如春掠手,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背狸捕。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國打工喷鸽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人灸拍。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓做祝,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親鸡岗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子混槐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法轩性,內(nèi)部類的語法声登,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,581評(píng)論 18 399
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,748評(píng)論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理悯嗓,服務(wù)發(fā)現(xiàn)件舵,斷路器,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,790評(píng)論 0 11
  • 我不難過 這不算什么 只是為什么眼淚會(huì)流我也不懂 孫燕姿的歌詞里這樣對(duì)自己說临梗。 “別哭了” “別傷心,一切都會(huì)好起...
    熙fun心理閱讀 553評(píng)論 2 2