java實習總結(實習生一年工作經驗和技術總結)
4.2 Spring IOC
4.1.1 Spring bean
1.bean注入 注解方式方便易讀,引用第三方(數據庫連接,數據庫連接池,JedisPool等)采用配置文件方式 。
2. bean作用域:Singleton,prototype,request,session,global session
3.bean生命周期:如下圖所示

文章插圖
4.3 Spring AOP
基本概念:關注點、切面Aspect、切入點pointcut、連接點joinpoint、通知advice、織入weave、引入introduction 。
Spring AOP支持5中類型通知,分別是MethodBeforeAdvice、AfterReturningAdvice、ThrowsAdvice、MethodInterceptor、IntroductionInterceptor(吐槽一下名字太長)
實現方式如下:
1.基于代理的AOP
2.基于@Aspect注解驅動的切面 。(強烈推薦:可讀性好 , 易維護,易擴展,開發快)
3.純POJO切面 。
4.注入式Aspect切面 。
4.4 Srping事務
4.4.1 事務傳播
概念:某些操作需要保證原子性,如果中間出錯 , 需要事務回滾 。如果某個事務回滾,那么調用該事務的方法中的事務的作出如何的動作,就是事務傳播 。
短時間內寫不清楚 , 建議訪問
http://www.cnblogs.com/yangy608/archive/2010/12/15/1907065.html 查看 。
事務傳播屬性:
1. PROPAGATION_REQUIRED–支持當前事務,如果當前沒有事務 , 就新建一個事務 。這是最常見的選擇 。
2. PROPAGATION_SUPPORTS–支持當前事務,如果當前沒有事務,就以非事務方式執行 。
3. PROPAGATION_MANDATORY–支持當前事務,如果當前沒有事務,就拋出異常 。
4. PROPAGATION_REQUIRES_NEW–新建事務,如果當前存在事務,把當前事務掛起 。
5. PROPAGATION_NOT_SUPPORTED–以非事務方式執行操作,如果當前存在事務,就把當前事務掛起 。
6. PROPAGATION_NEVER–以非事務方式執行,如果當前存在事務,則拋出異常 。
【實習生一年工作經驗和技術總結 ?java實習總結】事務隔離級別:
1. ISOLATION_DEFAULT: 這是一個
PlatfromTransactionManager默認的隔離級別 , 使用數據庫默認的事務隔離級別.另外四個與JDBC的隔離級別相對應
2.
ISOLATION_READ_UNCOMMITTED: 這是事務最低的隔離級別 , 充許令外一個事務可以看到這個事務未提交的數據 。這種隔離級別會產生臟讀,不可重復讀和幻像讀 。
3. ISOLATION_READ_COMMITTED: 保證一個事務修改的數據提交后才能被另外一個事務讀取 。另外一個事務不能讀取該事務未提交的數據
4. ISOLATION_REPEATABLE_READ: 這種事務隔離級別可以防止臟讀,不可重復讀 。但是可能出現幻像讀 。它除了保證一個事務不能讀取另一個事務未提交的數據外,還保證了避免下面的情況產生(不可重復讀) 。
5. ISOLATION_SERIALIZABLE 這是花費最高代價但是最可靠的事務隔離級別 。事務被處理為順序執行 。除了防止臟讀,不可重復讀外,還避免了幻像讀 。
4.5 其他Spring 技術棧
spring boot 輕量級啟動框架
spring security 用戶權限管理,根據角色和用戶,實現UserDetailsService , 進行自定義權限管理 。
spring task 代碼級定時任務,注解方式,使用起來非常方便 。需要注意的是,如果某次定時任務出了異常而沒有進行處理,會導致接下來定時任務失效 。如果各個任務相互獨立,可以簡單用try , catch包圍(之前就吃過這方面的虧) 。
spring data 注解方式定義實體,屬性等
spring mvc 簡單明了的mvc框架 。url傳值、數組傳值、對象傳值、對象數組等傳值類型,上傳/下載文件類型需要注意 。
spring restful 注意命名,對命名要求很嚴格 。
spring shell 命令行方式執行命令,救火、導入導出數據等用起來非常方便、制作報表 。
5. Web基礎
5.1 web容器啟動
1.web.xml加載順序: listener -> filter -> servlet
2.webt容器啟動過程,java新手很怕配置文件 , 理解完這些有助于熟悉配置文件
http://blog.csdn.net/u014431852/article/details/47042895
5.2 Servlet、Interceptor、Listener、Filter
Servlet 接收請求返回響應,最原始的web業務處理類 。
Interceptor 攔截器,可以實現HandlerInterceptor接口自定義攔截器,在日志記錄、權限檢查、性能監控、通用行為等場景使用,本質是AOP 。
Listener 監聽器 常用于統計在線人數等縱向功能 。
Filter 過濾器 在請求接口處理業務之前改變requset,在業務處理之后響應用戶之前改變response 。如果某些數據不加密,很容易用抓包工具加filter作弊 。
5.3 web項目結構
5.3.1 mvn結構
熟練掌握幾種常見的mvn項目結構,mvn可以自動生成,這里不再詳述 。
5.3.2 mvn包管理
1.版本號盡量幾種在一個文件中便于管理 。
2.spring milestone包解決spring包沖突問題 。
3.mvn dependency:tree命令分析所有包依賴,對于沖突的在pom文件中 包圍起來
5.3.3 版本控制
1.git、svn等
2.代碼沖突解決方案
3.分支管理 。
對于某個穩定版本上線后,如果在此基礎上開發新功能,一定要新建分支,在新分支上提交代碼,最后在新版發布時合并分支 。修改運營環境bug切換到主分支進行修改
5.4 Http請求
5.4.1 請求方法
post、get、put、head、delete、copy、move、connect、link、patch,最常用的是前4、5個 。
5.4.2 請求頭,狀態碼
常用的請求頭有Accept(下載文件會特殊使用)、Accept-Charset(設置utf-8字符集)、Content-Type(json等配置)等
常用的響應頭有Content-Type、Content-Type、Content-Length等 , 偏前端,不再詳述 。
6. 系統架構
接觸的不是特別多 , 目前用到的只是服務器主從備份 。Nginx反向代理進行配置 。
多個項目nginx配置
Spring Mvc 用json數據進行交互,配置json轉換的servlet 。
封裝返回值
自定義RunEnvironmentException(狀態碼,原因),覆蓋原有Exception,切面ExceptionHandler抓取Exception并封裝到返回值中(前后端松耦合)
令人頭疼的用戶重復(連續快速點擊)提交問題,前端限制治標不治本;后端用sessonid在切面上實現,又需要前端存儲 , 對所有請求數據加sessionId 。最后用jedis中存儲,用接口名+用戶名當做key,根據不同的接口對不同的key可以單獨設置時間,不僅保證了重復提交問題,也避免了惡意請求問題 , 同時還能自定義請求間隔 。(期初擔心redis緩存讀寫時間延誤導致限制失效,后來發現多慮了 , 對一般的小系統來說,經性能測試,發現即使請求頻率再提高100被也不會導致限制失效)
testNg單元測試、性能測試 , 覆蓋測試 。
切面管理日期、權限 。緩存等 。
7. Nosql
1.Redis的java庫Jedis 。
Jedispool配置 。
項目中用到的有任務隊列、緩存 。
2. neo4j圖數據庫
處理社交、推薦
8. 服務端
linux操作系統熟悉以centos為例:
常用簡單命令:ssh、vim、scp、ps、gerp、sed、awk、cat、tail,df、top,shell、chmod、sh、tar、find、wc、ln、|
目錄結構明細:/etc/、~/、/usr/、/dev/、/home/、/etc/init.d/
服務端:jdk、tomcat、nginx、mysql、jedis、neo4j啟動與配置(特別說明的是該死的防火墻,nginx啟動后一直訪問不了 , 查找一下午查不到原因,最后發現是防火墻問題)
監控服務器狀態(cpu , 磁盤,內存),定位pid , 日志查看
nginx負載均衡、反向代理、配置
自動化部署腳本
簡單shell腳本書寫,避免大量人力勞動 。
監控系統,代碼拋fatal異常自動發郵件,系統指標持續偏高自動發郵件 。
9. 數據庫相關
10. 第三方接口對接
10.1 支付接口
微信支付坑比較多,用將近兩周時間才把微信支付所有完成 。需要在微信后臺配置的地方太多 。
而支付寶支付模塊只用了2天時間就搞定了 。
10.2 推送接口
為用戶定義tag、定義alias,注意當數據更新時需要同步更新tag、更新alias 。如果沒采用異步實現(用戶體驗就是好卡?。?
10.3 云存儲
大量文件上傳云端(七牛云),注意創建bucket
10.4 短信驗證
很簡單的第三方接口,引入依賴,直接調用即可 。需要在第三方后臺設置模板等 , 注意限定用戶訪問次數 。
10.5 郵件
很簡單小功能,工具類 。

文章插圖
- 什么專業好找工作
- 春天在哪里作文怎么寫
- Excel公式越長,水平越高嗎?
- 裝修業務員提成多少 ?男的去足療店工作好嗎
- 寫事的作文500字怎么寫
- 職場新人怎么學會調節情緒
- 談談成都品茶自帶工作室,正確喝茶姿勢
- 講述成都品茶海選工作室,道之根本茶之精品
- ?趙今麥插隊風波升級!工作人員放錘反駁,官方解釋被嘲諷
- 工作中簡單的排序都不會用,好意思說自己精通Excel?
