搜尋

搜尋結果

Spring Boot 01 - 萬物始於Spring boot context
科技新知
MacauYeah・2024-01-16

Spring Boot 01 萬物始於Spring boot context 筆者早些時候向一位朋友討論,為何Java那麼不受歡迎。朋友一句就回答,Java煩爆,沒有人會喜歡。 老實講,Java在句法上,實在囉唆。但以筆者的經驗,即使使用其他語言和開發框架,在實戰到一定複雜程度下,其實也一樣煩爆。 而現在的Java框架中,就以Spring boot的入門門檻低。筆者從Spring boot 1.x用到現在的3.x,也真的感受到更多的簡化,所以筆者也加入一起推廣Spring boot的行列。筆者將會通過一系列最小的可執行程式,為大家講解Spring在Web和資料庫上的應用。 所以現在就不廢話,馬上開壇作法 快速下戴模版 使用Spring initializr,可以很容易就建立一個以Spring boot starter為底的java project。大家可以使用Spring 官網又或是vscode plugin 快速地建立一個maven或gradle project。筆者較為熟悉maven,就以maven起一個範例。 在使用Spring initializr有幾件事必需要指定的 Spring boot version 3.x.y 或以上 Language java Group Id 請選擇有意思的域名,如果你用github,可以選 io.github.yourusername artifactId 這個範例的名字,例如commandline Packaging type 本次使用jar,日後若開發web 應用,可以使用war Java version 17或以上 之後就不用選了。若你經官網起範例,你會得到一個zip檔,下載後解壓縮。若你使用vscode插件,最後插件會叫有一個位置儲存。它們都是最後也是會得到同一樣範例Java project。 你使用Vscode,Intellij打開,IDE都會自動辨識到它是java maven project,同時會顯示java和maven結構。道理上你用Intellij 應該可以無腦開始編譯Community 或Ultimate版都可以, Vscode有安裝Extension Pack for Java也會開始自動編譯。不想麻煩,也可以試用Github Codespaces java。Github Codespaces其實就是一個雲上的vscode,經網頁可以連到Github VM內的vscode,所以它也會有齊Extension Pack for Java等插件。 筆者最後也會上載已完成的範例,它也可以在Github Codespaces上以Java執行或繼續開發。 打開project中的pom.xml,它為我們添加了兩個很重要的lib org.springframework.boot springbootstarter ... ... org.springframework.boot springbootmavenplugin springbootstarter是重中之重,它定義了怎樣動態地設定日後的其他lib,它是讓我們可以無腦設定的一個關鍵。但若大家有很多客制化的設定,就要返撲歸真地逐個lib叫起。 maven在預設情況下,只會負責編譯和打包目前的project原始碼。所有相關依賴就是xml中的dependency,並不會自動包起。而springbootmavenplugin,就是幫我們把相關依據都包在一起,讓你的jar可以獨立行起來。 註 若大家在開發lib jar,並不是一個獨立執行的jar,也就是原始碼上沒有main函數,大家就不應該引用springbootstarter和springbootmavenplugin。 我們繼續看其他原始碼,整個資料夾就像以下那樣。 . HELP.md pom.xml ` src main java ` io ` github ` macauyeah ` springboot ` tutorial ` commandline ` CommandlineApplication.java ` resources ` application.properties ` test ` java ` io ` github ` macauyeah ` springboot ` tutorial ` commandline ` CommandlineApplicationTests.java CommandlineApplication是我們有main函數的java class。我像可以經過IDE運行main又或者下指令mvn springbootrun來執行。 正式開始我們的Commandline開發 我們在CommandlineApplication.class中,加入新的程式碼,實現ApplicationRunner和它的函數run。 package io.github.macauyeah.springboot.tutorial.commandline; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; other import @SpringBootApplication public class CommandlineApplication implements ApplicationRunner static Logger LOG = LoggerFactory.getLoggerCommandlineApplication.class; public static void mainString args SpringApplication.runCommandlineApplication.class, args; @Override public void runApplicationArguments args throws Exception args.getOptionNames.stream.forEachoptionName gt; LOG.debugquot;option namequot; optionName; args.getOptionValuesoptionName.forEachoptionValue gt; LOG.debugquot;option valuesquot; optionValue; ; ; LOG.debugquot;program end.quot;; ... 這個run函數很直白,就是更好地演譯main中的String args。 但大家還要看清楚,這個main並沒有直接執行run。其實它是靠SpringApplication.run及@SpringBootApplication,跑一堆自動設定,最後因為傳入CommandlineApplication.class是一個Spring 可以處理的ApplicationRunner,所以才呼叫它的CommandlineApplication.run。 換個講法,如果今天做的是web應用,傳入去的就會是SpringBootServletInitializer,這個SpringBootServletInitializer也不一定跟main是同一個class。 如果大家有興趣,可以經過反編譯器,點入@SpringBootApplication看它的原始碼,你就可以看到它其實代表了很多自動化的東西。如果我們只做一些在同一個模組下生效的事情,《自動化》極大地降低了大家入門門檻。一般來講,如果大家不在意程式碼的複用度,比較少機會自行設定,自動化已經很有用。而隨著系統規模增加,多模組就慢慢地顯得重要,在大家了解完基本的Spring後,著者再從測試用途test case入手,為大家介紹如何手動設定。 Source Code Commandline Application

緬甸。曼德勒 | Generation – 緬甸式早餐
走遍世界
原來世界這樣大・2019-05-21

待在緬甸多天,才發覺每天也在Hostel吃早餐,未沒有真正的嚐過緬甸的早餐。趁在緬甸的最後一天,放棄了Hostel的免費早餐,到Hostel附近的餐廳吃緬甸式早餐,讓我回到香港也可以好好懷念。 住在Mansion Hostel Mandalay,周邊的餐廳以步行就可到達,個人是挺推介的!而這間Generation也是以步行15分鐘就可到達,相當的方便。 Generation這間餐廳在Tripadvisor也沒有資料。依我記憶是在Hostel的自製地圖找到的。 早上的曼德勒是有點冷的,但有陽光照射著,還是有份精神奕奕的朝氣!Generation 6am就營業,是緬甸吃早餐的好地方呢! 我看著餐牌才發現有幾款緬甸特式的早餐款式還未吃過,既然等一下要坐8小時的大巴,那吃飽飽才上路吧!我點了Chicken Prata 和油條。這兒總共是二人的份量啊!(看我多誇張!) 油條十分鬆軟,不過像廣東的油條一樣也是沒有什麼味道的。而不同的是廣東的油條配上白粥,緬甸的油條則配上緬甸奶茶。 緬甸奶茶已經是茶加上煉奶,對他們來沒有像西式般的黑咖啡或是奶啡。所以對於不喝奶的,下單時真是要交代得非常清楚。而緬甸奶茶也是甜度很高,不過我覺得偶爾喝喝也無妨啦!這份甜度或許就是緬甸奶茶的特色了,要把這味道記下。 仰光的Rangoon Tea House是可以自行選擇奶茶的甜度,來伸延閱讀吧:httpswp.mep9S9CO4vJ 把油條吃到差不多,Chicken Prata來了。心想,我真的能把所有東西吃完嗎?既然都點了,那就盡力以為吧!Prata是煎餅的意思,當然不同地方的煎餅也各有不同了。緬甸煎餅內的醃料可以有雞肉或羊肉的選擇。剛做好的煎餅熱烘烘,放到口中吃到煎餅的香脆!真的要試試! 要吃緬甸早餐不要像我留到最後一天才吃,還是每天嚐不同菜式的好!要是住Mansion Hostel Mandalay的,Hostel的免費早餐雖然好吃,但也不要錯過緬甸式的早餐啊! Generation地址:Corner Of 26th Street x 68th Street, Chanayethazan Tsp, Mandalay, Myanmar Burma營業時間:6am10pm

五點半準時關門!人均$30 更被評為澳門必吃食店!「咖喱雞絲麵」必點!
澳城餐飲
食在澳門iFood・2021-07-03

城市的面貌日新月異 網紅餐廳層出不窮 但對於茶餐廳的青睞只增不減 鮮活生猛充斥著家長裡短的 「美味園劉記美食」 有著生活中最真實的模樣 由舊時在青洲木屋區到宜家搬至台山 撈粗、湯麵、多士味道仍舊不變 更被評為ldquo;澳門必吃食店rdquo; 胃裡被極賦生活化的美味佔據 係煙火氣中最樸實的幸福 ▼ 雲吞豬扒撈粗 經濟實惠係美味園劉記的標誌!雲吞豬扒撈粗亦備受周邊街坊追捧!厚切大塊的豬扒肉和飽滿圓潤的雲吞鋪喺表面,誠意十足的用料讓底下的粗麵ldquo;不見天日rdquo; 沒有花哨的技巧,全部真材實料實打實,豬扒肉睇得見的實在,入口口感更係嫩勁十足 粒粒飽滿嘅雲吞咬開隻隻有蝦肉,鮮!惹味!同時扎扎實實!俾人超級滿足的飽腹感,夠嗮實在。 咖喱雞絲麵 獨有嘅咖喱雞絲麵推薦到店必點!自家調配咖喱的每一個步驟係好食與否的關鍵,微微嘅辛辣再帶小小甜口的回甘,越食越開胃!越食越過癮! 濃郁的咖喱香和醇厚的湯頭,一啖入喉有種莫名的舒心,軟白爽口的麵條吸飽湯汁,入口保證滿足。 咖喱雞絲相比起大舊雞肉,味道會更加滲透入味。咖喱嘅辛辣感令你停唔到口係咁食!麵食比較爽口,入口慢慢感受在齒舌間的回彈,品嚐出澳門粉麵獨有的魅力。 西多士 油亮金黃的西多士一上枱,提醒你下午茶時間到啦!佢一定係你三點三時刻不可或缺的一員。 金黃香脆嘅西多士表面的餘溫剛好融化黃油,從中輕輕切開,深藏已久的花生內餡展露無遺 鬆軟的西多士融入黃油的香氣和花生內餡,醇香但不黏膩,怎叫人不著迷?再配返杯凍檸茶哩個下午茶完美啦! 豬扒芝士菠蘿包 各款包點係你下午茶嘅最佳選擇,有香軟蓬鬆的餐包、菠蘿包,亦有外酥脆硬的豬仔包,但每一種都能準確抓住味蕾和胃的幻想! 但識食嘅朋友仔就會整返個隱藏菜單mdash;mdash;菠蘿芝士豬扒包!菠蘿包酥皮上帶有小小砂糖,包身軟熟,加熱過後再加上誘人芝士同厚身豬扒,跟隨溫度芝士慢慢融化滲透。鹹鮮之中帶著小小甜口絕了! 醇厚的芝士香瀰漫喺鼻息之間,厚豬扒肉汁飽滿,大啖咬下,芝香皮脆,吮指回味! 咖喱雞絲豬仔包 又嚟到鋪頭招牌ldquo;咖喱雞絲rdquo;系列啦!喺哩度唔止可以叫咖喱雞絲湯麵、撈麵,仲可以叫咖喱雞絲夾包! 烘烤過後嘅酥脆豬仔包同咖喱雞絲內餡的整體感十分微妙,每一啖食落都有著「說不清,道不明」的融合 惹味的咖喱將你帶咗去體驗異國文化,一絲絲雞肉夾雜住洋蔥,再同豬仔包喺口中平衡中和,每一個口感細節都相當到位! 辣魚包 辣魚包融入葡萄牙的烹調精髓,加入葡式魚罐頭搭配甜餐包,入口沒有冇腥味,反而係橄欖油的清香撲鼻而來 葡式辣魚口味會比較重小小,用甜餐包去中和味道就啱啱好啦!辛辣鮮香嘅辣魚入口可以感受到啖啖魚肉,同軟熟嘅甜餐包渾然一體後,口感更令人心醉! 凍朱古力和凍西洋菜蜜 夏日的陽光渲染氣溫,逐漸升高的體溫點燃燥熱的心情,天口咁熱整兩杯,一杯凍朱古力,一杯西洋菜蜜,既地道又解暑 清新自然的菜蜜和濃郁誘惑的凍朱古力,味道順滑,清甜濃郁足以消弭炎炎暑氣! 從大門到大廳都透露著澳門本地生活的氣息,從主食到小食都有著自己的美學和趣味,完全唔擔心講嘢的音量,寫意隨心的食飯聊天。 老闆與食客之間默契又親切,座無虛席的劉記充斥鄰里街坊的市井生活,濃縮柴米油鹽中的藝術品,530見到美味園劉記打烊收工,心裡暗暗不捨,但沒有關係,明天早餐見! END 餐廳信息 美味園劉記美食 地址:黑沙環台山新城市第二街新城市花園第7座 營業時間:600am1730pm 電話:28236157 人均:30mop50mop 圖文 肥肥 美工 陳真香 攝影 他說他叫修杰楷

Steam Deck With Podman
科技新知
MacauYeah・2023-10-06

Steam Deck With Podman 眾所週知,Steam Deck預裝的是一台Linux主機。但它的系統比較特別,為了可以安全更新,所以系統最主要的部份都設定為唯讀read only。也就是,傳統你可以直接在Linux上經管理員權限安裝的軟件包,全部都會被擋,即使你把唯讀部份設為可讀寫read write,在下次更新時,都會被一次過覆蓋掉。 筆者作為一個負責任的機迷開發者,怎樣可以白白讓一台Linux機只可以玩遊戲呢 怎樣跟老婆交代呢 所以筆者千辛萬苦,找到一個折衷方案,讓他可以當為開發機使用,那就是Podman。當然,若果大家有條件有金錢,直接改裝Windows就可以了。 Podman是什麼 Podman跟Docker一樣,都是一些管理和運行Container的主程式。跟Docker不一樣的是,它是Open source,而且是daemonless。 所謂的daemonless,就是不會有一個背景程式去長期管理Container。好處是不會因為背景程式死了,就全部Container一起掛掉,預設也不需要走管理員權限路線。但也因此跟Docker有一些使用上的差異,例如Podman沒有原生的dockercompose結構,即使坊間有python寫的podmancompose去硬對應dockercompose,但某些network是跟結構還是不能直接從Docker轉移過來。 就筆者早期的踩雷經驗而言,用Podman跑起一兩個獨立固定Port的Container來說,都很夠用,也不會遇到奇怪的Bug。所以這次,亦用來作為Steam Deck運行整合式開發的Container。 不平凡的安裝之路 install homebrew Steam OS 3,雖然可以使用更改read write,再使用pacman來安裝podman。但因為Steam OS更新後,全部要重來,工作量和網路流量都不少,所以筆者改為使用homebrew來安裝podman。homebrew只需要首次安裝時使用管理員權限,之後就會在home資料夾下留下可執行的程式,所以它不會被Steam OS更新所破壞。 install podman 記得記得重新開機,之後應該就可以成功運行container

漢莎輕裝出行!香港飛愛丁堡來回連稅HKD2,651起!
激安優惠
OHChance 旅遊誌・2019-11-30

下載 OHChance 手機 APP, 特價資訊直送你手!   漢莎航空現在都有唔包托運行李的light 價格,不過一般都要3000出頭,但搵到愛丁堡有一口非常好的價錢,2700都唔使!就算加返行李都係3700左右,一樣抵玩。 其他歐洲航點就以瑞航比較好,會另開post 介紹。 《優惠價錢(來回連稅)》 *愛丁堡:HKD2,651  《出發日期及最長停留》.出發日期:2月1日至4月30日.最長停留:1個月  《購票日期及方法》.購票日期:12月3日2359前.預訂方法:漢莎航空官網.預訂網址:httpswww.lufthansa.com  【行李資訊】.漢莎航空light票價只包括8KG手提行李.23KG托運行李價格為每單程HKD534  附註:上述最低價錢為航空公司公告之最優惠價格,或本站能找到的最低價格;每一航班有否優惠票價及所存票量由航空公司決定,優惠票量有限售完即止。  價錢 Sample ndash; 香港飛愛丁堡來回連稅HKD2,651 === 想搵平機票去玩,即上 OH!Chance!澳燦旅行資訊 httpsohchance.info 去日本旅行買咩 JR Pass好?即上 OH!Note!小燦的旅行筆記做功課 httpsohnote.info 唔知間航空公司好唔好坐?馬上 Subscribe OH Chance Youtube 睇睇佢:httpsyoutube.comcOHChanceTravel 睇埋 Facebook 專頁 httpsfb.comohchance 第一時間獲得最新旅遊資訊!

澳門抵飲勝選$100兩杯酒及一份
澳城餐飲
行走世界記錄・2019-08-07

這個時勢,甚麼都貴! 不知道 $100 可以買到的東西有幾多?如果在澳門可以在五星級酒店的酒吧,2人飲一杯雞尾酒及吃一盤小食,一個字:抵! 金麗華酒店乘風廊酒吧,環境清雅,三面單邊,三五知己飲一杯好去處。今年夏天,乘風廊推出一系列清爽怡人的雞尾酒及特飲。價格由澳門幣58元起。 特別推介一個夏日優惠組合,2杯酒加小食只需澳門幣$100元!酒有六款,三款Cocktail 雞尾酒: Fresco Fizz 仲夏夜麗影,由日本清酒,馬蒂尼雞尾酒,新鮮黃瓜,酸橙,檸檬和自製檸檬草糖漿組成。 Vasco Margarita 乘風廊瑪格麗特,由龍舌蘭酒,橙味利口酒,鮮檸檬和蜂蜜蜂蜜糖漿組成。 Grand Lapa Colada 金麗華椰香特飲,爽口菠蘿雞尾酒,朗姆酒,椰子奶油,芒果利口酒和金麗華自製的酒。 另三款為無酒精雞尾酒Mocktail: 冰卡布奇諾夏季飲料,由咸焦糖,彊餅乾,新鮮牛奶和釀造黑咖啡調配而成。 Cucumber Lemonade 綠野仙蹤,由新鮮的黃瓜汁,檸檬,酸橙和薑汁啤酒調配而成。 HiEnergy 能量之源,熱帶百香果和葡萄柚汁配紅牛。 小食拼盤包括:黑毛豬配自家製蕃茄漿小土司、菲達芝士及義大利黑醋粒伴西爪、砂拉越胡椒霜燒吞拿魚配菠蘿。 費用需另加10%服務費及5%政府稅 地址 :澳門友誼大馬路9561110號 營業時間下午 3 時至凌晨 12時 星期日至四下午 3 時至凌晨 2時 星期五至六 電話853 8793 3831 更多相片在 Facebook 行走世界記錄 原文 請點

販賣幽默!澳門生活概念店「創意光點」
創意生活
Cheers!・2018-04-20

位於順成街的生活概念店「創意光點(Creative Spot Macao)」樓高兩層,齊集家品、生活、展覽及本土設計等元素。不過這裡主打的,並非時興的日系、簡約風,而是一件件走風趣路線的創意小物,販賣幽默! 店主 James 是個英國回流的設計系學生,近水流台,所以店內除了引入大量來自歐美等地的創意產品,還有英國的「Vamp;A 維多利亞和阿爾伯特博物館」、「the DESIGN MUSEUM」和「Tate St Ives 泰特現代藝術館」的收藏品。其中來自巴黎的「N2 CREATIVE JEWELLERY」更是品牌在澳門區的唯一代理,以童趣為設計風格的耳環、戒指、頸鏈等飾品可愛得來又不失高貴,是店內銷售量最高的品牌。 至於 James 的至愛,就是英國品牌「SUCK UK」的乒乓球筆記簿,一 Set 三件(球拍和網),除了顏色鮮艷繽紛,最抵死的是簿面貼上大大塊生膠面,手感、質感一流! 法國創意手飾品牌 N2 走童趣路線。 逛創意市集・尋本土設計小物 除了外國貨色,這裡還寄賣了一些本澳文創品,「除咗喺歐美返貨之外,亦特登揀咗一啲本澳嘅文創品,好多澳門做得好好嘅、喺市集見到嘅,都會同佢哋傾,放喺呢度作一個寄賣形式。」James 挑選的,都是市面上比較少見的設計小物,像是「Palette」就以刺繡為材,配搭金屬、皮革等物料,風格獨一無二。 「Palette」目前寄賣的飾品,是跳水系列。 創意光點 Creative Spot Macao 地址:順成街 18 號威利大廈地下 B 鋪 營業時間:1100 1900(周日至五);1300 1900(周六) 網址:httpswww.facebook.comcspotmacao