大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) 學(xué)習(xí)Javaweb的注意要點(diǎn)之Javaweb視頻學(xué)習(xí)

學(xué)習(xí)Javaweb的注意要點(diǎn)之Javaweb視頻學(xué)習(xí)

更新時(shí)間:2020-05-28 11:25:32 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2103次

本文章詳細(xì)的列出了開發(fā)一個(gè)傳統(tǒng)JavaWeb項(xiàng)目需要注意的要點(diǎn),從環(huán)境準(zhǔn)備開始到三層架構(gòu)搭建,需要注意的地方全部羅列出來(lái)。

學(xué)習(xí)Javaweb的注意要點(diǎn)之Javaweb視頻學(xué)習(xí)

第一部分:環(huán)境準(zhǔn)備

1.Maven命令創(chuàng)建web骨架

mvn archetype:create-DgroupId=net.rocketa-DartifactId=mywebapp-DarchetypeArtifactId=maven-archetype-webapp

注意web servlet版本(web.xml,3.1),Junit版本指定為4.X(這樣Spring好通過注解的方式來(lái)運(yùn)行單元測(cè)試)

2.注意在IDEA中需要設(shè)置好MAVEN工程的

Sources/Tests/Resources/Test Resources屬性。

3.日志依賴

slf4j:規(guī)范和接口

具體的日志實(shí)現(xiàn)有:

log4j、logback、common-logging

因此我們一般是使用slf4j接口+一種具體的日志實(shí)現(xiàn)+slf4j和這個(gè)具體日志實(shí)現(xiàn)的依賴整合

4.數(shù)據(jù)庫(kù)依賴

有2個(gè)依賴,需要注意,一個(gè)是驅(qū)動(dòng),一個(gè)是數(shù)據(jù)庫(kù)連接池(C3P0,DBCP...)。

驅(qū)動(dòng)JAR包是運(yùn)行期需要包含,編譯期不需要的。

5.持久層框架依賴

說(shuō)白了,DAO層的框架依賴:MyBatis or Hibernate or....

比如除MyBatis本身的依賴需要引入之外,還需要引入MyBatis和Spring的整合依賴。

6.Web層依賴

比如,JSP中使用到的一些JSTL、標(biāo)簽、Ajax訪問JSON等,還有需要注意的是,在編譯期需要引入servlet-api。

7.Spring核心依賴

spring-core、spring-beans、spring-context

8.Spring和DB之間的整合依賴

Spring是需要介入DB的管理的,比如它的聲明式事務(wù)。

spring-jdbc、spring-tx

9.Spring對(duì)Web的一些整合依賴

spring-web、spring-webmvc

10.Spring對(duì)Junit的支持依賴

spring-test

NOSQL對(duì)事務(wù)的支持不是很好,它主要追求的是性能、高可用、分布式。

MySQL等關(guān)系型數(shù)據(jù)庫(kù)對(duì)事務(wù)的支持是很成熟的,也是很可靠的落地方案。

第二部分:DAO層

NOSQL對(duì)事務(wù)的支持不是很好,它主要追求的是性能、高可用、分布式。

MySQL等關(guān)系型數(shù)據(jù)庫(kù)對(duì)事務(wù)的支持是很成熟的,也是很可靠的落地方案。

1.表

可以在項(xiàng)目中建立一個(gè)SQL文件,便于SQL的管理。

注意,表的存儲(chǔ)引擎(事務(wù)的支持:innodb)、自動(dòng)增長(zhǎng)的特性、編碼、主鍵和索引。

一個(gè)良好的習(xí)慣是:為所有的表都添加一個(gè)創(chuàng)建時(shí)間字段,用于記錄,方便排查。

應(yīng)該為表名、列名添加注釋,方便其他工程師查閱。

應(yīng)該注意SQL技巧,比如插入存在唯一約束的表中,如果出現(xiàn)沖突不想報(bào)錯(cuò)的話,可以:insert ignore into....(可以通過返回的影響行數(shù)來(lái)進(jìn)行判斷)

2.Dao層實(shí)體

一些業(yè)務(wù)對(duì)象的建立,setter/getter/toString等就不說(shuō)了,需要特別注意的是,除了表的字段之外,還需要什么屬性?這里涉及到一個(gè)一對(duì)一、一對(duì)多,多對(duì)多的概念!

3.Dao層接口和mapper sql

MyBatis的特點(diǎn):從SQL(參數(shù)+sql)映射到Entity/List(定制SQL、自由傳遞參數(shù)、結(jié)果集自動(dòng)賦值)

使用MyBatis的方式:SQL寫在XML中,或者注解提供SQL。更加推薦的是XML,因?yàn)楦屿`活,XML提供的動(dòng)態(tài)拼接功能也是比注解簡(jiǎn)單的多。

一個(gè)全局的mybatis配置文件+具體的SQL文件+DAO接口:讓我們只需要設(shè)計(jì)接口,關(guān)注業(yè)務(wù)邏輯,解放出來(lái)。

在全局mybatis配置文件中重點(diǎn)注意:是否開啟駝峰轉(zhuǎn)換,獲取數(shù)據(jù)庫(kù)自增主鍵,列別名替換列名等。

注意DAO接口和具體的SQL文件之間的對(duì)應(yīng)關(guān)系。

具體SQL寫法中,比如#{},<![CDATA[...]]>等需要引起注意。

輸入?yún)?shù)類型parameterType,如果是多個(gè)基本類型,那么不用給出來(lái)。

即便返回的是List對(duì)象,我們的resultType依然指定的是集合中的對(duì)象類型。

在Mybatis的SQL文件中是可以通過OGNL表達(dá)式來(lái)對(duì)對(duì)象中的一些對(duì)象類型的屬性進(jìn)行賦值的!

表名.xxx或者表名.xxx as yyy對(duì)于Mybatis而言,會(huì)忽略表名.前綴,也會(huì)忽略as。

另外,注意在Dao接口中,如果方法有多個(gè)基本類型參數(shù),別忘了通過Param來(lái)進(jìn)行運(yùn)行期參數(shù)標(biāo)記!

總結(jié):Dao層的工作逐漸演變成接口設(shè)計(jì)和SQL編寫了,這種代碼和SQL的分離方式,便于我們進(jìn)行review,而Dao的拼接將在Service層完成。

4.一些優(yōu)化配置

比如,對(duì)帶包路徑的類型進(jìn)行簡(jiǎn)化,通過配置掃描包。

比如,批量掃描SQL文件,通過自動(dòng)掃描配置文件。

第三部分:Controller層

1.Restful

一種優(yōu)雅的URI表述方式;資源的狀態(tài);狀態(tài)的轉(zhuǎn)移

Restful示例:

GET/product/list查詢操作

GET/product/{productId}/detail

GET/product/time/now

POST/product/{productId}/execution添加、修改操作【非冪等性】

POST/product/{productId}/{userId}/order

DELETE/product/{productId}/delete刪除操作

PUT修改操作【冪等性】

URL設(shè)計(jì):

/模塊/資源/{標(biāo)示}/集合1/...

2.Controller中請(qǐng)求方法的細(xì)節(jié)處理

考慮幾個(gè)方面:請(qǐng)求參數(shù)綁定、請(qǐng)求方式限制、轉(zhuǎn)發(fā)與重定向、數(shù)據(jù)模型賦值、JSON數(shù)據(jù)返回、Cookie訪問

RequestMapping(value="/{productId:\\d+}/detail",method=RequestMethod.GET,produces={"application/json;charset=UTF-8"})
ResponseBody
public String detail(
PathVariable("productId")Long productId, CookieValue(value="userId",required=false)Long userId,Model model){
#return"rediect:/xxx/yyy"
#return"forward:/xxx/yyy"
#return"view"
}

3.整合配置Spring MVC

在web.xml中配置DispatcherServlet攔截請(qǐng)求,并指出Spring相關(guān)的配置文件。

開啟Spring MVC的注解模式:

<mvc:annotation-driven/>

靜態(tài)資源請(qǐng)求采用默認(rèn)的servlet配置

<mvc:default-servlet-handler/>

配置JSP、ViewResolver的prefix「如/WEB-INF/jsp」suffix「如.jsp」

掃描web相關(guān)的Controller:

<context:component-scan base-package="">

學(xué)習(xí)Javaweb的注意要點(diǎn)之Javaweb視頻學(xué)習(xí)

Javaweb相關(guān)視頻教程

2020最新JavaWeb教程:http://www.dabaquan.cn/javavideo/147.html

EL&JSTL視頻教程:http://www.dabaquan.cn/javavideo/122.html

Filter&Listener視頻教程:http://www.dabaquan.cn/javavideo/121.html

JSP視頻教程:http://www.dabaquan.cn/javavideo/120.html

Servlet視頻教程:http://www.dabaquan.cn/javavideo/119.html

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“學(xué)習(xí)Javaweb的注意要點(diǎn)之Javaweb視頻學(xué)習(xí)”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 在线看片福利 | 777kkk亚洲综合欧美色老头 | 亚洲国产日韩综合久久精品 | 亚洲视频大全 | 97综合 | 日本欧美中文字幕 | 亚洲国产爱久久全部精品 | 国内精品久久久久影院中国 | 成人毛片网 | 中文乱码精品一区二区三区 | 亚洲美女黄视频 | 国产日产欧美a级毛片 | 亚洲日本视频在线观看 | 性欧美极品xxxx欧美一区二区 | 第一福利在线观看永久视频 | 四虎精品成人免费视频 | 亚洲精品国产啊女成拍色拍 | 国产亚洲精品第一区在线观看 | 成人亚洲欧美日韩中文字幕 | 伊人狼人视频 | 奇米影视555| 99精品福利 | 亚洲精品综合在线 | 国产高清国内精品福利色噜噜 | 欧美日韩色 | 亚洲免费播放 | 欧美午夜久久 | 日韩亚射 | 久久久久久久男人的天堂 | 国产羞羞视频在线播放 | 久久天天躁狠狠躁夜夜躁综合 | 成人区在线观看免费视频 | 中文字幕不卡在线观看 | 国内精品久久久久影院亚洲 | 成 人 免费 黄 色 视频 | 国产swag在线观看 | 免费h片在线观看 | 国产精品模特hd在线 | 性色网站 | 婷婷综合五月 | 日本α级毛片视频免费观看 |