搜尋

搜尋結果

曉角Loungrun劇場系列《法吻》 一吻,賠上了靈魂
文化創意
LifeMag Editor・2017-07-21

《法吻》講述一名牧師與他的秘書熱吻之後被控性騷擾。一個法吻,讓他賠上事業、名譽、家人朋友,還有他的靈魂。他自此銷聲匿跡,直至數年後,在一個酒會上與她狹路相逢hellip;hellip;是誤會、計謀還是別有內情?兩人翻閱記憶中每一個角落,重組真相,讓這一個吻,在法庭外重新審判。法裡法外,一個糾纏不清的吻。 編劇Playwriter:莊梅岩 Candace Chong 香港Hong Kong,2011年度香港藝術發展局頒發年度最佳藝術家獎戲劇,四度獲得香港舞台劇獎最佳劇本獎 導演Director:黃樹輝 Su Fai Wong 演員Performer: 楊螢映 Anna Ieong 第23届香港舞台劇獎「最佳女主角(悲劇正劇)」 陳飛歷 Philip Chan 蔡澤民 Sam Choy 香港Hong Kong,第24 屆香港舞台劇獎最佳男配角 《法吻》獲第十五屆香港舞台劇獎最佳劇本獎,2016年曾被袁劍偉改編電影《暗色天堂》,並由張學友與林嘉欣主演,成為2016年金馬奇幻影展之開幕電影。 演出地點: 南灣舊法院大樓黑盒劇場 演出日期: 8月5日 1930 8月6日1500、1930 8月7日休演 8月8日1930 8月9日1930 8月10日1930 8月11日1930 8月12日1500、1930 8月13日1500 票價:MOP150 票價優惠: 【早鳥優惠】7月10日前購票可獲七折優惠【手牽手套票】二人同行可享260元套票優惠【團購優惠】購買任何場次,合共五張票,可獲八折優惠。

幸村 - 惡人之光
環宇搜奇
幸村・2023-07-11

人氣漫畫《One Punch Man》(一拳超人)中有一個反派組織「怪人協會」,估唔到係現實中,真係有一個相似的組織。 日本有個惡人協會(悪役商会),由一班專演惡人的專業戶,所組成的專飾演嘍囉或惡人(惡役)工會。 呢個咁特別既工會,今年岩岩踏入40週年,由一開始只有12位創會成員,但到40年後的今日也只有總共70個位成員,因為會入會條件非常嚴格,而且要進入呢個邪惡的殿堂,係東洋演藝界惡人界的至高榮耀。 睇返入會簡介,基本要求係曾經係在演藝生涯中,無論電影或電視劇,累計殺死2千人同被殺7百次,即係話好似羅樂林咁一晚死三次,都要差唔多一年先達到呢個目標,仲要殺2千人,簡直匪而所思。 香港影壇四大惡人(何家駒、李兆基、成奎安及黃光亮)所殺既人加埋都無咁多。 不過日本惡役演員本身數量不多,特攝電影嘍囉角色多數通常可以循環再用、死完又死,一部作品死幾次不足為奇,特別係好似Kill Bill(追殺比爾)等血肉橫飛的電影,一部戲就可以貢獻不少被殺鏡頭。 跟據統計,一個演員專演惡人超過30年的話,退休前基本可以滿足到入會的要求。 只係做得惡人多,有無機會轉職做一次英雄? 擔任惡人只係工作,但現實中悪役商會除了為成員提供演出機會外,還會積極參與社會公益活動。 例如,悪役商會的成員曾參與多場慈善表演,為貧困地區的孩子們帶來歡樂。此外還與不少國內外的演藝團體結緣,共同推動演藝事業的發展。 喺唔少小朋友的眼中,他們才是真正的英雄。

點解漫改真人電影咁易出事?
環宇搜奇
幸村・2023-06-27

Netflix宣佈《海賊王》翻拍真人電影,網絡出乎意料見怪不怪,預告下面不少評論又一個IP慘遭真人化 。 所謂漫改電影,顧名思義就是漫畫改編成的真人電影。日本作為動漫大國,自然不愁改編電影的題材,製作人與其花錢冒險投資新的電影,不如將現有的漫畫IP真人化。 動漫作品本身己經有粉絲票房的基本盤,其次節省編劇的成本,動漫改編電影的數量就如同雨後春筍一樣野蠻增長。 劇本、對白一應俱全,買了版權稍為修改就可以開拍。 不過俗語有話:最危險的地方就是最安全的地方,反過來說,最安全也意味著最危險。 粉絲不是一群容易討好的觀眾,只要選角,劇情或情懷其中一環稍有不慎,隨時就演變成翻車現場,拍得太過粉絲向,大眾又難以接受,無法產生共鳴,重點是導演能否取得平衡點。 更重要的是現實無法還原漫畫的誇張的表達,包括漫畫中的角色濃厚的中二個性和特色,用力過猛就無比尷尬,有時不得不佩服演員們居然能夠不笑場,當然可能已經NG過無數次。 《鋼之鍊金術師》、《進擊的巨人》等不計其數的作品翻車,動漫真人電影可以說多數命途多舛。 世事無絕對,佼佼者也不是沒有,《今際之國的闖關者》(第一季),《浪客劍心》可以說是漫改真人電影的教科書級作品。導演準確拿捏到原著本身的世界觀、以及掌握粉絲對角色的感情寄託,可見導演本身也是漫畫的粉絲。 可惜優秀的真人化電影太少,對粉絲來說,不要把喜愛的作品真人化,已經是對原著最大的尊重,有點像《金閣寺》,美好的事物應該長存心中,而不是壓榨最後一點價值。

已定!准媽媽帶薪產假調升,最低工資法案也正式出爐!
其他
澳門生活圈・2019-06-06

近日,澳門行政會完成討論 修改《勞動關系法》法律草案 以及完成《僱員的最低工資》法案 相關修改到底有什麼變動 以下,讓我們一起來探討... 產假調升及補貼 行政會完成討論修改《勞動關系法》法律草案。 法案建議 法案建議女士有薪產假由56日調升至70日,增設5日男士有薪侍產假。 其中,設過渡規定,首3年內56日產假薪酬由僱主支付,餘下薪酬由政府補貼,3年後再檢討政府補貼措施。 法案建議自公布翌日起生效。 本月5號,行政會發言人表示: 預計政府每年對產假的補貼金額約4,000萬元,預計政府3年的補貼金額約為1.2億元。 另外,該補貼措施於法案生效後,首3年期間屆滿後進行檢討是否仍需再補貼? 勞工局副局長吳惠嫻回應表示: 法案生效後,僱主須向本地女性僱員安排70日產假,並支付56日薪酬,剩下的14日薪酬則由政府補貼支付。 男士有薪侍產假 法案建議 男性僱員因成為父親,可享有5個工作日的有薪侍產假。 在嬰兒出生前,又或於出生後30日內,連續或間斷地享用,且勞動關系已滿1年的男性僱員有權收取侍產假期間的薪酬。 法案生效後,外地女性僱員方面,僱主需安排70日有薪產假及支付70日薪酬。 對於有薪產假由現行的56 天調升至70 天,勞工界議員認為,70天產假過少,香港早已將有薪產假提升至98 天。 本澳作為國際化城市,勞動政策應跟隨國際趨勢及發展,提高產假天數,讓婦女產後有足夠時間休養生息、調理生理狀態。 對於增設5天男士有薪侍產假 鄰近地區早已推行 男士有薪侍產假措施多年 現時,本澳起步實則太遲 不過,總歸是來了 爸爸們也不用那麼辛苦兩頭跑了! 周假與強制性假日重疊 《勞動關系法》法案還引入周假與強制性假日重疊的處理方法。 法案建議 僱員享受有薪休息時間與強制性假日出現重疊時,重疊當日按強制性假日處理; 僱主須在30日內另行安排僱員的周假。 增設可選擇性的補償制度 此外,勞資雙方得以書面選定周假及強制性假日工作而獲得補償的方式: 「一工一假」的補償,協商為以「兩假」作補償,而強制性假日工作後獲得的額外「兩工」可協議選擇金錢補償或補休。 強制性假日補償休假 法案建議 法案建議將僱員於強制性假日工作後可享受補休的期間,由現行規定的30日內享受,延長至3個月內享受。 同時,增設按比例計算補償的處理方法; 如:僱員在周假或強制性假日工作期間,因自身原因而終止工作,除當日的報酬外,有關的額外補償均按其已工作的時數計算。 月薪最高可賠21,000元 另外,政府調升用於計算「不以合理理由」解除勞動合同的解僱賠償的月基本報酬最高金額, 法案建議由現行澳門幣20,000元調升至澳門幣21,000元。 法案規定 適用於生效前訂立的勞動合同及協議,如於生效前訂立的合同條款為本法律不容許者,自動被本法律的強制性規定取代。法案建議自公布翌日起生效。 除以上相關法案意外 僱員的最低工資的法案 也在同日中新鮮出爐 相關月薪以及報酬都有所改動 大家也要對此了解一番! 月薪最高可賠21,000元 本月5號,行政會公布《僱員的最低工資》法案內容。 全面最低工資法案正式出爐,最低工資以基本報酬計算,不包括: 超時工作報酬、夜間工作或輪班工作的額外報酬、雙糧或其他同類性質的給付,若按實際生產結果計算報酬,則以當月基本報酬除以當月實際工作時數,平均每小時不低於32元。 最低工資金額出爐 按月計算為6,656元; 按周計算為1,536元; 按日計算為256元; 按小時計算則為時薪32元。 法案建議 僱員提供超時工作,有權收取按《勞動關系法》規定計算的超時工作報酬,且用於計算超時工作報酬的每小時正常報酬,不得少於其所適用最低工資金額的平均每小時基本報酬。 例如,僱員薪酬為每月6,656元,按時計算則除以30日,再除8小時,約為時薪27.7元,在自願加班情況下,即以27.7元加20%的額外報酬,得出33.2元; 在強制超時工作情況下,則是27.7元加50%的額外報酬,得出40.5元,令時薪不會低於32元。 按照2017年統計, 現時時薪低於32元、 月薪低於6,656元的僱員 約為55,000人, 扣除24,000名家傭, 預計法案將惠及30,000名勞工。 局方希望透過全面最低工資立法,在制度上保障僱員獲得基本工資保障。 家傭月薪不低於3,000元 對於為何豁免家傭與殘疾勞工,勞工局副局長吳惠嫻指: 由於家傭僱主並非以營利性質聘請家傭,經公開咨詢後決定將家傭排除在外,但強調當局在審批家傭申請時,會視僱主提出的薪資條件,令家傭月薪基本不低於3,000元。 殘疾僱員 至於殘疾僱員方面,要平衡殘疾僱員就業權益及工資水平,且政府已對殘疾僱員實施臨時性補貼津貼,每月約3,450元,目前沒有考慮取消津貼。 法案規定適用於生效前已訂立且於該日仍存續的勞動合同及協議,但就之前的事實效力或狀況已完結的情況除外。 時薪32元仍偏低 現時,政府建議的平均32元最低時薪,比香港2015年的港幣32.5元最低時薪還要低。 舉個例子,香港最低工資委員會在2年1檢期間,會提交檢討報告及調升最低工資建議予行政長官。 澳門此前一行業兩工種最低工資法律規定1年1檢,但到現時才建議提升到32元。有議員建議,全面性最低工資應該是1年1檢,否則不知何時才能調升到香港現時37.5元的水平。 法案適用於 全澳各行各業僱員,但家務工作僱員及殘疾僱員可豁免,有關法案將送交立法會審議,法案通過並公布後180日起生效,其後每2年檢討1次,按經濟發展情況調整有關金額。 看到這裏 相信市民都有所了解 產假、疊假、最低工資 都已按相關修改完成的法案來定 對於以上這幾類修改 您們有什麼看法呢? 素材來源:力報、行政會、網絡 圖片來源:力報、攝圖網、表情包 如有侵權,請聯系我們刪除 版權屬於原作者 編輯撰寫:小嚕

GoPro 的「Omni」VR 拍攝套件搶先看
科技新知
LifeMag Editor・2016-04-16

說到 GoPro 的 VR 拍攝套件,你首先想到的,可能是他們跟 Google 聯手打造的「大殺器」Odyssey。但其實在那之前,這家公司就已經確定了自產裝置的開發計畫。去年年中時,這款後來被命名為「Omni」的產品,就已經跟空拍機一起,得到了 GoPro CEO Nick Woodman 的親口證實。在那以後,我們陸續見過幾款 Omni 的原型機,但直到今天,廠方才終於公開了成品的外觀設計,並且拿出了實拍樣本與大家分享。 跟裝載 16 台 GoPro 相機、總價 US$15,000 還不是人人能買到的 Odyssey 相比,「只」需要 6 台 Black(大概價值 US$3,000)的 Omni,門檻無疑要低了不少。而且對許多專業用戶或 Prosumer 來說,可能目前擁有的裝置數量就已經達到了要求。不過,Omni 跟 Odyssey 有一處明顯的不同是,它並不會以 3D 形式來拍攝內容。但 GoPro 聲稱自己能在相機之間實現「畫素級別」的同步效果,而且整套系統也可搭配 Kolor 合成軟體(去年四月被 GoPro 收購)無縫使用。值得一提的是,在新發佈的產品圖中,Omni 內部看起來似乎無法容下相機的防水外殼,這跟之前流出的照片不太一樣,看來還有待官方進一步的確認。 實際上,類似的第三方 VR 拍攝組目前在市面上也有不少(你甚至可以用很低的成本去 3D 列印一個出來),但在相機調配、影片合成等方面,總不如原廠方案來得到位、省心。而 Omni 就是至今為止第一款完全由相機廠商自己開發出來的套件,照理來說,在使用上的優勢應該還是非常明顯的。當然囉,其價格多半也會更貴一點,雖然具體的數字現在還沒確定,但在即將舉行的 NAB 大展上,GoPro 應該會告訴我們更多的發售細節吧。 轉載自:Engadget

2025 個人年度模型總結(下)|唔上唔落,特別有愛再入手系列
手機‧電玩
MacauYeah・2025-12-25

SDEX 巴巴托斯天狼座 SDEX 命運 不過這一兩個模的問題,而是整個SDEX都需要大量補色。雖然外型不錯,強行把玩還是可以的。但因為工作量問題,沒有時間或者耐性,就盡量不要碰。想要練手嘅朋友反而可以多買。 EG Nu 主體套件是沒有問題的,問題就是官方一直沒有推出配件包。筆者試過買Fake Nu 背包,能安裝,但會有重量不平問題。正式配件包,據說下年是會推出的。有愛可以考慮先團主體,然後等配件包,避免事後加價。不想等的話,可以買副廠配件包也可以。那為何筆者會買它呢?主要是初期練手刻線為主。EG的特點是造型可以,但板件數不多,可以快速到實驗你想試的事。 HG EXIA 舊模,純情懷向,需要補色。第三方水貼亦唔見有,真係要靠自己。可動唔算好好,但得益於輕裝甲的設計,裝甲干涉唔多。能做完還是很有吸引力的,但真的要花功夫。 RG Wing Zero EW 天使翼有一個很特別嘅吸引力,上支架可以做出好多華麗嘅造型。因為呢款係舊款RG模型,所以有軟骨問題,好在佢唔係走Seed 系路線,靠一雙翼都可以有好多變化。硬要走手持巨炮的路線,就要考慮使用多支架。 HG Mighty freedom 去年劇場版模型,雖然係新設計,拼裝體驗是很好的。但外型對比MR魂,榮耀防衛者有一些決定性的缺陷,翼的張開角度沒能完好配合身體。除非大家識自行改造,如果唔係背包會有少少奇怪。平時亦需要支架支撐。 原本還有兩隻想介紹的模型,不過因為真係純粹吐槽,就不介紹了。今年嘅分享就到呢一度,新嘅一年,祝大家心想事成,事事順利。

2025 個人年度模型總結(中)
手機‧電玩
MacauYeah・2025-12-24

續上編分享,繼續曬一下筆者推薦的模型 HG 炮型脈衝 呢一款係筆者第一款買嘅PB 模型。因為算係新生系列中比較舊嘅款,所以若要效果好,就要大量補色。而且因為係PB,所以說明書說上沒有官方作例,筆者只可以參考RG模型作補色。 另外,筆者都做咗一個嘗試,就係加入花紋貼紙(RG 借來的),整體即刻提升咗一個層次。所以若果唔想做太多功夫嘅朋友,都可以搵搵有冇第三方水貼。 HG 命運 呢款係模型圈裏面唔少人推介嘅模型,有些玩家都話可以直接平噴,唔需要做複雜嘅遮蓋上色。筆者就理解為,對於素組玩家嚟講應該更友善,唔需要自己補色。筆者製作之後,覺得翅膀還是有點素,如果唔買水貼嘅話,要喺翅膀補色落返啲功夫。 整體可動性唔錯,但唔可以同MR魂比,翅膀比較受限,大刀同大炮亦冇MR嗰種局部放大的設計,如果你按照MR官圖去拍攝,你可能會覺得HG 少咗一份氣勢。除此之外都算正常發揮。 HG 維爾達 便宜好物,只要你識補色就可以。呢款模型有一啲白色或者奶白色嘅補色貼紙,真係要落筆補色要考慮遮蓋力問題。想偷懶嘅話,用返貼紙亦都OK。其他部份都係深灰色補色,遮蓋力,一般都冇問題。因為肩甲上邊有花紋,前裙甲亦係特殊造型,唔需要特別買水貼去提升線條感。 HG GQuuuuuux 今年嘅新作品,結構真係好特別,冇進行補色,亦冇滲線,整體顏色已經好鮮艷。 唯一比較難接受嘅,就係佢嘅頭部造型。如果你接受到造型嘅話,只要唔係價錢出現溢價,都可以買。最近(年底)亦見到有價格回落嘅情況,所以係一個好好嘅出手時機。 和模線 塔斯提爾 上年發售嘅國模產品,筆者今年先正式完成。和模線唔算係一個內卷廠商,無合金骨架,但係佢嘅設計嘅産品都仿人形,比例做得唔錯,構造有心思,體驗好過魔動核好多。唔洗補色,亦唔使靠水貼去提升細節。部份地方有蝕刻貼,只限於眼睛部份。 值得推薦的部份已經講得差不多了,下一期就介紹一下筆者踩過的坑。

Swarm mode 上線 5 - load balancer | 還有那些事該考量?
科技新知
MacauYeah・2024-11-18

前面介紹了 ingress network ,亦介紹了 proxy gateway 。能做到的基本都做到了,再來就是考量安全性的問題。因為加了 proxy gateway ,前述的例子是所有 service ,都放在同一個 yaml 檔中。好處是,所有相關的東西存放在同一個檔中, gateway ,背後的 service 都一眼看到。但壞處就是有其中一個 service 更新,都要改那個 yaml 檔。更大的問題是, stack deploy 的指令,不單只更新其中一個 service ,就連其他 service 都會自動取得最新 image 而 redeploy 。 對於一個緊密的系統來講,同步更新可能不是大問題。但對於一些預定排程發佈的系統可不能這樣因為副作用而更新了。如果你也有這樣的分開管理需求,可以參考下面做法,把 gateway service 及 upstream service 放在不同的檔案中,然後經過 external network把所有 service 串連起來。 # nginxstack.yaml, docker stack deploy c nginxstack.yaml nginx services httpgateway image httpgateway ports 80808080 deploy replicas 1 update_config delay 10s restart_policy condition onfailure # managerstack.yaml services managerhttp image bretfisherhttpenv networks nginx_default default deploy replicas 3 update_config delay 10s restart_policy condition onfailure placement constraints node.labels.zone==manager networks nginx_default external true # dmzstack.yaml services dmzhttp image bretfisherhttpenv networks nginx_default default deploy replicas 2 update_config delay 10s restart_policy condition onfailure placement constraints node.labels.zone==dmz networks nginx_default external true 這樣,不同 service 的維護人員,就可以獨自控制自己的檔案。在第一次發佈時,確認 nginxstack.yaml 先行發佈就可以了。對應的發佈指令是docker stack deploy c nginxstack.yaml nginx,它會自動産生一個 nginx_default (即 stack名字_default )的網絡。之後其他service,就可以經networks的設定找到它了。 services YOUR_SERVICE networks nginx_default default networks nginx_default external true 上述即使分離檔案,在安全性考量時還是有一個問題,就是 ingress network 的問題。試想一下,dmzhttp (Demilitarized Zone)原本被設定的原因,就是想限制某些訪問只能一些可以公開的服務。但因為經過 ingress network 之後,它們會在所有機器上開放這些 port。那就是,以下面的例子來講,若 dmzhttp 是公開的服務, intrahttp 是內部服務,即使用 intrahttp 使用不同的port 8889。但一經 swarm mode 預設的 ingress network ,在node.labels.zone==dmz的那些節點,還是可以訪問到 intrahttp 。 services dmzhttp image bretfisherhttpenv ports 88888888 deploy replicas 2 update_config delay 10s restart_policy condition onfailure placement constraints node.labels.zone==dmz intrahttp image bretfisherhttpenv ports 88898888 deploy replicas 3 update_config delay 10s restart_policy condition onfailure placement constraints node.labels.zone==intra 我們前述介紹的 proxy gateway ,其實已經有一定程度可以解決這個問題。因為 proxy gateway 是根據 http 協定中的 host header 去做分流。在邊界網絡進來的「合法」訪問,道理上會好好地經引導到我們的 dmzhttp 。不過網路的邪惡可容小看, proxy gateway 也會有被騙的一日。有特定能力的攻擊者,只需找到目標域名,還是可以接觸到 intrahttp 。 若要做進一步隔離,在這種情況下,我們可以在 dmz , intra 機器中各設定一套 swarm ,完全獨立,這是最安全的做法。但這樣做的管理成本就會變高,因為兩個網段都會有自己的 manager 節點,而且在 dmz 網段的 manager 節點也有被攻擊的可能。 若我們回到單一 swarm 的方向,可以修改各個 service 中的 port 和 deploy 。利用 post mode 中的「host」,配合 deploy mode 中的「global」,完全跳開 ingress network。 services dmzhttp image nginx ports target 80 published 8888 mode host deploy mode global update_config delay 1s restart_policy condition any placement constraints node.labels.zone==dmz intrahttp image bretfisherhttpenv ports target 8888 published 8888 mode host deploy mode global update_config delay 10s restart_policy condition onfailure placement constraints node.labels.zone==intra 上面的例子中, dmzhttp 會在所有 dmz 的機器中,每個節點只運行一份服務,而且直接使用該機的 8888 port ,外面不會再有 ingress network 的 存在。同樣地,intrahttp 會在 intra 的所有節點,運行一份服務,佔用它們的8888 。這兩個服務,即使使用一個 port ,swarm 也不會說有任何問題。因為它們不會經 ingress network 搶佔其他人的 8888。 可能會有讀者問,如果 host mode 這麼安全,為什麼預設會是 ingress network,那我們就要先了理清 ingress network 與 host mode 有有什麼分別?假設我們只運行一個service,它佔用8888。 功能ingress modehost mode replicas 數 同一個 service replicas 為任意數量,什至比節點的數目多 因為有 port 限制,每個節點最多只能運行一份 Virtual IP Virtual IP 任意在節點中跳轉也可以,因為 ingress 會自動找到對應的 service 所在的節點 Virtual IP必需要與 service 所在節點綁定,其他節點訪問不到 load balance 有 沒有 host mode 就像我們傳統在各自的節點上自行佈署自己的程序,各個節點只有一份。所以不會有自動 load balance 的效果,如果客戶端訪問固定的IP,就會得到是固定的接器接受請求。我們有需要,就要在前面加一個 Proxy Gateway 或 HA proxy 。 Virtual IP 也一樣, host mode 下需要好好地自動跟著 service 的生命期,不過幸運的是, Docker 預設己經有自動重啟 service 功能,即前文中的 restart_policy ,它在 host mode 下也適用。如果大家有配合 deploy 中的 global mode , Virtual IP 的並沒有實際變動。但如果沒有 global mode ,就要再想想辦法了。 最後考慮 load balance 的問題,如果進入點的 service 的真的不太消耗資源,沒有 load balance 也是可以的 ,但若超負荷,就必需要自建 proxy gateway 。經過進入點後,若我有背後的 service 就沒有所謂的 ingress 和 host mode 選擇。

Spring Boot 03 - 做好Database的模組化及測試用例
科技新知
MacauYeah・2024-04-12

這節,我們將會使用springdatajpa,寫一個業務上的資料庫模組,提供資料表的存取,讓你的好同僚可以直接使用。這樣可以在多模組的環境中,減少同一個資料表在不同地方重複又重複地重定義。將來要更新,也可以使用jar檔的方式發佈。 下戴模版 我們跟上節一樣,使用Spring Initializr Maven 下載模版,但細節筆者就不再講啦。Dependency主要選擇 H2 Database Spring Data JPA 對pom.xml作一些微調,並把springbootstartdatajpa,h2改為只在測試中生效。 並把Java檔案搬一搬位置 # old location srcmainjavaiogithubmacauyeahspringboottutorialspringbootdatatestSpringBootDataTestApplication.java srcmainresourcesapplication.properties # new location srctestjavaiogithubmacauyeahspringboottutorialspringbootdatatestSpringBootDataTestApplication.java srctestresourcesapplication.properties 以上的操作,主要是因為我們的目標是提供Schema,或者叫資料表規格。其他用於做連線的操作,我們不需要打包在jar內。所以把那些次要的東西都放在test資料夾中。我們這時可以先用mvn test指令,確保一切功能還是正常。 Entity folder 然後我們入正題,在pom.xml中加入hibernatecore,springdatajpa, 然後在main資料夾下加入 Entity、Repository,例如前述用過的Apple和AppleRepo,最後資料夾就像是這樣。 . pom.xml src main ` java ` io ` github ` macauyeah ` springboot ` tutorial ` springbootdatatest Apple.java ` AppleRepo.java ` test java ` io ` github ` macauyeah ` springboot ` tutorial ` springbootdatatest SpringBootDataTestApplication.java ` SpringBootDataTestApplicationTests.java ` resources ` application.properties 然後我們在Test Case中使用AppleRepo @SpringBootTest class SpringBootDataTestApplicationTests @Autowired AppleRepo appleRepo; @Test void contextLoads Apple apple = new Apple; apple.setUuidUUID.randomUUID.toString; apple.setWeight100.0; apple.setGravity1000.0; appleRepo.saveapple; 這個跟前述02springdatajpa最大的差別,就是我們的main中只有Entity相關的Class,我們發佈jar,別人引用我們的class,別人不會解發其他不相干的商業邏輯。假如發佈02的例子,因為Spring有自動初始化Component的原因,很可能會誤觸發02中的BasicApplicationRunner.java Source Code spring boot data test

Spring Boot 02 - 快速接入Database的選擇: Spring Data JPA
科技新知
MacauYeah・2024-03-08

快速下戴模版 使用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或以上 Dependency Spring Data JPA, Spring Boot DevTools 這次不像過去順利,因為這裏欠缺了Database連線資料,為了方便測試,我們先在pom.xml加入 h2與spring的整合很好。即使用什麼都不設定,直接運行mvn springbootrun,都可以成功執行了。但如果可以,在application.properties加入資料庫設定,會方便日後移植到其他常用的資料庫品版牌。 # srcmainresourcesapplication.properties spring.datasource.driverclassname=org.h2.Driver spring.datasource.url=jdbch2memtestdb; spring.datasource.usename=random spring.datasource.password=random 然後我們就可以做靠Spring Data JPA去生資料庫的表 table。Spring Data JPA預設使用的是Hibernate。假設,我們有一個表叫APPLE。我們就可以開一個class Apple和一個interface AppleRepo去接它。 srcmainjavaiogithubmacauyeahspringtutorialspringbootdatabasicApple.java @Entity public class Apple @Id String uuid; Double weight; getter setter srcmainjavaiogithubmacauyeahspringtutorialspringbootdatabasicAppleRepo.java public interface AppleRepo extends JpaRepository no content here 注意,因為不同需要,AppleRepo可能繼承不同的XXXRepository,它們大部份都是用來觸發寫入資料庫的指令。而這個也晚除了直接存取Hibnerate EntityManager的需要。 亦因為我們現在用的是h2Database,其實資料表並不存在。我們需要在執行Spring Boot時,同步先建立表,所以在application.properties 加入自動建表的設定。 # srcmainresourcesapplication.properties spring.jpa.generateddl=true spring.jpa.hibernate.ddlauto=update 然後在Spring Boot Context的環境下,可以隨時執行寫入的操作。 @Autowired private AppleRepo appleRepo; public void saveApple Apple apple = new Apple; apple.setUuidUUID.randomUUID.toString; apple.setWeight100.0; appleRepo.saveapple; Source Code spring boot data basic 因為h2Database只是用作測試用,所以springboot執行完,資料庫就會被刪除。而上述原始碼當中,還附上了一些dump sql的方法,至少可以讓大家驗證己儲存的結果。