原创 設計模式概述

設計模式(Design Pattern)是前輩們對代碼開發經驗的總結,是解決特定問題的一系列套路。它不是語法規定,而是一套用來提高代碼可複用性、可維護性、可讀性、穩健性以及安全性的解決方案。但是在我們開發過程中,不應該爲了使用設計模式而使

原创 高併發編程Future模式

Future模式是多線程開發中非常常見的一種設計模式,它的核心思想是異步調用。當我們需要調用一個方法時,若該方法比較複雜,執行較慢,那麼我們就要一直等待直到該方法執行結束,返回信息。但我們有時候並不急着要這個結果,而希望在這個方法在執行的

原创 外觀模式

概念:外觀模式,也叫門面模式,隱藏系統的複雜性,就是把多個方法封裝到一個方法中。 應用場景:多個操作一般都是一起出現的情況,就可以將這幾個操作(方法)捆綁在一起,封裝成一個類,方便調用。 代碼如下: package facade; pub

原创 單例模式

定義:在一個jvm中只能存在一個實例,保證對象唯一性。 應用場景:servlet、struts2、springMVC、連接池、線程池、枚舉、常量。 優點:節約內存、方便管理、重複利用。 缺點:線程不安全 創建方式: 餓漢模式:類初始化的時

原创 原型模式

概念:該模式有一個樣板實例,這個被克隆的實例就是我們說的“原型”。說白了就是有一個對象A,我們要操作的時候拷貝A得到一個A的副本B,這個A就稱之爲原型。我們操作的時候是對B做操作,這樣就不會影響到原型A。 應用場景: 類初始化的時候需要消

原创 工廠方法模式

先介紹一下簡單工廠模式,簡單工廠不屬於23種設計模式,其劃分粒度比較大,類型多的情況下,擴展性差 public interface Car {     void run(); } //比亞迪汽車 public class BydCar i

原创 適配器模式

概念:適配器模式把一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。 應用場景:主要用在不兼容的情況下,SpringMVC使用適配器進行攔截請求和分發 優點:         1.更

原创 高併發編程線程池篇

使用線程池的目的     降低資源消耗         通過重複利用已創建的線程降低線程創建和銷燬造成的消耗     提高響應效率         當任務到達時,任務可以不需要等到線程創建就能立即執行     方便管理         線

原创 模板方法模式

概念:實現一些操作時,整體步驟很固定,但是其中一小部分是變化的,這時候就可以使用模板方法模式,將容易變化的部分抽離出來,供子類實現。 特點:     1.封裝不變部分,擴展可變部分     2.提取公共部分代碼,便於維護     3.行爲

原创 代理模式

概念:通過代理控制對象的訪問,可以詳細訪問某個對象的方法,在這個方法調用之前或調用後進行處理。既(AOP微實現),AOP的核心技術面向切面編程。 應用場景: SpringAOP、事務原理、日誌打印、權限控制、遠程調用、安全代理。(

原创 java中的常見鎖

鎖的種類:         一、悲觀鎖         重量級鎖,會導致阻塞。每次在修改數據的時候,都認爲其他線程會修改,所以都會加鎖(讀鎖,寫鎖,行鎖等),當其他線程需要訪問數據的時候都會阻塞掛起.(類似java中的synchroniz

原创 建造者模式

概念:給出一個接口,以規範產品對象的各個組成成分的建造。這個接口規定要實現複製對象的哪些部分的創建,並不涉及具體的對象部件的創建。 應用場景: 需要生成的對象具有複雜的內部結構 需要生成的對象內部屬性本身相互依賴 與工廠模式的區別:建造者

原创 Nginx

一、Nginx入門 1.Nginx背景 和Apache一樣都是WEB服務器,基於REST架構風格,以統一資源描述符URI或者統一資源定位符URL作爲溝通依據,通過HTTP協議提供各種網絡服務。 Apache的發展時期很長,是世界第

原创 MongoDB

原创 傳統分佈式事務解決方案

傳統分佈式事務解決方案 jta+atomikos 註冊同一個全局事務中,將事務註冊到Atomikos中去,實現全局事務,properties文件: 自定義讀取屬性類以及註冊到Atomikos形成全局事務類 @Configuration