實習(xí)生活記錄——SINCE2019-04-11 第一周

2019-04-11——DAY1

使用了Lombok的@Data注解之后的代碼樣式,我們可以看出來第二個圖中我們省去了Get,Set 還有ToString方法等等的實現(xiàn)代碼快,全部收斂成一個@Data注解,這樣代碼就整潔了很多。

image.png

2019-04-12——DAY2

注解怎么用

image.png

@ApiOperation(value = "用戶信息列表",notes = "所有用戶列表")
完成了簡單增刪查改代碼編寫,用了postman插件get和post測試,了解了一點注釋怎么用,SwaggerUI生成接口文檔。報了錯,解決不了。。。┭┮﹏┭┮改不出來,很不明白。

2019-04-15——DAY3

@GetMapping("/list")
@ApiOperation(value = "用戶信息列表",notes = "所有用戶列表")
@ResponseBody
public DynamicBean selectAll(){
    DynamicBean bean = new DynamicBean();
    bean.put("uerList",userService.selectAll());
    return bean;
}

要學(xué)一下常用的注解的用法

@ResponseBody的作用其實是將java對象轉(zhuǎn)為json格式的數(shù)據(jù)。
DynamicBean,因為只需要返回數(shù)據(jù),不需要返回視圖,所以一般都用這個類,他繼承自map,注意一下他的方法,用put放進(jìn)去。

注意出現(xiàn)時間或某個字段為null的問題


這種時間為null,要么是格式有問題,要么是SQL、語句不對,我寫了
select * from dg_user
不行,要寫全
select id,name,create_time createTime,modify_time modifyTime from dg_user
才能查到時間,因為id和name可以和user類里面定義的變量名一樣,而兩個時間定義的名字不一樣了。。所以不行。

下午寫了一個文件上傳的controller。。過程艱辛(不過全程自己查百度,哎他們太忙了)

文件上傳:MultipartFile 通過 MultipartFile .transferTo( new File()), 僅需要這步驟,就可以把圖片存到服務(wù)器所在的電腦的任意一個盤或者路徑里面。

MultipartFile需要配置,于是寫了一個springmvc.xml里面貼上了

  <bean id="multipartResolver"
 class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="209715200"/>
    <property name="defaultEncoding" value="UTF-8"/>
    <property name="resolveLazily" value="true"/>
</bean>

主要是配置最大文件單個和總共不能超過多大等等等


image.png

其中,@controller:

在SpringMVC 中,控制器Controller 負(fù)責(zé)處理由DispatcherServlet 分發(fā)的請求,它把用戶請求的數(shù)據(jù)經(jīng)過業(yè)務(wù)處理層處理之后封裝成一個Model ,然后再把該Model 返回給對應(yīng)的View 進(jìn)行展示。在SpringMVC 中提供了一個非常簡便的定義Controller 的方法,你無需繼承特定的類或?qū)崿F(xiàn)特定的接口,只需使用@Controller 標(biāo)記一個類是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定義URL 請求和Controller 方法之間的映射,這樣的Controller 就能被外界訪問到。
一開始沒有寫get的請求方法,就報錯了,說啥啥的,我就查到他先是查get的巴拉巴拉就,于是可以從get的return到post、上就可以了。

分隔符“/”"", 統(tǒng)一使用了 File.seperator() 來代替

還有一直傳不上去文件,因為



這里沒有寫 file


image.png

這是因為:在上傳文件的時候指定的key與@RequestParam中要求的不一致,導(dǎo)致了后臺不能獲取到上傳的文件。
@RequestParam用于將請求參數(shù)區(qū)數(shù)據(jù)映射到功能處理方法的參數(shù)上。

就這樣吧 ,明天再寫

2019-04-16 DAY4

接收請求參數(shù)的方式:3種 包括@RequestParam的用法

  @RequestParam(value="username") String userName, @RequestParam(value="usernick") String userNick //value中的參數(shù)名稱要跟name中參數(shù)名稱一致
  String username, String usernick// 此時要參數(shù)名稱一致
  HttpServletRequest request //request.getParameter("usernick")

@RequestBody:處理HttpEntity傳遞過來的數(shù)據(jù),一般用來處理非Content-Type: application/x-www-form-urlencoded編碼格式的數(shù)據(jù)。

@RequestBody注解可以接收json格式的數(shù)據(jù),并將其轉(zhuǎn)換成對應(yīng)的數(shù)據(jù)類型。
GET請求中,因為沒有HttpEntity,所以@RequestBody并不適用。
POST請求中,通過HttpEntity傳遞的參數(shù),必須要在請求頭中聲明數(shù)據(jù)的類型Content-Type,SpringMVC通過使用HandlerAdapter 配置的HttpMessageConverters來解析HttpEntity中的數(shù)據(jù),然后綁定到相應(yīng)的bean上。

@RequestBody用于post請求,不能用于get請求

這里涉及到使用@RequestBody接收不同的對象

  1. 創(chuàng)建一個新的entity,將兩個entity都進(jìn)去。這是最簡單的,但是不夠“優(yōu)雅”。
  2. 用Map<String, Object>接受request body,自己反序列化到各個entity中。
  3. 類似方法2,不過更為generic,實現(xiàn)自己的HandlerMethodArgumentResolver。


    image.png

@ModelAttribute注解類型將參數(shù)綁定到Model對象

image.png

當(dāng)前臺界面使用GET或POST方式提交數(shù)據(jù)時,數(shù)據(jù)編碼格式由請求頭的ContentType指定。分為以下幾種情況:

  1. application/x-www-form-urlencoded,這種情況的數(shù)據(jù)@RequestParam、@ModelAttribute可以處理,@RequestBody也可以處理。
  2. multipart/form-data,@RequestBody不能處理這種格式的數(shù)據(jù)。(form表單里面有文件上傳時,必須要指定enctype屬性值為multipart/form-data,意思是以二進(jìn)制流的形式傳輸文件。)
  3. application/json、application/xml等格式的數(shù)據(jù),必須使用@RequestBody來處理。
    @RequestParam get和post傳值都可以
    @RequestBody @ModelAttribute 只能post傳值

@ResponseBody:直接返回 json 數(shù)據(jù)。不會跳轉(zhuǎn)

在使用 @RequestMapping后,返回值通常解析為跳轉(zhuǎn)路徑,但是加上 @ResponseBody 后返回結(jié)果不會被解析為跳轉(zhuǎn)路徑,而是直接寫入 HTTP response body 中。 比如異步獲取 json 數(shù)據(jù),加上 @ResponseBody 后,會直接返回 json 數(shù)據(jù)。@RequestBody 將 HTTP 請求正文插入方法中,使用適合的 HttpMessageConverter 將請求體寫入某個對象。

類似:一般就用DynamicBean 只返回json (不返回view的話,不用modelandview)

@RestController注解相當(dāng)于@ResponseBody + @Controller合在一起的作用。

@ResponseBody
public DynamicBean selectAll(){
    DynamicBean bean = new DynamicBean();
    bean.put("uerList",userService.selectAll());
    return bean;
}

@PathVariable

 @RequestMapping("/users/{username}")
@ResponseBody
public String userProfile(@PathVariable("username") String username){
      //   return String.format("user %s", username);
    return "user" + username; 
}

初步認(rèn)識JWT

下列場景中使用JSON Web Token是很有用的:

Authorization (授權(quán)) : 這是使用JWT的最常見場景。一旦用戶登錄,后續(xù)每個請求都將包含JWT,允許用戶訪問該令牌允許的路由、服務(wù)和資源。單點登錄是現(xiàn)在廣泛使用的JWT的一個特性,因為它的開銷很小,并且可以輕松地跨域使用。
Information Exchange (信息交換) : 對于安全的在各方之間傳輸信息而言,JSON Web Tokens無疑是一種很好的方式。因為JWTs可以被簽名,例如,用公鑰/私鑰對,你可以確定發(fā)送人就是它們所說的那個人。另外,由于簽名是使用頭和有效負(fù)載計算的,您還可以驗證內(nèi)容沒有被篡改。

基于token機(jī)制的身份認(rèn)證

使用token機(jī)制的身份驗證方法,在服務(wù)器端不需要存儲用戶的登錄記錄。大概的流程:

客戶端使用用戶名和密碼請求登錄。服務(wù)端收到請求,驗證用戶名和密碼。驗證成功后,服務(wù)端會生成一個token,然后把這個token發(fā)送給客戶端??蛻舳耸盏絫oken后把它存儲起來,可以放在cookie或者Local Storage(本地存儲)里??蛻舳嗣看蜗蚍?wù)端發(fā)送請求的時候都需要帶上服務(wù)端發(fā)給的token。服務(wù)端收到請求,然后去驗證客戶端請求里面帶著token,如果驗證成功,就向客戶端返回請求的數(shù)據(jù)。
https://blog.csdn.net/daimengs/article/details/81088172

2019-04-18 DAY5

(新的一天新的發(fā)現(xiàn),我買了一個電腦支架,用起來好爽!bang!這臺電腦的觸摸板真的爛的一批。
好了,剛剛又去問了一下善良的某某哥。)

1、了解了項目之間怎么跳來跳去。2、還有sql語句還可以,直接用方法。下面是舉例子。

image.png

在authcontroller中去屌merchantclient服務(wù)中的這個方法,我們可以通過按住ctrl鍵跳到


image.png

這個服務(wù)的接口(因為是微服務(wù)?)然后通過這個路徑,按兩下shrift,查找這個服務(wù)下的這個接口。


image.png
image.png
image.png

具體實現(xiàn)就在這個位置?!?br> (剛剛解決了qq截圖熱鍵沖突,誰能想到是網(wǎng)易云呢。。)
image.png

類似這種sql方法。

怎么找路徑

image.png
image.png

UUID.randomUUID().toString() 的作用:java-生成唯一的序列

UUID.randomUUID().toString()是javaJDK提供的一個自動生成主鍵的方法。

UUID(Universally Unique Identifier)全局唯一標(biāo)識符,是指在一臺機(jī)器上生成的數(shù)字,它保證對在同一時空中的所有機(jī)器都是唯一的,是由一個十六位的數(shù)字組成,表現(xiàn)出來的 形式。由以下幾部分的組合:當(dāng)前日期和時間(UUID的第一個部分與時間有關(guān),如果你在生成一個UUID之后,過幾秒又生成一個UUID,則第一個部分不 同,其余相同),時鐘序列,全局唯一的IEEE機(jī)器識別號(如果有網(wǎng)卡,從網(wǎng)卡獲得,沒有網(wǎng)卡以其他方式獲得),UUID的唯一缺陷在于生成的結(jié)果串會比較長。


image.png
在java中String一個String類型的可變長度的數(shù)組,固定長度的數(shù)組是String[] str={};這樣寫,可變的就String... str.
select(String... fields) fields是字段的意思

睡了15min。。還是很困很困,感覺直接看項目代碼好吃力,看不懂,注釋很少,啊啊啊,這樣感覺進(jìn)步不大。
好無聊,我要無聊死了,無聊無聊,為神馬不下大雨,好熱好熱啊啊啊啊啊 好無聊啊嗚嗚嗚嗚想吃好吃的,天哪我再也不要點輕食了,不好吃不好吃,雞肉不知道怎么做的,這么難吃也是服了。嘟嘟嘟嘟嘟嘟嘟嘟嘟他們工作都不用休息一下的嗎

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、教師為什么要開展課題研究 1、發(fā)現(xiàn)問題,尋找解決問題的辦法; 2、改進(jìn)工作,在工作中獲得成就感; 3、完善自我...
    肺話連篇閱讀 2,483評論 0 1
  • 《論語》詳解:給所有曲解孔子的人(23)作者:纏中說禪 子曰:以不教民戰(zhàn),是謂棄之。 詳解:本章九字,就這“以不教...
    故壘千堆雪閱讀 1,213評論 0 0
  • 從去年在微博知道有簡書一說之后,便無法自拔地愛上了它,雖然有時也有寫寫文章的想法,但是一直沒有勇氣,怕自己文采不夠...
    一卉子閱讀 197評論 0 0
  • 我,一枚典型的理科生。不善于打扮,不善于交際,沒有酒友更沒有煙友。我選擇的專業(yè)--化學(xué)生物學(xué),冥冥中注定自己...
    浪子柯書閱讀 256評論 0 0

友情鏈接更多精彩內(nèi)容