發表文章

Spring boot v1.5 (五) JDBCTemplate

圖片
我個人是較推崇 JPA的,不過有些情況下,或是架構設計上,會需要純SQL的方式進行,但是像教科書介紹的方式進行,在實務上很難看到,太難用、程式太醜、修改太複雜等等都是要克服的問題,不可能期望所有開發者都是同一高等級的,JDBCTemplate某程度簡化了使用SQL的繁雜度,若是需要大量的純SQL時,JDBCTemplate絕對是首選,也會介紹JDBCTemplate如增刪修查方式、Connection Pool設定及帳密加密的方式等等。

預先準備項目:請先下載安裝PostgreSQL,並建立一個DB(louisz)及Table(users),DDL如下:。CREATE DATABASE louisz WITH OWNER = louisz ENCODING = 'UTF8' LC_COLLATE = 'Chinese (Traditional)_Taiwan.950' LC_CTYPE = 'Chinese (Traditional)_Taiwan.950' TABLESPACE = pg_default CONNECTION LIMIT = -1; CREATE TABLE public.users ( id integer NOT NULL, name character varying COLLATE pg_catalog."default", email character varying COLLATE pg_catalog."default", mobilenumber character varying COLLATE pg_catalog."default", CONSTRAINT user_pkey PRIMARY KEY (id) ) WITH ( OIDS = FALSE ) TABLESPACE pg_default;

Spring boot v1.5 (四) swagger,properties and structing your code

圖片
上一章有稍微讓大家看一下swagger怎麼跟spring boot無縫接軌,本章就深入一點來介紹swagger,把它定位在 API似乎有點薄弱,當作工具(Tools)我覺得倒很個很好的解釋,它主要提供的工具分別為 swagger core、swagger codegen、swagger editor、swagger ui等,以下是各自的說明:

swagger core:這是swagger的核心,使用Java撰寫出來的。swagger codegen:可以依據swagger(yaml格式)產生出來的api json或是url,可產生客戶端(client)相對應的程式碼。swagger editor:透過這個工具可以產生yaml,有點像是Eclipse IDE一樣,撰寫相對應的yaml,透過yaml可以產服務端(server)及客戶端(client)的程式碼,透過這裡可以玩玩看。swagger ui:將這工具與你的程式結合,如上章的方式,程式啟動後就會自動生成 api 前端頁面提供使用。

Spring boot v1.5 (三) magic RESTful and some swagger

圖片
會用Magic來形容Spring boot的RESTful,一方面是微服務的架構,另一方面則是透過Spring boot真得很容易完成,本篇開始也就會一些專案的經驗帶進來。
    簡單介紹一下REST(Representational State Transfer),具象狀態的傳輸,Wiki是這樣說明的,其實它的出現,主要是因為原本的Web Service太過複雜太謹慎了,SOAP跟XML-RPC不容易讓人一下子就了解,在這惟快不破的時代,時間就是金錢,所以REST的出現,讓原本比較難的Web Service變得簡單易懂,而且也容易上手,有些要點可以參這裡都有說明可以看看,對於微服務來說,無狀態很重要,未來架構設計也應該朝向無狀態,不然很難處理日益暴漲的量,符合REST設計風格的Web API稱為RESTful API,這就是我們常說的RESTful,比Web Service多了幾種操作方式,分別為get、post、put、delete、patch及head等(當然還有其他的),差別在這裡可以參考看看,Web Service有wsdl,那RESTful有嗎?答案就是Swagger,已經可以算是RESTful的標準了,Spring boot整合swagger也是很無縫地喔。


Spring boot v1.5 (二) logging

圖片
本篇主要介紹Logging的機制,Spring boot預設為logback framework,在開始之前先給大家熱身一下,每次執行Spring boot程式在Console上都會看到Spring的Banner如下


這Banner可以自訂喔,可以在google輸入ascii generator關鍵字,就可以找到很多產生這Banner文件,我使用的是這個,然後在/src/main/resources目錄中增加一個banner.txt檔案,然後把產生出來的Code複製到banner.txt的檔案上,也可以透過簡單的設定加上一些顏色
banner.txt
${AnsiColor.BRIGHT_BLUE} _ _______ _________ _______ _______ ( \ ( ___ )|\ /|\__ __/( ____ \/ ___ ) | ( | ( ) || ) ( | ) ( | ( \/\/ ) | | | | | | || | | | | | | (_____ / ) | | | | | || | | | | | (_____ ) / / | | | | | || | | | | | ) | / / | (____/\| (___) || (___) |___) (___/\____) | / (_/\ (_______/(_______)(_______)\_______/\_______)(_______/ ${AnsiColor.BRIGHT_GREEN} Application Version: ${application.version}${application.formatted-version} Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}
有點跑掉不過執行結果如下:
這個banner.t…

Spring boot v1.5 (一) introduce

圖片
微服務(microservice)當道的時代,快速已經成為王道的代名詞,然而實現他概念的架構不得不提到Spring bootSpring Cloud,當然還有DevOps、Container(Moby(Docker))等等(本系列會帶到這些觀念,但是會另外在其他章節來說明,我認為的微服務是怎樣的東西),所以本系列看標題也可以知道都是Spring boot的介紹跟我遇到的一些問題及想法,希望看的人可以快速進入Spring boot,開發真的不難,難的是改變。
本系列文章大致分為 介紹說明本次學習目的及學習預計完成時間說明學習目的預計完成時數影片程式碼及設定檔相關分析說明pom.xml說明.properties or yml設定檔說明程式碼說明其他遭遇到的問題參考連結Code Example Github連結