潮流特區

焦點文章

CyberCom3合1充電數據線 — 一條線搞掂晒,充電超方便!
科技新知
Lifemagtechie・2025-06-12

而家大家手上嘅電子產品多到數唔清,手機、平板、藍牙耳機、遊戲機hellip;hellip;每部機都有自己嘅充電線,仲有啲好舊款用USB,iPhone用Lightning,最新又係TypeC,搞到充電時成日手忙腳亂,尤其去旅行,帶幾多條線都唔夠! 呢條 CyberCom3合1充電數據線,就係為咗解決呢個煩惱而生。佢集合多種接口於一身,無論你係用緊iPhone定Android,甚至其他電子裝置,都可以用一條線搞掂晒,方便又慳位,真係你嘅生活充電好幫手! 一條線,多種接口,無懼設備多 CyberCom3合1充電數據線支援 Micro USB、USB A、Type C 同 Lightning 四大接口,無論你係iPhone、Samsung定係其他品牌,甚至係藍牙耳機、遊戲機,都可以用呢條線充電同傳輸數據。旅行唔使再帶一大堆線,行李又有位可以擺多啲戰利品啦! 快充快傳,效率up up! bull; 支援QC快充技術,最高60W輸出,手機、平板、智能手錶都可以超快充滿,唔使等成日。 bull; 傳輸速度高達480Mbps,無論係工作文件定係娛樂影片,一link就傳,節省你寶貴時間。
 耐用又防纏繞,攜帶超方便 bull; 採用彈性TPE物料,線身唔易打結,收納方便,唔怕亂晒。 bull; 線材耐用又有彈性,日常用或者出街旅行都好啱用。
 產品小百科 bull; 1米長度,無論係屋企、公司定旅行都啱用。 bull; 建議零售價 $99,依家優惠價$79就可以帶走。
 由此開始,充電更快更簡單! 設計貼心,性能強勁,係你工作同生活嘅好拍擋。無論係手機、平板、遊戲機定藍牙耳機,呢條線都幫你搞掂晒充電同數據傳輸,令你嘅數碼生活更輕鬆自在。了解CyberCom3合1充電數據線嘅詳情同優惠,幫你打造更智能、更方便嘅充電新體驗!購買網站 www.cyberportcom.com查詢電郵 info@cyberportcom.com

最新文章

星穹鐵道:中後期無課心得
手機‧電玩
MacauYeah・2024-02-08

分享前先講講為何會回鍋。因為筆者平常支持的RPG品牌Square Enix 實在不濟,每次更新完手機,它家的買斷型遊戲都攔淺。實在玩不下去,還是要回到米哈遊,星穹有中文、持續更新、自動存檔,從內容到技術上都比買斷型遊戲更適合手機遊玩。所以筆者就繼續來養成看看吧。 角色取得策略 之前筆者在其他文章內有提及過,免費課金制最大的痛點就是可取得的資源有上限,所以到了中後期,資源投資在什麼角色上是一個很重要的考量。但由於本文的主題是無課心得,所以筆者亦限定自己只使用免費卷或免費石抽4星角色。筆者的抽角色策略也很保守,各位應該可以很輕易地重複到。最簡單地講,只有弱點擊破效率不足時、打不過的主線時,才會考慮抽角色。 青雀 量子屬性 智識命途 主線第二章,豐饒玄鹿,弱點屬性為火、冰、量子。主線預設只有一火主角一冰三月七的組合,筆者實在打不過豐饒玄鹿。此時有兩個選擇,要麼就多抽一個量子角色,豐富一下隊中角色;要麼去打支線模擬宇宙,取得另一隻冰免費角色黑塔。 為長遠發展,筆者先抽角色,不過運氣不怎樣,只抽到青雀。智識命途主打群體傷害,但她沒有持續傷害加成,而且戰技有運氣成份,所以強度不高。但對於主線玄鹿至少可以一戰,有抽到朋友可以隨便升一升等級就可以。 希露瓦 雷屬性 智識命途 在中期開始,除了經普通遇敵獲取【行跡素材】之外,攻略支線【模擬宇宙】也是取得【行跡素材】的重要方法。此時希露瓦配搭虛無命途的【懷疑】debuff效果可以在【模擬宇宙】達到多重疊加傷害。有條件疊加傷害的另一個四星角色應該是素裳。筆者有抽到,但因為物理屬性重疊,所以沒有練。 另外,在正常情況下,在攻略完第一章後,預設會有一火主角一冰三月七一奶娜塔莎,再加上希露瓦,【均衡試練伍】可以穩過。通過後,可以特破角色等級上限至80,是1.6版本的封頂等級。2.0版本才剛更新,但應該沒有調整封頂等級

明星去了哪裏拜太歲?
宗教玄學
熊神進・2024-02-07

在我們認知世界中,燒香去化太歲是約定俗成的事兒,每年年初,年晚我們都看到很多信士去寺廟拜太歲,有讀者告訴我,她去拜太歲,在太歲廟排隊超過3小時。 十二生肖中,2024年有4個生肖犯太歲,分別是牛、兔、龍、狗,換句話說,12人中就有4人是犯太歲,占的百分比也很高,而拜太歲集中在正月, 因此每年都有大量善男信女擁去太歲廟拜太歲,在人群中,我們鮮見明星,歌星,大老闆, 領導,有人會問ldquo;難道他她們是沒有犯太歲?rdquo; 答案肯定「不是」,那麽,他她們又去了哪裏拜太歲? 今天筆者就把這個秘密公開。 在風水學上有一種叫「釋迦牟尼香」的隱字香,香枝是傳承師訓,秘方是不會公開,只可以說我們放在太歲廟供養,把玄粉加了進去,這玄妙是可以解除煞氣。 藝人、網紅、領導、老闆以及學校的老師,法院的同志,醫院的醫生,他她們都是公衆人物,如果跟群衆擁在一起拜太歲,可能會做成不便,于是他她們會請一盒「釋迦牟尼香」回來,自己在正月,家裏的陽臺燒香。 一盒「釋迦牟尼香」共有16枝香,第一次燒,是3枝,之後建議每月燒一枝,最後一個月,是燒3枝。 「釋迦牟尼香」還可以用在某些情况,例如: 去醫院探病回家。 去火化場回家。 去墳地掃墓回家。 近日運氣不好。 愈來愈多名人在家裏拜太歲,袪除煞氣,我們建議在陽臺燒香,亦可以在天臺,神壇上香,上香是虔誠的,不要枉了做香人的功德。我們可簡單說幾句疏文: 今據 xx省xx縣 xx市xx街道xx號xx樓(住址),信士XXX誠心僅藉此吉日良時,敬備「釋迦牟尼香」,恭迎釋迦牟尼、本命元辰李誠大將軍、南北二鬥衆星主降臨,受信士XXX虔心誠敬,叩求普照,順祈xxxx,xxxx等八句吉祥話。 誠心拜請,護我靈光。神靈護佑。

明星去了哪裏拜太歲?
宗教玄學
熊神進・2024-02-07

在我們認知世界中,燒香去化太歲是約定俗成的事兒,每年年初,年晚我們都看到很多信士去寺廟拜太歲,有讀者告訴我,她去拜太歲,在太歲廟排隊超過3小時。 十二生肖中,2024年有4個生肖犯太歲,分別是牛、兔、龍、狗,換句話說,12人中就有4人是犯太歲,占的百分比也很高,而拜太歲集中在正月, 因此每年都有大量善男信女擁去太歲廟拜太歲,在人群中,我們鮮見明星,歌星,大老闆, 領導,有人會問ldquo;難道他她們是沒有犯太歲?rdquo; 答案肯定「不是」,那麽,他她們又去了哪裏拜太歲? 今天筆者就把這個秘密公開。 在風水學上有一種叫「釋迦牟尼香」的隱字香,香枝是傳承師訓,秘方是不會公開,只可以說我們放在太歲廟供養,把玄粉加了進去,這玄妙是可以解除煞氣。 藝人、網紅、領導、老闆以及學校的老師,法院的同志,醫院的醫生,他她們都是公衆人物,如果跟群衆擁在一起拜太歲,可能會做成不便,于是他她們會請一盒「釋迦牟尼香」回來,自己在正月,家裏的陽臺燒香。 一盒「釋迦牟尼香」共有16枝香,第一次燒,是3枝,之後建議每月燒一枝,最後一個月,是燒3枝。 「釋迦牟尼香」還可以用在某些情况,例如: 去醫院探病回家。 去火化場回家。 去墳地掃墓回家。 近日運氣不好。 愈來愈多名人在家裏拜太歲,袪除煞氣,我們建議在陽臺燒香,亦可以在天臺,神壇上香,上香是虔誠的,不要枉了做香人的功德。我們可簡單說幾句疏文: 今據 xx省xx縣 xx市xx街道xx號xx樓(住址),信士XXX誠心僅藉此吉日良時,敬備「釋迦牟尼香」,恭迎釋迦牟尼、本命元辰李誠大將軍、南北二鬥衆星主降臨,受信士XXX虔心誠敬,叩求普照,順祈xxxx,xxxx等八句吉祥話。 誠心拜請,護我靈光。神靈護佑。

梅西,令我想起八字中一些有趣問題
宗教玄學
熊神進・2024-02-06

梅西是國際知名球星,最近他在中國香港惹來一場小風波,筆者不是他的球迷,亦沒有興趣參與衆人的「是是非非」,筆者只是從八字中找了一些別家師傅的批命,跟大家聊聊南北半球人在算命時是不是需要更改月支專業術數,即是出生的月份。 那位師傅認爲「梅西」是 1987 年 6 月 24 日晚上 20 時 30 分出生。他生于 6 月,玄理當年的「芒種」是6月6日至7月6日之間,理應是火熱的丙午月。但,阿根廷位于「南半球」,6 月平均溫度10度至20度之間,不像北半球的攝氏28度以上,因此這位師傅認爲他的月令其實幷不是火旺的「午」,而應當是水旺的「子」。 6月24日是甲辰日,身主「甲」木,年、月透出「丁傷丙食」,他認爲如果月令在「午」,全域「食傷無制」,必然個性狂妄、持勢淩人;但,現實中的「梅西」其實是一個不擅言詞、甚至有些靦腆的人,這有點跟北半球的「午」 出了矛盾,甚至顛倒了我們的傳統思維。 如果用了南半球的「子」,「子」中藏「癸」,「癸」爲「正印」,子辰半合水局,形成强而有力的「傷官配印」,令「食傷」不再瘋狂,變得以球迷爲重。 另一派傳統算命師有自己解釋,他們認爲甲比幫身,午戌半會,木虛火旺,喜有刦印助身,月柱丙午,火天透地藏,得令得地,喜見濕土,命書雲,太過宜洩,不及喜生扶,故金水二神成爲「喜神」。 梅西的出生日是「甲辰」,在「甲辰」旬:甲辰、乙巳、丙午、丁未、戊申、己酉、庚戌、辛亥、壬子、癸醜,以「寅卯」爲空亡。這一「卯」 在年支,與月柱「子卯刑」,凡年月支沖空亡,不會出生在富二代,因年柱是16歲前的青少年時期。從資料中,「梅西」曾在少年時患上GHD,差一點變成「侏儒」,這便是「空亡」被刑。 資深的算命師認爲年柱代表一個人的早年運,若是命主日柱帝旺在年柱甲的帝旺在卯,說明即使「空亡」被刑,愈刑愈旺,運勢反而好,能够得到貴人之助。2011年辛卯爲帝旺年,地支午卯帝旺破,午卯均是桃花,代表人緣,主名聲受損大家可以翻查他在2011年的是非,命運就是這樣有趣,2023年2月4日立春前仍是兔年,干支癸卯,也是帝旺年,午卯又一次來刑,犯太歲的他在兔年最後一天受太歲星干擾,走回12年前名聲受損,是巧合又還是人爲,筆者不評論,留給大家聊聊。

龐大的Docker Logs該如何處理? | 傳統的syslog幫到你
科技新知
MacauYeah・2024-02-02

平常大家在做單機app時,寫log有很多選擇,最簡單就是寫在檔案中。但在docker container裏面,寫檔案時要注意怎樣保留log檔,避免因為重建container時不見了。 docker 大部份官方預設image,都把log導向至stdout和stderr。這是方便docker做管理,也方便大家使用統一的docker logs指令來查看,即使到了Swarm mode底下,docker service logs也是同樣原理,使用差異不大,頂多就是不保證log的實時性。 如果網路延遲不計較的話,最大問題也是logs怎樣保存的做法。預設就是container刪走的時候,logs也會一借走。單機模式下,沿用最普遍的方法寫log的做法不是不可行,只是考慮到在極端情況下,同一個node節點中,有可能同時運作同一個service服務的多個分身replica,這裏它們寫檔案時就有機會互相搶佔。 筆者認為,比較合理的是外部提供的服務,例如syslog,把寫檔的操作交給節點的Host OS處理。然後就保證好每筆log都會是一條完整的記錄。 以下就以linux Host裏面的syslog,為大家簡介一下設定的步驟。 設定docker 導向 syslog 把該主機的docker daemon etcdockerdaemon.json,設定使用syslog driver,並以特定的方式編寫syslog tag。 quot;logdriverquot; quot;syslogquot;, quot;logoptsquot; quot;tagquot; quot;dockercontainer.ImageName.Name.IDquot; 無腦設定已完成,重啟docker就可以了。 但為了日後管理方便,能把docker log放進獨立的一個檔案中,會更易找問題。所以我們可以進一步設定syslog。我們以Ubuntu 22.04為例,可以在etcrsyslog.d下增加一個設定檔etcrsyslog.d.conf,指定看到syslog tag以dockercontainer為首的記錄,都要獨立抽出來。 # file etcrsyslog.d51docker.conf syslogtag,startswith,quot;dockercontainerquot; varlogdockercontainer.log 為免有檔案權限問題,手動指定檔案的所有權後,才正式重啟syslog。然後所有相關記錄都會寫在varlogdockercontainer.log 滾滾滾滾滾動的log檔 檔案一天一天地長大,如果可以,還是自動清掉太舊的記錄為妙。Linux Syslog,通常也會配著logrotate使用。 筆者亦以Ubuntu 22.04為例子,做了個最簡單的自動滾Log功能。目標就是當log檔案大於1M後,就要重開log檔。舊的log檔最多保留7份,多了就刪掉最舊的。 # file etclogrotate.drsyslogdockercontainer varlogdockercontainer.log rotate 7 size 1M missingok notifempty compress delaycompress sharedscripts postrotate usrlibrsyslogrsyslogrotate endscript 加了設定後,什麼都不用重啟,因為它是Ubuntu 的排程動作,到執行時就會以最新的設定檔執行,詳見etccron.dailylogrotate. 有需要手動測試的話,需要手動呼叫usrsbinlogrotate。加入d參數後,會被視為debug mode,這是官方的說法,但因為debug mode沒有執行效果,更加像是linux中常見的dry run mode。

師傅開光爲何要收取費用?
宗教玄學
熊神進・2024-01-29

#開光都是一種無償付出 曾有讀者來信問筆者, 內地師傅幫法器開光一般是不收費用, 爲何港澳臺的風水師傅幫2024年吊墜手串開光是取開光費用, 而且費用還是很昂貴? 首先你要明白, 不是所有物品天然或人工合成都可以開光加持, 風水師傅必須跟開光物品開光後才叫法器有感應才可以加持開光。 從這個說法, 我們可以知道, 爲什麽 กุมาร ทอง 不是任何師傅都可以開光。 開光加持是有一套儀軌, 業內人士叫ldquo;專用性rdquo;, 所謂ldquo;專用性rdquo;, 就是一件法器專給一位使用者,而每件開光物品開光後才叫法器都放在不同壇位上。 風水師傅又跪又拜, 燒 ldquo;許願香rdquo;幷念經, 開光法語和吉祥咒語, 把 使用者 姓名、出生資料, 先後天八卦、64卦等靈動力灌與天地陰陽之正氣到法器。我們跟佛菩薩說使用者願望,然後焚燒符籙注入能量,以金剛砂潔淨, 有的信士福份比較弱, 風水師傅還要燒 ldquo;阿彌陀佛贖罪香rdquo; 有沒有師傅免費做開光加持儀軌?我答你ldquo;有rdquo;。 免費開光加持的主要原因有三個: 1 批量開光, 又叫集體開光。師傅把一大批開光物品開光後才叫法器集體放在壇前念經, 簡單做一些潔淨動作。 2 藝人、商人、有情善信贊助了一筆開光費用等同香油費給師傅用來爲衆生的開光物品開光後才叫法器開光。 3 師傅做善事, 回饋香客。 看病收取診金, 買藥付藥費, 住院收住院費, 這是不同的商業概念; 風水師傅開光收取開光費, 而法器有法器的價格, 我們不要混淆概念,不可能請法器免開光費。古時有很多醫生是免診金, 當中的原因只有二個,一是有善心人捐贈診金,二是醫生做善事。 開光物品不能包括開光費, 而開光加持的費用主要來自: 1 潔淨的黃皮葉柚子葉金剛砂雄黃毛巾井水Hals玄粉 2 黃燭、許願香、釋迦牟尼香、藥師佛香、作明佛母香、阿彌陀佛贖罪香及一套開光專用錢包。 3 朱殊、毛筆不能回用。 4 租金。 當師傅 沒有 Charge you a penny, 請你學習感恩, 尤其時ldquo;網購rdquo;, 人心肉做, 即使師傅服務不滿足你的要求, 他她的大愛善行也是理解, 不要動輒惡評, 這是失德的修行。 我舉一個例子,ldquo;2024年黑銀剛六字明言佛牌rdquo;的開光儀軌是在壇前, 我們先做一場佛事,佛事要很多位師兄幫忙做儀軌,因此,是需要開光費用,只是筆者沒有向信衆收取,因爲背後有明星老闆代支付了。 簡單地明白了開光背後的操作,開啓智慧。Know more regulations , you wonrsquo;t lose, understand 開光加持一件法寶是需要付出正能量,師傅也是被抽取正能量。

Steam Deck 也可以作為文字創作
科技新知
MacauYeah・2024-01-23

之前筆者就介紹了,如何使用Steam Deck作為程式開發機使用。這可能對於一般讀者來講不太常用,更常用的是做一些文書處理。筆者最近也拿著Steam Deck,也一步步地補充文書處理所缺少的軟件,正式踏入Steam Deck日常之路。 如果你沒有對系統做過任何更改,在桌面模式中,只要打開「Discover」,輸入後逐的軟件的唯一package name,就可以找到相關軟件。 但如果你像筆者之前一樣,加了homebrew等第三方系統,可能所有軟件都需要在terminal中,經過指令sudo flatpak install PACKAGE_NAME。 Chrome 唯一碼 com.google.Chrome 系統預設瀏覽器只有Firefox,不習慣的話可以另外下載Chrome。有了Chrome,至少所有的雲端文書軟件都可以用,想用Google Doc也沒有問題。 中文輸入法:Fcitx5 Rime 唯一碼:org.fcitx.Fcitx5 唯一碼:org.fcitx.Fcitx5.Addon.Rime Steam Deck原本有自帶的輸入法,但只適用於螢幕虛擬鍵盤使用(即使用Steam key X,打開虛擬鍵盤),而實體鍵盤就無法轉輸入法了。這時就需要Linux上的Fcitx5和Rime了。安裝很簡單,之後還要設定一下。 首次安裝後,在啟動器(桌面左下角)搜㝷及啟動 fcitx5,然後在右下角就會見到有個新的鍵盤圖示出現。 按鍵盤圖示,滑鼠右鍵,點選configure,把Rime 加入Fcitx裏面,然後Apply rarr; Close 然後按鍵盤圖示,滑鼠左鍵,應該就會切會成中文輸入法了。這時原本的鍵盤圖示會變成中文輸入法的圖示(或者你經CtrlSpace也可以) 最後對著中文輸入法圖示,再滑鼠右鍵,可以選擇不同的中文輸入法,例如拼音、注意、倉頡等。 有了輸入法,有了瀏覽器,世界已經都是你的了。 下載器 JDownloader 唯一碼:org.jdownloader.JDownloader 它可以用來下載大部份隱藏文件,例如YouTube video audio 。但需要注要,首次下載JDownloader 後,還要經過軟件內部更新,否則不能使用。(就像很多手遊,下了主程式後還要下更新檔) 其他 如果你不是長期有網絡,還需要真離線版文書處理器,還可以看看LibreOffice,WPS Office。但這些都不能保證跟windows office 百分百轉換,可能還是使用雲版的Microsoft office 365還要實際。

街霸六-如何不要被【贏】成為競技遊戲的唯一目標?
手機‧電玩
MacauYeah・2024-01-19

眾所週知,玩遊戲普遍都是圖開心。很多朋友玩遊玩競技遊戲時,【贏】都是一個很重要的樂趣指標,但競技總不可能每個人都贏,輸的人反而是大多數。所以競技遊戲若沒有其他樂趣,玩著玩著,就會越來越少參與者。 問題是,競技遊戲真的有其他方面的樂趣嗎 筆者認為是有的,但至少參與者的心態要放開。 就像求學不是求分數一樣,探索一門新知識比分高低要來得重要,玩遊戲也更是如此。以筆者玩街霸六的情況來講,可以探索的地方實在很多 目押、取消連技 對空 對策動力衝擊 對策突進 狗昇、防狗昇 打亂動、搶制Abare 壓起身 Meaty 安全跳 Safe Jump 立回 Neutral 確反 Punish 差合 Whiff Punish 打拆 Shimmy 最後才引伸不同的角色對策。 而大部份人都一定會陷入的低潮就是當等級越高,對手的熟練度就越高,對機制的理解就越深,然後就會對戰得越沮喪。筆者因為一些原由,看到別人都爬分時都有非常沮喪的練歷,也看到退遊戲的心路歷程分享。 筆者屬低分區,無條件指導別人如何進步,但筆者可以提的意見是,要逆向思維自己會輸,是因為對方是強者,跟強者對戰,其實是在學習、在感受。有時候,筆者也會因些微差距而輸了對局。有時候,筆者也會想,是不是對方運氣好。 但感謝街霸六的對戰大堂,只要對方願意,可以很方便的跟同一位對手重複對戰。經過重複對戰,你就會知道是不是真的只是對方運氣好。更重要的是,重複對戰可以有助於大家熟知對手的策略,只要有對策,對局就不一樣。就算當下無解,也可以在訓練室再進一步研究。 街霸六的對戰機制和訓練室的各項細微功能,是眾多手遊、什至是主機遊戲,都無法提供的。可以隨時與陌生對手匹配友誼賽,可以自定義對戰,可以重播比賽,觀看對手的輸入按鍵,訓練室還可以查幀表,錄動作,混合抽樣播放動作,讓你可以有目的性地實驗、練習反應對策。 在分數線機制上也有一些保障,不同角色分數獨立,打上特別段位後有一次跌級保障。讓大家在排名賽上,輸掉也不至於十分心痛。若果心理上實在受不住排名賽的壓力,友誼賽絕對低分爬上高分區的一個試招的好選擇。在對戰大堂的友誼賽中,很易會遇到比自己排名高的對手,多找對方實戰看看,輸了沒有成本,但贏得了經驗。

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

Spring Boot - Maven Cheat sheet
科技新知
MacauYeah・2024-01-12

基礎 刪除所有結果,全部重新編譯 mvn clean compile 跑起用Spring boot寫的main class,運行Spring boot context。 mvn springbootrun # or mvn clean compile springbootrun 執行測試用例,預設只會測試test資料夾下以某些命名規則的class例如class名以Tests或Test結尾的class,其他命名規則筆者未有能力一一驗證 mvn test # or mvn clean compile test 多Profile、多組件、多測試 使用P指定編譯時的選用pom.xml中的project.profiles.profile參數。也可以用此來傳遞到spring profile,使得編譯後的spring war預設選擇特定profile。 mvn clean compile PmvnProfile # or mvn clean compile springbootrun PmvnProfile 使用pl限定mvn指令只對某個子組件生效,但有時候子組件之間也有引用關係,所以需要再額外加上am參數alsomake mvn clean compile springbootrun pl SUBMODULE_NAME am 使用Dtest=限定只執行某個class的測試用例,或單個測試函數。可以無視class名的命名規則 mvn test Dtest=TEST_CLASS_NAME # or mvn test Dtest=TEST_CLASS_NAME#TES_METHOD_NAME 若屬於多組件情況下,其他子模組找不到同樣名稱的測試,會測試失敗。需要再加上Dsurefire.failIfNoSpecifiedTests=false mvn test pl SUBMODULE_NAME am Dtest=TEST_CLASS_NAME Dsurefire.failIfNoSpecifiedTests=false # or mvn test pl SUBMODULE_NAME am Dtest=TEST_CLASS_NAME#TES_METHOD_NAME Dsurefire.failIfNoSpecifiedTests=false 打包 在本機電腦中,把java變成jar或者war。通常用於自行發佈的環境中。 mvn package 有時特定Profile沒法成功執行測試用例,或者你認為有些測試問題不影響使用,需要跳過package中的test。 mvn package Dmaven.test.skip=true # won't compile test folder mvn package DskipTests=true # compile, but won't run 例外情況 強行把一個第三方jar,種到本機電腦中的.m2repository # copy from httpsmaven.apache.orgguidesminiguide3rdpartyjarslocal.html mvn installinstallfile Dfile= DgroupId= DartifactId= Dversio