兩個月的Java實習結(jié)束,繼續(xù)努力

前言

只有光頭才能變強

2018年8月30日拯田,今天我辭職了历造。在6月25號入職,到現(xiàn)在也有兩個月時間了。

感受:

  • 第一天是期待的:第一次將項目拉到本地上看的時候吭产,代碼很多侣监,有非常多的模塊,模塊下又有dao/service/controller/form/bean臣淤,眼花繚亂的橄霉。再連上測試庫,也發(fā)現(xiàn)有100多張表荒典。~~順著一些模塊看下去酪劫,發(fā)現(xiàn)用的技術(shù)不難,之前基本都有接觸過寺董,都是可以看得懂的覆糟。
  • 第一個星期是焦慮的:第二天給我發(fā)下了一個文檔,文檔里邊有幾個小任務(一遮咖、編寫接口將數(shù)據(jù)導出到Excel滩字,二、改進一個功能)御吞。
    • 第二個功能的SQL語句寫了很長的時間都沒寫出來麦箍,沒寫出來原因有兩個:我的SQL能力弱和業(yè)務表之間的關(guān)系還沒熟悉(現(xiàn)在想起來,算是我這兩個月里寫過最麻煩的SQL了)陶珠⌒眩花了將近兩個星期完成了功能,期間我編寫SQL的能力也算是有所提升了揍诽。
  • 大多時候是閑的:很多時候接到的任務都是基于原有的基礎上添加一些功能诀蓉,改Bug之類的,也做過小的模塊開發(fā)暑脆∏。總體來看:技術(shù)難度不大,主要是對業(yè)務的理解添吗。

這兩個月過得很開心沥曹,好吃好住,就是長胖了

另外值得一說的是:別以為我寫了那么多博客的就很厲害碟联,很牛逼妓美,其實我渣得一批!校招的算法筆試題基本沒有ac的鲤孵,在面試的時候部脚,知識點說忘就忘。我寫博客主要是記錄一下自己的成長裤纹,遺忘的技術(shù)可以翻看委刘,跟大家一起交流交流丧没,共同進步~

朋友吐槽我寫的文章像是小學生作文,我也不擅長著感想之類的.....所以锡移,將就點看吧..~

下面主要記錄了在實習中遇到的新技術(shù)呕童,還有一些之前寫過的筆記也放上來了。

一淆珊、實習時學到的新技術(shù)

1.1swagger文檔框架

在看公司代碼的時候夺饲,發(fā)現(xiàn)Controller有幾個我不知道的注解:@Api@ApiOperation..

去查了一下施符,原來是接口的文檔框架往声。

image

想要更加深入了解:

1.2Lombok讓Java代碼更簡潔

看到JavaBean的時候,也發(fā)現(xiàn)了新大陸:注解@Data

在JavaBean中沒有任何的set/get方法戳吝,但在外面卻可以使用set/get方法浩销,很是神奇..

去找了一下資料,原來這玩意叫做:Lombok听哭。

  • 簡單來說:通過注解消除樣板代碼(從此set/get就沒有了)慢洋,JavaBean會十分簡潔

要注意的是:在IDE上需要安裝插件(IDEA如果沒安裝lombok插件陆盘,編譯會錯誤普筹,一大堆的紅色!)

image

Lombok使用和介紹:

1.3postman使用

公司前后端分離,后端返回json數(shù)據(jù)給前端解析隘马。我拿到的代碼是完全沒有前端頁面的太防,老大讓我裝個postman來調(diào)試。

由于之前都是個人開發(fā)酸员,想怎么玩就怎么玩(所以就沒用過postman..)杏头。

image

找到了一篇很好的postman教程(如果沒用過的同學,看完應該可以快速上手!):

1.4JSON Web Token(認證授權(quán))

image

JSON Web Token(JWT)是什么?

WT作為一個開放的標準(RFC 7519)沸呐, 定義了一種簡潔自包含的方法用于通信雙方之間以Json對象的形式安全的傳遞信息。 因為特定的數(shù)字簽名呢燥,所以這些通信的信息能夠被校驗和信任崭添。 JWT可以使用HMAC算法或者RSA的公鑰私鑰對進行簽名。

什么時候應該使用JSON Web Tokens?

  • 認證鑒權(quán)(Authentication)
  • 數(shù)據(jù)交換(Information Exchange)

貌似我司很簡單用了一下JWT叛氨,用于認證鑒權(quán)呼渣,我簡單總結(jié)了一下流程

  1. 按照正常的方式登錄
  2. 將用戶信息拼接成參數(shù)
  3. 用這個參數(shù)生成jwt對應的token值。
  4. 這個token值保存對應的權(quán)限寞埠,有效期屁置,加密方式
  5. token返回到瀏覽器中,使用Session Storage存儲起來
  6. 再次訪問的時候仁连,將這個token值帶過去(可以通過header的方式蓝角,也可以post/url拼接的方式)阱穗。問了一下前端小哥,他們用的是Angular使鹅,封裝了一下揪阶,每次請求都將其寫在header上。
  7. 如果這個token沒過期患朱,解析這個Token值鲁僚,返回對應的User對象(標識)
  8. 如果這個token過期了,重新讓用戶登錄

了解更多查看文檔(中文):

相關(guān)博文與討論:

1.5SQL編寫思路

之前自己寫的sql都挺簡單的裁厅,無非就是連接兩張表查詢出對應的數(shù)據(jù)冰沙。

到了需求的時候就不同了,復雜很多(以至于我寫了一個星期還沒寫出來....)

需求的任務簡單概括:要對每個字段的數(shù)據(jù)進行統(tǒng)計执虹,又要顯示每個字段下具體的內(nèi)容

  • 說白了拓挥,就是將多行的數(shù)據(jù)拼接起來,弄成一行~

最終思路:

  • 使用concat函數(shù)將其對應的字段拼接起來
  • 隨后再對字段進行分組声畏,使用group_concat函數(shù)再將上述的拼接起來
  • 最終拿到拼接到一行的結(jié)果撞叽,放到程序中解析

反正sql這玩意得多寫...(虐了我一個星期,原本都認為這功能是無法實現(xiàn)的了..)

在完成需求的時候也想過很多種辦法來解決插龄,找思路愿棋,從中也找到了一些比較好的關(guān)于sql的博文:

非相關(guān)子查詢:

image

相關(guān)子查詢:

image

沒有什么是select解決不了的,如果有均牢,那就再套一層---《3y》

tips : 在連表查詢的時候糠雨,思考一下是不是一開始就需要連表得出結(jié)果(可能有的時候:某個查詢條件必要時,才要連表)

1.6數(shù)據(jù)庫外鍵

在公司中徘跪,看數(shù)據(jù)庫表的設計是不用外鍵的甘邀。

在初學數(shù)據(jù)庫的時候,經(jīng)常用到了外鍵約束垮庐。在論壇中查看討論的時候松邪,一般人都說很少用外鍵。因為我們完全可以在業(yè)務(程序控制和事務)上處理表之間關(guān)系哨查。一般互聯(lián)網(wǎng)應用沒必要使用外鍵逗抑,外鍵會帶來一系列不好的影響:

  • 1.數(shù)據(jù)庫需要維護外鍵的內(nèi)部管理;
  • 2.外鍵等于把數(shù)據(jù)的一致性事務實現(xiàn)寒亥,全部交給數(shù)據(jù)庫服務器完成邮府;
  • 3.有了外鍵,當做一些涉及外鍵字段的增溉奕,刪褂傀,更新操作之后,需要觸發(fā)相關(guān)操作去檢查加勤,而不得不消耗資源仙辟;
  • 4.外鍵還會因為需要請求對其他表內(nèi)部加鎖而容易出現(xiàn)死鎖情況同波;

參考資料:

二、之前的一些筆記

2.1Timer和Quartz的區(qū)別

Timer和Quartz都是任務調(diào)度框架欺嗤,簡單來說就是:程序能夠在某時某刻上執(zhí)行你想要執(zhí)行的代碼参萄。

之前在項目中簡單用到了Quartz,在初學的時候也接觸過一下Timer的API調(diào)用煎饼。之前簡單記錄過他倆的區(qū)別讹挎,現(xiàn)在回頭整理一下吧~

  • 1.出身不同:Timer由jdk直接提供,調(diào)用方式簡單粗暴吆玖,不需要其它jar包支持筒溃。Quartz并非jdk自帶,需要引入相應的jar包
  • 2.能力區(qū)別:主要體現(xiàn)在對時間的控制上沾乘。某個具體時間執(zhí)行具什么任務的話Timer可以輕松搞定怜奖,而比如每個星期天早上八點提醒做某事的功能就需要Quartz,因此Quartz對時間的控制遠比Timer強大,完善
  • 3.異常處理不同Quartz的某次執(zhí)行任務過程中拋出異常,不影響下一次任務的執(zhí)行吝沫,當下一次執(zhí)行時間到來時,定時器會再次執(zhí)行任務滥崩;而TimerTask則不同,一旦某個任務在執(zhí)行過程中拋出異常讹语,則整個定時器生命周期就結(jié)束钙皮,以后永遠不會再執(zhí)行定時器任務
  • 4.對并發(fā)支持不同:Timer走后臺線程執(zhí)行定時任務(單線程)顽决,Quartz能夠使用多個執(zhí)行線程去執(zhí)行定時任務
  • 5.Quartz每次執(zhí)行任務都創(chuàng)建一個新的任務類對象短条,而TimerTask則每次使用同一個任務類對象

參考資料:

Quartz Demo源碼:

2.2Java生成二維碼

我們現(xiàn)在已經(jīng)離不開二維碼了。

二維碼是由一維碼發(fā)展而來的才菠,最典型的一維碼就是我們平時去商場中看到商品包裝的條形碼茸时,這就是典型的一維碼。

而二維碼的數(shù)據(jù)存儲量信息又比一維碼大得多赋访,并且有很好的糾正的功能(即使二維碼中有部分的信息不完整可都,還是能夠解析得到二維碼的數(shù)據(jù))

image

使用Java語言生成二維碼有以下的方式:

  • zxing API
  • qrcode
  • juqeryqrcode
image

當然了,肯定是jquery的方式來生成二維碼是比較簡單的进每。但是如果想定制二維碼的樣式、形狀的話命斧。那么使用Java的方式來生成是比較靈活的田晚。(比如:在二維碼中間放上logo)

下載生成二維碼的資源jar包:https://img.mukewang.com/down/5799a5440001040300000000.rar

使用Jquery的方式生成二維碼的博文:http://suflow.iteye.com/blog/1687396

使用zxing生成二維碼的博客:http://guopengli.cn/index.php/2017/10/05/53.html

參考資料:

2.3Java實現(xiàn)圖片水印、縮略圖

有的時候我們在上傳圖片時国葬,不希望展示的圖片大小和上傳的圖片大小相同時贤徒,我們就需要把圖片進行壓縮生一定的像素芹壕。縮略圖例子:

image

圖片水印也經(jīng)常會看到:

image

無論是水印還是縮略圖接奈,其實就是通過類庫來實現(xiàn)的踢涌,一般我們會使用JAVA圖像處理庫Thumbnailator

參考資料:

最后

能看到我博客的人序宦,說明是有看技術(shù)文章的習慣的睁壁。有看技術(shù)文章的習慣,說明都是愛技術(shù)/學習的人互捌。愛技術(shù)/學習的人潘明,技術(shù)一般不會差。所以能看到這篇文章的同學都是大佬----《3y》

如果想看更多的原創(chuàng)技術(shù)文章秕噪,歡迎大家關(guān)注我的微信公眾號:Java3y钳降。Java技術(shù)群討論:742919422。公眾號還有海量的視頻資源哦腌巾,關(guān)注即可免費領(lǐng)取遂填。

可能感興趣的鏈接:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市澈蝙,隨后出現(xiàn)的幾起案子吓坚,更是在濱河造成了極大的恐慌,老刑警劉巖碉克,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凌唬,死亡現(xiàn)場離奇詭異,居然都是意外死亡漏麦,警方通過查閱死者的電腦和手機客税,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撕贞,“玉大人更耻,你說我怎么就攤上這事∧笈颍” “怎么了秧均?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長号涯。 經(jīng)常有香客問我目胡,道長,這世上最難降的妖魔是什么链快? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任誉己,我火速辦了婚禮,結(jié)果婚禮上域蜗,老公的妹妹穿的比我還像新娘巨双。我一直安慰自己噪猾,他們只是感情好,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布筑累。 她就那樣靜靜地躺著袱蜡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪慢宗。 梳的紋絲不亂的頭發(fā)上坪蚁,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音婆廊,去河邊找鬼迅细。 笑死,一個胖子當著我的面吹牛淘邻,可吹牛的內(nèi)容都是我干的茵典。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼宾舅,長吁一口氣:“原來是場噩夢啊……” “哼统阿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起筹我,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤扶平,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蔬蕊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體结澄,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年岸夯,在試婚紗的時候發(fā)現(xiàn)自己被綠了麻献。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡猜扮,死狀恐怖勉吻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情旅赢,我是刑警寧澤齿桃,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站煮盼,受9級特大地震影響短纵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜僵控,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一香到、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦养渴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蔽氨,卻和暖如春藐唠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鹉究。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工宇立, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人自赔。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓妈嘹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绍妨。 傳聞我的和親對象是個殘疾皇子润脸,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

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