一狰腌、后端開發(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究恤、
2、:Spring 上下文是一個(gè)配置文件赫蛇,向 Spring框架提供上下文信息。Spring 上下文包括企業(yè)服務(wù)雾叭,例如JNDI悟耘、EJB、電子郵件织狐、國(guó)際化暂幼、校驗(yàn)和調(diào)度功能。
3移迫、:通過(guò)配置管理特性旺嬉,Spring AOP 模塊直接將面向切面的編程功能集成到了 Spring 框架中。所以厨埋,可以很容易地使 Spring 框架管理的任何對(duì)象支持AOP鹰服。Spring AOP 模塊為基于 Spring 的應(yīng)用程序中的對(duì)象提供了事務(wù)管理服務(wù)。通過(guò)使用 Spring AOP揽咕,不用依賴 EJB 組件悲酷,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。
4亲善、: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渣蜗、:Spring 框架插入了若干個(gè)ORM框架屠尊,從而提供了 ORM 的對(duì)象關(guān)系工具,其中包括JDO耕拷、Hibernate和iBatisSQL Map讼昆。所有這些都遵從 Spring 的通用事務(wù)和 DAO 異常層次結(jié)構(gòu)。
6骚烧、:Web 上下文模塊建立在應(yīng)用程序上下文模塊之上浸赫,為基于 Web 的應(yīng)用程序提供了上下文。所以赃绊,Spring框架支持與 Jakarta Struts 的集成既峡。Web 模塊還簡(jiǎn)化了處理多部分請(qǐng)求以及將請(qǐng)求參數(shù)綁定到域?qū)ο蟮墓ぷ鳌?/p>
7、: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框架特征
——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布疆拘。并且Spring所需的處理開銷也是微不足道的蜕猫。此外,Spring是非侵入式的:典型地哎迄,Spring應(yīng)用中的對(duì)象不依賴于Spring的特定類回右。
——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)將依賴傳遞給它强霎。
——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ù)支持。
——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)常是龐大與笨重的抛蚤,難以使用台谢。
——Spring可以將簡(jiǎn)單的組件配置、組合成為復(fù)雜的應(yīng)用岁经。在Spring中朋沮,應(yīng)用對(duì)象被聲明式地組合,典型地是在一個(gè)XML文件里缀壤。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理樊拓、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你塘慕。
——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)境配置)
解壓并記住存儲(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
-
出現(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則成功