day01 spring起步

一狰腌、后端開發(fā)的概念和技術(shù)棧

1.1??后端開發(fā)

1.2??技術(shù)棧


二、javaEE

2.1??什么是javaEE

  • JavaEE(前身J2EE)提供了一套設(shè)計(jì)牧氮、開發(fā)琼腔、匯編和部署企業(yè)應(yīng)用程序的規(guī)范。
  • JavaEE提供了企業(yè)級(jí)應(yīng)用程序的開發(fā)平臺(tái)踱葛,提供了分布式丹莲、基于組件、松耦合剖毯、安全
    可靠圾笨、獨(dú)立于平臺(tái)反應(yīng)迅速的應(yīng)用程序環(huán)境教馆。
  • JavaEE提供了開發(fā)企業(yè)級(jí)應(yīng)用程序的技術(shù)框架逊谋。
  • JavaEE分為層結(jié)構(gòu):Web層,業(yè)務(wù)層土铺,控制層胶滋,數(shù)據(jù)庫(kù)
  • J2EE規(guī)范中常見的組見技術(shù):


三、spring框架特點(diǎn)及構(gòu)成

3.1??spring特點(diǎn)

  • 方便解耦悲敷,簡(jiǎn)化開發(fā)
  • AOP編程的支持
  • 聲明式事務(wù)的支持
  • 方便程序的測(cè)試
  • 方便集成各種優(yōu)秀框架
  • 降低Java EE API的使用難度

3.1??spring框架結(jié)構(gòu)


1究恤、
\color{red}{核心容器}
:核心容器提供 Spring 框架的基本功能(Spring Core)。核心容器的主要組件是 BeanFactory后德,它是工廠模式的實(shí)現(xiàn)部宿。BeanFactory 使用控制反轉(zhuǎn)(IOC) 模式將應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分開。

2、\color{red}{Spring 上下文}:Spring 上下文是一個(gè)配置文件赫蛇,向 Spring框架提供上下文信息。Spring 上下文包括企業(yè)服務(wù)雾叭,例如JNDI悟耘、EJB、電子郵件织狐、國(guó)際化暂幼、校驗(yàn)和調(diào)度功能。

3移迫、\color{red}{Spring AOP}:通過(guò)配置管理特性旺嬉,Spring AOP 模塊直接將面向切面的編程功能集成到了 Spring 框架中。所以厨埋,可以很容易地使 Spring 框架管理的任何對(duì)象支持AOP鹰服。Spring AOP 模塊為基于 Spring 的應(yīng)用程序中的對(duì)象提供了事務(wù)管理服務(wù)。通過(guò)使用 Spring AOP揽咕,不用依賴 EJB 組件悲酷,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。

4亲善、\color{red}{Spring DAO}:JDBCDAO抽象層提供了有意義的異常層次結(jié)構(gòu)设易,可用該結(jié)構(gòu)來(lái)管理異常處理和不同數(shù)據(jù)庫(kù)供應(yīng)商拋出的錯(cuò)誤消息。異常層次結(jié)構(gòu)簡(jiǎn)化了錯(cuò)誤處理蛹头,并且極大地降低了需要編寫的異常代碼數(shù)量(例如打開和關(guān)閉連接)顿肺。Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結(jié)構(gòu)。

5渣蜗、\color{red}{Spring ORM}:Spring 框架插入了若干個(gè)ORM框架屠尊,從而提供了 ORM 的對(duì)象關(guān)系工具,其中包括JDO耕拷、Hibernate和iBatisSQL Map讼昆。所有這些都遵從 Spring 的通用事務(wù)和 DAO 異常層次結(jié)構(gòu)。

6骚烧、\color{red}{Spring Web 模塊}:Web 上下文模塊建立在應(yīng)用程序上下文模塊之上浸赫,為基于 Web 的應(yīng)用程序提供了上下文。所以赃绊,Spring框架支持與 Jakarta Struts 的集成既峡。Web 模塊還簡(jiǎn)化了處理多部分請(qǐng)求以及將請(qǐng)求參數(shù)綁定到域?qū)ο蟮墓ぷ鳌?/p>

7、\color{red}{Spring MVC 框架}:MVC框架是一個(gè)全功能的構(gòu)建 Web應(yīng)用程序的 MVC 實(shí)現(xiàn)碧查。通過(guò)策略接口运敢,MVC框架變成為高度可配置的,MVC 容納了大量視圖技術(shù),其中包括 JSP传惠、Velocity肤视、Tiles、iText 和 POI涉枫。模型由javabean構(gòu)成邢滑,存放于Map;視圖是一個(gè)接口愿汰,負(fù)責(zé)顯示模型困后;控制器表示邏輯代碼,是Controller的實(shí)現(xiàn)衬廷。Spring框架的功能可以用在任何J2EE服務(wù)器中摇予,大多數(shù)功能也適用于不受管理的環(huán)境。Spring 的核心要點(diǎn)是:支持不綁定到特定 J2EE服務(wù)的可重用業(yè)務(wù)和數(shù)據(jù)訪問(wèn)對(duì)象吗跋。毫無(wú)疑問(wèn)侧戴,這樣的對(duì)象可以在不同J2EE 環(huán)境(Web 或EJB)、獨(dú)立應(yīng)用程序跌宛、測(cè)試環(huán)境之間重用酗宋。

3.3??spring框架特征

\color{#376956}{輕量}——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布疆拘。并且Spring所需的處理開銷也是微不足道的蜕猫。此外,Spring是非侵入式的:典型地哎迄,Spring應(yīng)用中的對(duì)象不依賴于Spring的特定類回右。

\color{#376956}{控制反轉(zhuǎn)}——Spring通過(guò)一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了低耦合。當(dāng)應(yīng)用了IoC漱挚,一個(gè)對(duì)象依賴的其它對(duì)象會(huì)通過(guò)被動(dòng)的方式傳遞進(jìn)來(lái)著蛙,而不是這個(gè)對(duì)象自己創(chuàng)建或者查找依賴對(duì)象活翩。你可以認(rèn)為IoC與JNDI相反——不是對(duì)象從容器中查找依賴金句,而是容器在對(duì)象初始化時(shí)不等對(duì)象請(qǐng)求就主動(dòng)將依賴傳遞給它强霎。

\color{#376956}{面向切面}——Spring提供了面向切面編程的豐富支持逐纬,允許通過(guò)分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)(例如審計(jì)(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性的開發(fā)颖系。應(yīng)用對(duì)象只實(shí)現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯——僅此而已凑阶。它們并不負(fù)責(zé)(甚至是意識(shí))其它的系統(tǒng)級(jí)關(guān)注點(diǎn)稻据,例如日志或事務(wù)支持。

\color{#376956}{容器}——Spring包含并管理應(yīng)用對(duì)象的配置和生命周期衬鱼,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建——基于一個(gè)可配置原型(prototype)憔杨,你的bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例——以及它們是如何相互關(guān)聯(lián)的鸟赫。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級(jí)的EJB容器,它們經(jīng)常是龐大與笨重的抛蚤,難以使用台谢。

\color{#376956}{框架}——Spring可以將簡(jiǎn)單的組件配置、組合成為復(fù)雜的應(yīng)用岁经。在Spring中朋沮,應(yīng)用對(duì)象被聲明式地組合,典型地是在一個(gè)XML文件里缀壤。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理樊拓、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你塘慕。

\color{#376956}{MVC}——Spring的作用是整合筋夏,但不僅僅限于整合,Spring 框架可以被看做是一個(gè)企業(yè)解決方案級(jí)別的框架图呢√跖瘢客戶端發(fā)送請(qǐng)求,服務(wù)器控制器(由DispatcherServlet實(shí)現(xiàn)的)完成請(qǐng)求的轉(zhuǎn)發(fā)蛤织,控制器調(diào)用一個(gè)用于映射的類HandlerMapping赴叹,該類用于將請(qǐng)求映射到對(duì)應(yīng)的處理器來(lái)處理請(qǐng)求。HandlerMapping 將請(qǐng)求映射到對(duì)應(yīng)的處理器Controller(相當(dāng)于Action)在Spring 當(dāng)中如果寫一些處理器組件指蚜,一般實(shí)現(xiàn)Controller 接口稚瘾,在Controller 中就可以調(diào)用一些Service 或DAO 來(lái)進(jìn)行數(shù)據(jù)操作 ModelAndView 用于存放從DAO 中取出的數(shù)據(jù),還可以存放響應(yīng)視圖的一些數(shù)據(jù)姚炕。 如果想將處理結(jié)果返回給用戶摊欠,那么在Spring 框架中還提供一個(gè)視圖組件ViewResolver,該組件根據(jù)Controller 返回的標(biāo)示柱宦,找到對(duì)應(yīng)的視圖些椒,將響應(yīng)response 返回給用戶。

四掸刊、spring的起步練習(xí)

1.環(huán)境配置(以下為IDEA環(huán)境配置)
  • 下載maven的環(huán)境包

  • 解壓并記住存儲(chǔ)位置

  • 打開IDEA并點(diǎn)擊 file→other settings→settings for new project
  • 點(diǎn)擊 build→build tools→maven免糕,更改maven的文件路徑

    (紅色方框內(nèi)所指從上至下依次為解壓的maven文件包,文件包的conf的settings.xml文件忧侧,手動(dòng)創(chuàng)建的maven運(yùn)行后存放jar包的位置)

  • 新建java項(xiàng)目石窑,鼠標(biāo)右擊項(xiàng)目名選擇 add framework support
  • 點(diǎn)擊maven然后ok
    4.png
  • 出現(xiàn)以下界面,點(diǎn)擊右下角的 enable auto-import
  • 等待maven jar包下載完畢(25個(gè)文件)蚓炬,在項(xiàng)目?jī)?nèi)的pom.xml里project內(nèi)添加下列代碼

<!--依賴包-->
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.0.10.RELEASE</version>
        </dependency>
    </dependencies>

環(huán)境配置完成

2.spring的簡(jiǎn)單練習(xí)
  • 新建一個(gè)HelloWorld類松逊,編寫一個(gè)簡(jiǎn)單方法
public class HelloWorld {
    public String getHello(){
        return "Hello World";
    }

}

-在項(xiàng)目的resources里新建一個(gè)bean.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.xsd">
    <bean id="helloWorld" class="com.soft1721.spring.hello.HelloWorld"/>
</beans>

(class為helloWorld的包路徑)

  • 新建HelloWorldDemo
public class HelloWorldDemo {
    public static void main(String[] args){
        //讀入XML文件
        ApplicationContext context=new ClassPathXmlApplicationContext("/beans.xml");
        //讀取配置好的beans
        HelloWorld helloWorld= (HelloWorld) context.getBean("helloWorld");
        //運(yùn)行方法
        System.out.print(helloWorld.getHello());



    }
}

(getBean的內(nèi)容與bean的id保持一致)

  • 運(yùn)行程序肯夏,控制臺(tái)輸出helloWorld則成功
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末经宏,一起剝皮案震驚了整個(gè)濱河市犀暑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌烁兰,老刑警劉巖耐亏,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異沪斟,居然都是意外死亡广辰,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門主之,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)择吊,“玉大人,你說(shuō)我怎么就攤上這事杀餐「煞ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵史翘,是天一觀的道長(zhǎng)枉长。 經(jīng)常有香客問(wèn)我,道長(zhǎng)琼讽,這世上最難降的妖魔是什么必峰? 我笑而不...
    開封第一講書人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮钻蹬,結(jié)果婚禮上吼蚁,老公的妹妹穿的比我還像新娘。我一直安慰自己问欠,他們只是感情好肝匆,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著顺献,像睡著了一般旗国。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上注整,一...
    開封第一講書人閱讀 49,837評(píng)論 1 290
  • 那天能曾,我揣著相機(jī)與錄音,去河邊找鬼肿轨。 笑死寿冕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的椒袍。 我是一名探鬼主播驼唱,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼槐沼!你這毒婦竟也來(lái)了曙蒸?” 一聲冷哼從身側(cè)響起捌治,我...
    開封第一講書人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤岗钩,失蹤者是張志新(化名)和其女友劉穎纽窟,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體兼吓,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡臂港,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了视搏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片审孽。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖浑娜,靈堂內(nèi)的尸體忽然破棺而出佑力,到底是詐尸還是另有隱情,我是刑警寧澤筋遭,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布打颤,位于F島的核電站,受9級(jí)特大地震影響漓滔,放射性物質(zhì)發(fā)生泄漏编饺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一响驴、第九天 我趴在偏房一處隱蔽的房頂上張望透且。 院中可真熱鬧,春花似錦豁鲤、人聲如沸秽誊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)锅论。三九已至,卻和暖如春日熬,著一層夾襖步出監(jiān)牢的瞬間棍厌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工竖席, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留耘纱,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓毕荐,卻偏偏與公主長(zhǎng)得像束析,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子憎亚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

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

  • 一员寇、后端開發(fā)的概念和技術(shù)棧 1.1 什么是后端開發(fā)弄慰? 后端相較于前端來(lái)說(shuō),更多的是與數(shù)據(jù)庫(kù)進(jìn)行交互以處理相應(yīng)的業(yè)務(wù)...
    朱芮林閱讀 269評(píng)論 0 0
  • 一蝶锋、后端開發(fā)的概念和技術(shù)棧 1.1 什么是后端開發(fā) https://blog.csdn.net/o4dc8ojo7...
    錯(cuò)過(guò)_16e3閱讀 495評(píng)論 0 5
  • 一陆爽、后端開發(fā)的概念和技術(shù)棧 1.1 什么是后端開發(fā)? 什么是后端開發(fā) 1.2 Java后端技術(shù)圖譜扳缕? 二慌闭、Java...
    國(guó)王兔子閱讀 204評(píng)論 0 3
  • 1、什么是后端開發(fā)躯舔? 點(diǎn)擊 了解什么是后端開發(fā) 點(diǎn)擊 查看后端開發(fā)技術(shù)相關(guān)知識(shí) 2驴剔、作為一個(gè)前端或者后...
    Monica_b73c閱讀 166評(píng)論 0 1
  • 一、后端開發(fā)的概念和技術(shù)棧 1.1 什么是后端開發(fā)粥庄? https://zhuanlan.zhihu.com/p/2...
    王杰磊閱讀 134評(píng)論 0 0