第一周學(xué)習(xí)周報(bào)

圖書管理系統(tǒng)

一個(gè)簡(jiǎn)單圖書管理系統(tǒng)的代碼學(xué)習(xí)逊桦,其中運(yùn)用了IO流技術(shù)眨猎,集合,多線程强经,繼承接口等技術(shù)完成了圖書信息睡陪,圖書業(yè)務(wù),工廠業(yè)務(wù)夕凝,權(quán)限管理宝穗,主界面等。該系統(tǒng)采用mvc框架進(jìn)行編寫码秉,通過定義不同類執(zhí)行不同功能逮矛,形成了業(yè)務(wù)分明的執(zhí)行代碼。

IO流部分代碼編寫

//通用的保存對(duì)象的方法

//要寫入文件的序列化對(duì)象-object

//文件路徑? ? ? ? ? ? ? ? ? ? ? ? ? -filePath

public static void SaveObject(Object object,String filePath) {

try (

FileOutputStream fout=new FileOutputStream(filePath,false);

ObjectOutputStream out=new ObjectOutputStream(fout);

) {

out.writeObject(object);

}catch (IOException e) {

e.printStackTrace();

}

}

//從文件中讀取對(duì)象-通用方法

// filePath

public static Object ReadObject(String filePath) {

try(

? FileInputStream fin=new FileInputStream(filePath);

? ObjectInputStream in=new ObjectInputStream(fin);

)

{

return in.readObject();

} catch (IOException e) {

e.printStackTrace();

}catch (ClassNotFoundException e) {

e.printStackTrace();

}

return null;

}


Spring模塊

學(xué)習(xí)的Spring 知識(shí)具體代碼變換:

? java原先實(shí)現(xiàn)方法:

public class Student {

private int stuNo;

private String stuName;

private int stuAge;

public int getStuNo() {

return stuNo;

}

public void setStuNo(int stuNo) {

this.stuNo = stuNo;

}

public String getStuName() {

return stuName;

}

public void setStuName(String stuName) {

this.stuName = stuName;

}

public int getStuAge() {

return stuAge;

}

public void setStuAge(int stuAge) {

this.stuAge = stuAge;

}

@Override

public String toString() {

// TODO Auto-generated method stub

return this.stuName+","+this.stuAge+","+this.stuNo;

}

}

public class Test {

public static void main(String[] args) {

Student student = new Student();

student.setStuNo(1);

student.setStuName("zs");

student.setStuAge(23);

System.out.println(student);

}

}

Spring 實(shí)現(xiàn)方法:

通過Spring環(huán)境搭建转砖,STS工具须鼎,導(dǎo)入需要的jar包

配置文件


<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.xsd">

<bean id="student" class="org.lanqiao.entity.Student">

? ? <property name="stuNo" value="1"></property>

? ? <property name="stuName" value="Ls"></property>

? ? <property name="stuAge" value="24"></property>

</bean>

</beans>

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {

public static void main(String[] args) {

//Spring上下文對(duì)象:conext

ApplicationContext conext = new ClassPathXmlApplicationContext("applicationContext.xml");

Student student=(Student)conext.getBean("student");

System.out.println(student);

}

}

? ? SpringMVC框架理解

為什么要使用SpringMVC?

很多應(yīng)用程序的問題在于處理業(yè)務(wù)數(shù)據(jù)的對(duì)象和顯示業(yè)務(wù)數(shù)據(jù)的視圖之間存在緊密耦合府蔗,通常晋控,更新業(yè)務(wù)對(duì)象的命令都是從視圖本身發(fā)起的,使視圖對(duì)任何業(yè)務(wù)對(duì)象更改都有高度敏感性姓赤。而且赡译,當(dāng)多個(gè)視圖依賴于同一個(gè)業(yè)務(wù)對(duì)象時(shí)是沒有靈活性的。

SpringMVC是一種基于Java不铆,實(shí)現(xiàn)了Web MVC設(shè)計(jì)模式蝌焚,請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)Web框架,即使用了MVC架構(gòu)模式的思想誓斥,將Web層進(jìn)行職責(zé)解耦只洒。基于請(qǐng)求驅(qū)動(dòng)指的就是使用請(qǐng)求-響應(yīng)模型劳坑,框架的目的就是幫助我們簡(jiǎn)化開發(fā)毕谴,SpringMVC也是要簡(jiǎn)化我們?nèi)粘eb開發(fā)。

MVC設(shè)計(jì)模式

MVC設(shè)計(jì)模式的任務(wù)是將包含業(yè)務(wù)數(shù)據(jù)的模塊與顯示模塊的視圖解耦距芬。這是怎樣發(fā)生的涝开?在模型和視圖之間引入重定向?qū)涌梢越鉀Q問題。此重定向?qū)邮强刂破髅镅ǎ刂破鲗⒔邮照?qǐng)求忠寻,執(zhí)行更新模型的操作,然后通知視圖關(guān)于模型更改的消息存和。

SpringMVC架構(gòu)

SpringMVC是Spring的一部分

操作流程:

(1)首先瀏覽器發(fā)送請(qǐng)求——>DispatcherServlet奕剃,前端控制器收到請(qǐng)求后自己不進(jìn)行處理衷旅,而是委托給其他的解析器進(jìn)行處理,作為統(tǒng)一訪問點(diǎn)纵朋,進(jìn)行全局的流程控制柿顶;

(2)DispatcherServlet——>HandlerMapping,處理器映射器將會(huì)把請(qǐng)求映射為HandlerExecutionChain對(duì)象(包含一個(gè)Handler處理器對(duì)象操软、多個(gè)HandlerInterceptor攔截器)對(duì)象嘁锯;

(3)DispatcherServlet——>HandlerAdapter,處理器適配器將會(huì)把處理器包裝為適配器聂薪,從而支持多種類型的處理器家乘,即適配器設(shè)計(jì)模式的應(yīng)用,從而很容易支持很多類型的處理器藏澳;

(4)HandlerAdapter——>調(diào)用處理器相應(yīng)功能處理方法仁锯,并返回一個(gè)ModelAndView對(duì)象(包含模型數(shù)據(jù)、邏輯視圖名)翔悠;

(5)ModelAndView對(duì)象(Model部分是業(yè)務(wù)對(duì)象返回的模型數(shù)據(jù)业崖,View部分為邏輯視圖名)——> ViewResolver, 視圖解析器將把邏輯視圖名解析為具體的View蓄愁;

(6)View——>渲染双炕,View會(huì)根據(jù)傳進(jìn)來的Model模型數(shù)據(jù)進(jìn)行渲染,此處的Model實(shí)際是一個(gè)Map數(shù)據(jù)結(jié)構(gòu)撮抓;

(7)返回控制權(quán)給DispatcherServlet妇斤,由DispatcherServlet返回響應(yīng)給用戶,到此一個(gè)流程結(jié)束丹拯。

JavaEE體系結(jié)構(gòu)包括四層趟济,從上到下分別是應(yīng)用層、Web層咽笼、業(yè)務(wù)層、持久層戚炫。Struts和SpringMVC是Web層的框架剑刑,Spring是業(yè)務(wù)層的框架,Hibernate和MyBatis是持久層的框架双肤。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末施掏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子茅糜,更是在濱河造成了極大的恐慌七芭,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔑赘,死亡現(xiàn)場(chǎng)離奇詭異狸驳,居然都是意外死亡预明,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門耙箍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撰糠,“玉大人,你說我怎么就攤上這事辩昆≡睦遥” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵汁针,是天一觀的道長(zhǎng)术辐。 經(jīng)常有香客問我,道長(zhǎng)施无,這世上最難降的妖魔是什么辉词? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮帆精,結(jié)果婚禮上较屿,老公的妹妹穿的比我還像新娘。我一直安慰自己卓练,他們只是感情好隘蝎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著襟企,像睡著了一般嘱么。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上顽悼,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天曼振,我揣著相機(jī)與錄音,去河邊找鬼蔚龙。 笑死冰评,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的木羹。 我是一名探鬼主播甲雅,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼坑填!你這毒婦竟也來了抛人?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤脐瑰,失蹤者是張志新(化名)和其女友劉穎妖枚,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苍在,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绝页,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年荠商,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抒寂。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡结啼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出屈芜,到底是詐尸還是另有隱情郊愧,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布井佑,位于F島的核電站属铁,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏躬翁。R本人自食惡果不足惜焦蘑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望盒发。 院中可真熱鬧例嘱,春花似錦、人聲如沸宁舰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蛮艰。三九已至腋腮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間壤蚜,已是汗流浹背即寡。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留袜刷,地道東北人聪富。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像著蟹,于是被迫代替她去往敵國(guó)和親善涨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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

  • 1.Spring背景 1.1.Spring四大原則: 使用POJO進(jìn)行輕量級(jí)和最侵入式開發(fā)草则; 通過依賴注入和基于借...
    嗷大彬彬閱讀 789評(píng)論 0 2
  • 對(duì)于java中的思考的方向,1必須要看前端的頁(yè)面蟹漓,對(duì)于前端的頁(yè)面基本的邏輯炕横,如果能理解最好,不理解也要知道幾點(diǎn)葡粒。 ...
    神尤魯?shù)婪?/span>閱讀 815評(píng)論 0 0
  • SpringMVC介紹 Spring web mvc 和Struts2都屬于表現(xiàn)層的框架份殿,它是Spring框架的一...
    day_Sunny閱讀 751評(píng)論 0 0
  • 首先了解下SpringMVC是什么 1.SpringMVC是一種思想膜钓,也是當(dāng)前最優(yōu)秀的MVC框架,自從Spring...
    TiredHu閱讀 1,870評(píng)論 0 7
  • Spring MVC一卿嘲、什么是 Spring MVCSpring MVC 屬于 SpringFrameWork 的...
    任任任任師艷閱讀 3,385評(píng)論 0 32