搜尋

搜尋結果

【新加坡】§美食§ 無招牌海鮮 No Signboard Seafood (Vivo City 怡豐城店) ~ 必食辣椒蟹 美味難以忘懷!
全球飲食
80後愛旅行✈️・2018-09-28

無招牌海鮮No Signboard Seafood這個特別的名字, 相信去過新加坡或者看過新加坡資料的人都不會陌生。 無招牌海鮮創立於1981年, 是由真正沒有招牌的小販起家, 到現在已有多間分店。 其原創新穎的菜單蜚聲新加坡, 其中必試的有富新加坡特色的辣椒蟹和黑胡椒蟹。 我們去的是怡豐城Vivo City的分店 Vivo City就是坐捷運去聖淘沙環球影城的商場 我們去完環球影城回來就吃大餐了~!! 我們去到的時候是晚上19:00多 在沒有訂位的情況下竟然有位置, 實在太幸運了!! 想確保有位置最好還是先預約 ► 無招牌海鮮餐廳 - 濱海藝術中心/怡豐城/克拉碼頭 No Signboard是小販起家的, 但現在已經是有多間分店的飲食集團 Vivo City店的裝修真的很金碧輝黃, 也加上了不少的中華元素 這裡最有名的是辣椒蟹和黑胡椒蟹, 兩個人點一隻螃蟹再加上一兩個小菜, 絕對是完美一餐! 我們就點了Chilli Crabs 辣椒蟹, 一個甜酸排骨, 再一個炒飯, 真的吃得超飽的! Chilli Crabs 不單止蟹好吃, 連醬汁都一樣超美味, 它的醬汁不會太辣, 但非常有層次, 拿來送飯一個人絕對能吃兩碗!! 最後附上部份餐牌 看看這裡的蟹有超多種吃法, 每次去新加坡都吃也不會厭! 就算是不吃辣的朋友也能吃到美味的蟹 No Signboard Seafood No Signboard Seafood: 1 Harbourfront Walk, #03-02 VivoCity, Singapore 098585 電話: +65-6563769959 營業時間: 11:00-22:30 網址: http://www.nosignboardseafood.com/ 交通: 地鐵CC、NE線至HarbourFront站 檢視較大的地圖

【希臘。聖托里尼】§美食+美景§ 伊亞 Oia Lioyerma Lounge Cafe Pool Bar ~ 池畔美景 海天一色 渡假休閒之選
走遍世界
80後愛旅行✈️・2018-09-26

「Lioyerma Lounge Cafe Pool Bar」是在聖托里尼伊亞Oia的最頂端, 就在我們的酒店前面 第一天來到聖托里尼, 到酒店放下行李後就出來覓食了~ 從酒店出來就見到這間超漂亮的池畔餐廳, 我們就進來囉... 這就是Lioyerma Lounge Cafe Pool Bar的範圍, 喜歡的可以在泳池暢泳, 不想游泳的坐在陽傘下看海, 真的身心舒暢~ 餐廳內還有一隻船呢 池畔餐廳有很多位置, 都可以隨便坐。 這麼難得來到聖托里尼, 當然要坐近海邊, 靠近美景! 我去的時候是5月, 其實還蠻涼的, 大概20幾度吧, 完全不想下水 但是外國人不這麼怕冷~!! 看到他們都有游泳, 享受Relax的假期 ♦ 聽說只要點一杯飲料, 就可以在這裡暢泳囉! 不打算游泳的我們就坐著, 看看風景, 吃遲來的午餐~ 本來想坐望海的「雅座」, 就是照片最右邊的那些, 可是聖托里尼的太陽真是太毒, 沒有太陽傘的話真的會被烤焦 最後還是乖乖坐在傘下就好了~ 「Lioyerma Lounge Cafe Pool Bar」的位置真的一絕 建議日落的時候也可以來這邊, 這也是看日落的一個好地方! 網上對這間餐廳的風評好壞參半, 好的就是風景真的很美 而壞的就是這裡的服務不太好, 其實可能是這裡的生活方式不像我們這麼緊湊 他們都會放慢步伐, 所以我們的午餐也在點餐後快1個小時才到 (餓死寶寶了...) 我們只點了些輕食, 填填肚子就算, 打算晚上再吃大餐!! Lioyerma Lounge Cafe Pool Bar Lioyerma Lounge Cafe Pool Bar : Οία, Σαντορίνη 847 02 Greek 電話: +30 2286 071190 營業時間: 10:00 - 00:00 網址: http://www.lioyerma.gr/ 檢視較大的地圖

Goa Nights「果阿之夜」 澳門時尚印度小吃餐廳及手工雞尾酒酒吧登陸氹仔舊城區
澳城餐飲
LifeMag Editor・2018-03-24

以嶄新的酒吧體驗,展開印度美食之旅 澳門氹仔舊城區欣然宣佈,全新印度小吃酒吧餐廳 Goa Nights「果阿之夜」隆重開幕。餐廳為顧客提供糅合經典與現代的印度菜式及調配別具特色的雞尾酒。 名副其實,Goa Nights 的菜式以時尚風格,引進傳統而嶄新的印度及果阿風味佳餚,配合一系列極具創意的雞尾酒,讓顧客感受異國風情。Goa Nights 內的波希米亞風格的調酒吧,由屢獲殊榮的印度調酒師 Chetan Gangan 帶領下,為顧客調製出各式各樣極具創意的手工雞尾酒。Gangan 於 2017 年度 Bacardi Legacy 獲得亞軍,同年更榮獲 Belvedere Vodka Relearn Natural 雞尾酒比賽之冠軍。美味的印度風味菜單由來自印度具豐富經驗的廚師團隊烹調,菜餚擺設由澳門著名的葡萄牙大廚 Andre Correia 設計,Andre 曾主理多間澳門高級餐廳,包括新濠天地蘇濠的 T for Tapas 餐廳和澳門銀河的 The Apron 蠔吧扒房。 酒保及調酒師 Chetan Gangan 氹仔城區有限公司市場推廣副總監陳詠璇表示:「Goa Nights 的開幕能為氹仔舊城區帶來獨特的印度風味,我們為此而感到高興。這家小吃酒吧餐廳不僅令氹仔舊城區的餐飲業面貌生色不少,也為本地及國際旅客帶來嶄新的餐飲體驗。氹仔舊城區擁有多元化的美食,進一步奠定澳門獲聯合國教科文組織(UNESCO)評為『創意美食之都』的榮譽,為顧客帶來更多國際佳餚選擇。」 位於氹仔舊城區的中心地帶,這座樓高三層的餐廳提供一系列精選的酒吧小吃和主菜,配合極具創意的招牌雞尾酒,誘發顧客之味蕾。特色酒吧小吃包括果阿之夜烤雞肉配粟米片、烤雞迷你漢堡、拉法炸魚;此外還有叫人垂涏欲滴的主菜如印度鐵路咖喱羊肉及酸咖喱豬肉。菜餚配上 Gangan 親手調製的特色雞尾酒,包括 Lisbon、Calicut、Mozambique、 Mombasa 等,每款雞尾酒分別以一種香料、水果或烈酒製成,並按數字排列在葡萄牙航海家 Vasco de Gama 的航海地圖上,一同經歷其發現果阿之旅程。 印度香料美食集團 Indian Spice Group 東主 Gagan Sethi 表示:「我們的餐廳 Indian Spice 在澳門開業以來極受歡迎,現在能將業務擴展至氹仔舊城區,我們為此感到非常興奮。靈感源自前葡國殖民地果阿的時尚印度小吃酒吧餐廳,Goa Nights 的進駐將令氹仔舊城區的餐飲發展更上一層樓。」 隨着 Goa Nights 開業,將繼續帶動氹仔舊城區成為澳門首選的美食旅遊目的地,提供各種本地及國際佳餚,滿足不同的消費群。Goa Nights 進一步奠定氹仔舊城區致力推動餐飲文化的理念,對澳門非搏彩旅遊業的可持續發展作出重大貢獻。 Goa Nights 地址:澳門氹仔告利雅施利華街 118 號 營業時間:星期二至星期日,晚上 6 時至凌晨 1 時 訂座電話:+853 2856 7819 電郵:contact@goanights.com

你喝對水嗎?飲用水的3個錯誤觀念
專題報導
Chrysalids 少爺・2017-08-17

從朋友處得悉一個有趣的職業,紅酒有專業的嚐酒師,而咖啡則有舌頭靈敏的品味師。但原來我們身邊看似淡而無味的水,也有品水師,喝水也能變成一種職業,那麼我們每天喝對了水嗎? 水, 飲水, 喝水, 健康飲品, 飲用水 人體含有80%的水分。補充水分能夠有助於維持皮膚的健康。角質層若維持10-30%的水分,皮膚會顯得有光澤和水潤。但當皮膚耗損10%的水分時,爆拆和乾裂等問題就會一一出現,甚至引發乾燥性皮炎。 水, 飲水, 喝水, 健康飲品, 飲用水 中藥學巨著《本草綱目》提到:「藥補不如食補,食補不如水補。好水是百藥之王。」水的分類林林總總,有井泉水、流水、河水等,喝甚麽樣的水對人最有好處呢?事實上水的潔淨是飲用水最基本條件。 水, 飲水, 喝水, 健康飲品, 飲用水 香港水務署確保香港食水供應的品質安全,而由於水經過大廈的水缸、水道、水管等,或多或少會有一些雜質,所以建議大家精明地選擇一個適合的濾水器(詳情可參看較早前消委會的濾水器測試報告)。最近剛剛搬屋,新居的廚房我也特意花了數千元買了一個濾水器。雖然貴了點,但是這個投資我認為是值得的。 水, 飲水, 喝水, 健康飲品, 飲用水 此外,一般人都會對飲用水有些錯誤的概念: 1. 每日8杯水「8杯水」只是一個概念。水的來源包括飲用水、湯、果汁及食物中的水分含量。每個人所需的水量會因應體質、年齡、氣候、地域等因素而不同。 水, 飲水, 喝水, 健康飲品, 飲用水 在中醫的角度,人體的脾胃主要負責輸送水液及營養物質到身體不同部分,包括皮膚。脾胃功能弱的人,經常會覺得喝很多水都不夠而變成一種強迫性的喝水習慣(Compulsive drinking)。因此保持脾胃的運作正常是最要緊的。 水, 飲水, 喝水, 健康飲品, 飲用水 2. 使用電熱水瓶 一般我是不主張用電熱水瓶的。有不少研究顯示,水在不斷的煮沸翻煲時,會出現水老化的現象,同時會釋放有害物質。同時隔夜的水最好不要喝,因為放久的水容易會滋生細菌。 水, 飲水, 喝水, 健康飲品, 飲用水 3. 喝偏鹼的水有助健康剛於這個問題我翻查了幾本的書籍及徵詢了兩位資深醫生的意見,答案是人體的pH值是在一個恆定的狀態,不可能喝一些飲品或吃一些食物便能改變。 水, 飲水, 喝水, 健康飲品, 飲用水 我們的肺臟及腎臟有足夠能力能維持身體的酸鹼平衡,只有醫學上的某些藥是要透過調節尿液的pH值來減輕腎石生成的情況。最近我在市面上買了不同類型的瓶裝水作研究。一般在pH值7-7.5間的水口感最好。 水, 飲水, 喝水, 健康飲品, 飲用水 這段學習茶道的日子裏,深深感受到「八分之茶遇水十分,茶亦十分;八分之水,試茶十分,茶只八分」的說法。無論是否泡茶,質量好的水除了有助身體及皮膚的健康外,確實會令飲品或食物生色不少。 以上文章及圖片均轉載自網路,所有版權歸原作者所有 原文地址:https://hk.style.yahoo.com/

【日本。京都】├住宿┤ Super Hotel 超級酒店 烏丸五条店 ~ 離京都駅一個車站 價錢相對划算的酒店
走遍世界
80後愛旅行✈️・2022-08-18

Super Hotel 超級酒店是日本大型的連鎖酒店, 北至北海道, 南至九州, 甚至沖繩都有他的分店。 今次在京都住的是烏丸五条店, 地理位置不算非常好, 因為它與京都駅有一站之隔, 酒店是位於烏丸五条上, 但因為這樣價格相對優惠。 而由酒店往京都駅也不一定要坐地鐵, 幾天下來我們多用走路的, 大概10-15分鐘左右的步程。 另外我們選擇這裡的原因還有它離「夢館」很近, 來京都當然要穿和服啦!! 還有這是Super Hotel的費用也是包含了早餐!!! 和大阪的Via Inn一樣!!! (截圖自Google Map) 但是Super Hotel (烏丸五条店)走前一兩分鐘就有一個巴士站, 其實也不用每次都回到京都駅坐車, 在烏丸五条巴士站坐車到景點一樣可以。 (截圖自Google Map) 我們由大阪坐JR到京都駅, 然後坐地鐵到「五条駅」, 然後在8號出口出去 8號出口都是樓梯, 攜帶大型行李又沒有壯丁搬行李的朋友們慎出!! 但是地鐵五条駅的8號出口是最近的, 因為出來後左手邊就是酒店了!!! 酒店本身有一個停車場, 一天1000円, 但位置不多。 我們這天來到時就是酒店停車場已經沒了, 但是附近還有很多很多停車場, 找一個價錢合理的就可以停了。 進去吧, 酒店的大堂在2樓 一到2樓就是櫃檯 Check in好後會有一張收據, 不要亂丟, 或者先用手機拍個照。 因為Super Hotel是沒有房卡的, 都是用密碼鎖, 收據上會列出你的房號和密碼, 你住在這裡的期間都是用同一個密碼開門。 在2樓除了櫃檯外, 旁邊是早餐用餐的地方 還有自動販賣機、製冰機 我覺得製冰機非常有用, 因為旅行一般我都會自備熱水壺煲水喝, 有冰塊就不用慢慢的等水變凍, 直接加入冰塊就可以了 (懶人方法) 還有咖啡機、電腦等供住客自由使用 走~ 去房間 3~10樓都是客房, 沒什麼特別的 我們住在6樓 來到房門口, 其實我也是第一次住這種完全沒有房卡的酒店 按START後再按上收據上的密碼, 門就打開了 我們訂的是「ソファベット+ダブルベッド」房型, 就是一張雙人床和一張梳化床(?) 那張梳化床是一個很好擺放雜物的地方 空間其實真的不大, 我移了一下位置才能順利的開到兩個喼(行李箱) 床倒是挺舒服的 浴室, 也是有點狹窄 浴室是用這種花灑和洗手台用同一個出水口的設計, 就是兩者不能同時用, 同一時間只能用其中一個。 我很不喜歡這種的!! 因為尤其是一早起床矇矇的時候, 多數都會按錯, 把開洗手台的水變成開了花灑, 然後....整個人就濕了.......(醒晒!!) 在這酒店有一個東西我覺得蠻貼心的, 就是這個拖鞋用的舒適墊 因為這種拖鞋不是即棄的那種, 就是不知道會如果清潔一下然後又被重覆使用。 這個雖然說是舒適墊, 但我更覺得是清潔墊, 貼在拖鞋上至少感覺會好點, 感覺乾淨點點~ 跟日本其他酒店一樣, check in的時候可以拿一些女性用品或是衛浴用品。 這酒店規定住一天可以拿5種。 我們拿了一些溫泉粉, 不泡澡, 泡泡腳也不錯!! 我們在Super Hotel住了3晚, 如果隔天不用打掃房間的話, 就把這個牌貼在門外。 為了支持環保, 所以不用打掃的房間都會贈送一支水! 我們選擇了不用打掃房間, 因為我們都習慣自備毛布了所以不打掃都沒什麼影響。 去完景點回到酒店就看到門口掛著贈送的水和一些替換的廁紙等~ 我們住了3晚, 也吃了3天Super Hotel的早餐。早餐時間是07:00-09:00, 在2樓。 早餐是免費的, 就是房價已經包含了早餐。 早餐款式不及大阪的Via Inn多, 但也算是會換款式, 不會每天完全一樣的。 有麵包 熱食 沙律醬也有不同口味的! 因為房間是用密碼鎖沒有房卡, 所以也不用check out。 在10:00前退房直接走就可以了, 並不用再到2樓櫃檯處。這個感覺挺奇妙的 我覺得Super Hotel 烏丸五条店整體不過不失, 如果需要經常往返京都駅的人地點確實不太方便。 但如果能適當地利用五条巴士站往返景點的, 也是不錯的選擇。 Super Hotel 烏丸五条店 Super Hotel 烏丸五条店: 京都府京都市下京区烏丸通り五条下る大坂町396番3 075-343-9000 http://www.superhotel.co.jp/s_hotels/karasuma/karasuma.html 地鐵「五条駅」8號出口旁 2017年12月份「ソファベット+ダブルベッド」房型 2人3泊含早餐 39,000円 (稅入) (價格僅供參考)

為食推介 | 一口氣挖掘澳門5間寶藏小店!疫情過後我哋逐間細味品嚐~
澳城餐飲
食在澳門iFood・2021-08-21

尋找美食的過程 總是充滿未知之數 話唔定就會在街角偶遇 每一間寶藏店鋪 都充滿快樂與驚喜 美食、美味、美好 盡在其中 ▽ 萬利洪記粉麵美食 地址:新市西街萬利大廈20號 美好事物價值的證明,時間是最好的度量衡。經歷七十幾年日夜仍熙熙攘攘,則是一家食店寶貴的象征,「萬利洪記粉麵美食」,深藏著街知巷聞的澳門古早味。 從擺檔開始,再到有瓦遮頭,洪記在澳門巷內歷經七十餘年歲月。地道咖喱粉麵、招牌手打發財魚球、古早鮮蝦切肉雲吞……每一份都訴說著懷舊的味道。 綠色色調映襯木色裝潢,每一處細節都吐露著澳門的古早氣息~今日就來一嘗究竟! 為食妹最愛的雞翼麵隆重登場,呢份雞翼,有個響噹噹的大名——馳名金牌香露雞翼!全隻雞翼誠意奉上,讓你盡情享受吮指的滋味~ 既然係金牌選手,肯定好打得喇!秘製滷水汁滷製之下,醬色滲透成隻雞翼外皮,連內裡肉都吸滿鮮味! 加一羹醃青椒,一定係神筆馬良的點睛之筆!為咗消除濟感,每張檯都會有備一樽“醃青椒”!酸爽嘅青椒冇任何青味,而且更加提鮮更加惹味! 一碗粉麵有幾多種食法?完全靠你的創意搭配!單料、雙拼、三拼、四拼……無論你想拼幾多,餐牌多種選擇都可以滿足到你! 魷魚拼鳳爪麵,韌勁與軟爛的雙重口感享受,讓我於咀嚼時也充滿驚喜!自由切換模式——魷魚的彈口爽滑、鳳爪的膠質滑嫩,統統盡收口中! 辣薯仔粿條的靈魂之處係辣薯仔的加持!又酸又辣的湯汁浸潤著糯香薯仔,入味非凡!輕輕抿開粉質滿滿的辣薯仔,香氣隨著粿條蔓延口腔之中~ 永聯小食 地址:龍頭左巷裡海星中學旁 電話:66541088 海星中學腳下的小店——永聯士多,係放學必選!各類手作壽司、自選炸物小食一應俱全,承包放學時候的快樂~ 蟹柳壽司、雞肉蟹柳壽司、八爪魚壽司 、肉鬆壽司四種口味滿足多變的食慾! 每一款收工壽司的餡料滿滿、誠意十足!而且價錢只需$6~ 裝著炸物的牛皮紙袋微微滲出油花,誘人香氣撲鼻而來,難道這樣的快樂,不值得小心珍藏嗎? 外脆內嫩的腸仔,無論個頭大小,都一樣咁啱口味! 金黃香脆的雞全翼,承包一整個下午的快樂!由雞髀到雞翼尖,每一啖都迸發鹹香酥脆衝擊力! % 地址:澳門大三巴戀愛巷 營業時間:9am-9pm 一杯好的咖啡似清晨的加油站,注入靈魂開啟新的一天;似午後的庇護所,讓你喘息清理冗餘情緒。 追求“人、事、物”都極致美感的咖啡品牌【%Arabica】終於降臨澳門,帶來高品質精品咖啡,啟程高級的味覺之旅。 i-BAGEL貝果屋 地址:澳門冼星海大馬路277號恆基花園N鋪 營業時間:10:30~18:30(週日休息) 人均:18mop—50mop 溫馨提示: 因每日出品有限 需提前在Instagram或wechat進行預訂 i-BAGEL—澳門首家貝果專賣店,不同於機器化的批量生產,店內貝果每天都係純手工現做,最好就需要提前預訂,真正的美味都值得耐心等待。 i-BAGEL口味琳瑯滿目,芝士、紫薯忌廉、朱古力、伯爵茶等等,讓人難以忘懷的味道和口感,你的味蕾會由誰來喚醒? 「餡料」係貝果的靈魂所在,而貝果屋創造的內餡極其豐富精彩,有夾心的貝果將內餡元素綜合得恰到好處。 PATATA 地址:幸運圍福華里5A地下 營業時間:11:00~19:00 電話:62743999 下午茶時間,你會食奶油蛋糕又或者芝士蛋糕。而Patata主打鹹口嘅薯仔蛋糕,係西班牙嘅傳統小食之一,你又試過未? PATATA的原味薯仔蛋糕遵循西班牙傳統做法,用薯仔同雞蛋為主要原料製成,外皮焦脆但內裡口感軟軟糯糯,不愧為西班牙國民小食。 ENDING 尋找澳門美食旅程仍在繼續 下一次啟程 讓我們再一起出發 挖掘更多寶藏店鋪喇! 圖文|得得、肥肥 美工|陳真香 攝影|他說他叫修杰楷 *為食妹溫馨提示* 疫情期間,請注意減少出行及聚會! 佩戴好口罩

【Summer Fashion】女士扮靚必睇!夏季潮流公開
專題報導
Lifemagshopper・2020-07-10

陽光充沛的夏天已經來到,不少愛美的姊妹都會悉心扮靚,想出千萬種夏季穿搭組合,務求穿搭追得上夏季潮流之餘,亦希望在夏天展現出自己獨有的美麗。於是小編為各位姊妹整理了以下這篇夏季穿搭潮流,從揀選髮飾、女裝單品、香水,到挑選美甲、底妝、飾物、鞋等都應有盡有。馬上看夏季穿搭潮流介紹啦! 【Summer Fashion】精緻又獨特,5個小眾包包品牌推介! NEW 【Summer Fashion】包治百病,5款國內小眾品牌手袋推介! 【Summer Fashion】清新又舒服的味道,5款夏日香水推介! 【Summer Fashion】為衣著加分,夏天清爽又時髦的涼鞋款式推介! 【Summer Fashion】女士最愛,5間高質平價淘寶飾物店推介! 【Summer Fashion】戴口罩也有好氣色,超強防脫妝底妝! 【Summer Fashion】618 前必看!5間特色淘寶女裝店推介 【Summer Fashion】十款2020夏日美甲款式推薦,精緻造型顯白又有氣質! 【Summer Fashion】突顯個人風格!5間高質感的飾物品牌推薦 【Summer Fashion】夏天簡約單品推薦,給你一點穿搭靈感! 【Summer Fashion】精緻又獨特,5個小眾包包品牌推介! 很多女生都喜歡收集手袋,襯托不同的穿衣風格。除了各大名牌精品包,近年有許多小眾品牌的手袋設計非常亮眼,走在大街上亦不易撞款。小編現在就為大家介紹5個小清新品牌,保證令你眼前一亮。 詳細介紹:【Summer Fashion】精緻又獨特,5個小眾包包品牌推介! 【Summer Fashion】包治百病,5款國內小眾品牌手袋推介! 女士們出街,一定會手挽–一個手袋搭配。除了各種知名大牌之外,其實國內亦有不少小眾品牌的手袋,外型和質地同樣不俗,造型同樣具有特色。想知道有甚麼手袋推介,快點往下看吧! 詳細介紹:【Summer Fashion】包治百病,5款國內小眾品牌手袋推介! 【Summer Fashion】清新又舒服的味道,5款夏日香水推介! 來到夏天,什麼都講求輕薄!香水也不例外,淡淡香氣更能令人心曠神怡。如果你也想要轉換一下味道,就繼續看下去吧!現在就為大家推介5款適合夏天使用的香水。 詳細介紹:【Summer Fashion】清新又舒服的味道,5款夏日香水推介! 【Summer Fashion】為衣著加分,夏天清爽又時髦的涼鞋款式推介! 在這種炎熱的天氣,鞋子最重要是清涼輕便。利用不同的鞋子配搭,絕對令衣著加分。以下為大家推薦幾款非常有夏天氣息的鞋子們,令你的穿搭更亮眼! 詳細介紹:【Summer Fashion】為衣著加分,夏天清爽又時髦的涼鞋款式推介! 【Summer Fashion】女士最愛,5間高質平價淘寶飾物店推介! 日常打扮配搭不同的飾物,絕對令造形有畫龍點睛的感覺!在淘寶有不少CP值高又夠高質的飾品,以下就等小編分享幾間私心收藏的店鋪吧! 詳細介紹:【Summer Fashion】女士最愛,5間高質平價淘寶飾物店推介! 【Summer Fashion】戴口罩也有好氣色,超強防脫妝底妝! 不知不覺,口罩已成為出門必備的用品!我們的皮膚從一開始的過敏不適應,到慢慢習慣在這種「悶熱環境」中生存。但是戴口罩脫妝的問題相信令很多女生都很困擾,想戴口罩仍然漂漂亮亮,就接著看下去吧! 詳細介紹:【Summer Fashion】戴口罩也有好氣色,超強防脫妝底妝! 【Summer Fashion】618 前必看!5間特色淘寶女裝店推介 每天翻開衣櫥,就是找不到想穿的衣服,相信這是每個女生的煩腦!618淘寶狂歡節快到了,又可以藉著這個機會為自己添至新衣了!網購真的很方便,但是最怕就是收到衣服後貨不對版。現在小編為大家整理了5間淘寶女裝店推介,質地和設計都挺不錯的,一起來看看吧! 詳細介紹:【Summer Fashion】618 前必看!5間特色淘寶女裝店推介 【Summer Fashion】十款2020夏日美甲款式推薦,精緻造型顯白又有氣質! 夏天又到了,除了要添置新衣服之外,精緻女孩當然不會放過指甲的「換裝」,以下介紹十款美甲款式,保證總有一款合你心意! 詳細介紹:【Summer Fashion】十款2020夏日美甲款式推薦,精緻造型顯白又有氣質! 【Summer Fashion】突顯個人風格!5間高質感的飾物品牌推薦 飾品最能突顯個人風格,有時候覺得穿著太過單調,配戴一些有設計感的飾物,即時為你的衣著加分!以下為你推薦幾間飾品店,其中三間更在澳門有實體店,快來選擇適合自己的單品吧! 詳細介紹:【Summer Fashion】突顯個人風格!5間高質感的飾物品牌推薦 【Summer Fashion】夏天簡約單品推薦,給你一點穿搭靈感! 夏天即將來臨,是時候把衣櫃裏的毛衣收起,換上輕薄而又充滿色彩的單品!在煩惱夏天應該怎麼穿?以下為大家介紹夏天簡約單品,給你一點穿搭靈感。 詳細介紹:【Summer Fashion】夏天簡約單品推薦,給你一點穿搭靈感!

【澳門】※行山路線※ 黑沙水庫家樂徑 + 路環步行徑 ~ 行山健行 滑草划艇 悠然自得
生活在我城
80後愛旅行✈️・2020-06-13

「黑沙水庫家樂徑」位於黑沙水庫郊野公園內,出入口設於郊野公園內的燒烤區旁。 「黑沙水庫家樂徑」於1994年對外開放,全長2650米,路面平緩易走,適合一家老少郊遊。 我們開車直接到「黑沙水庫郊野公園」門口,旁邊和斜對面就有停車位。 而坐巴士的話,就可以直接坐到郊野公園門口的巴士站(下圖紅色站牌)。 「黑沙水庫家樂徑」出入口設於郊野公園內的燒烤區旁,一進公園往左邊走就對! 由100米開始,出發~!! 黑沙水庫滑草場,看上去很刺激很想玩,可惜只有小孩才能玩 逢週六、週日及公眾假期08:30 - 12:30及13:30 -17:00 只供3歲或以上,且身高為145cm(含)以下兒童使用 免費 上來後我就決定直走,就看到「累沙水庫家樂徑」的標柱,證明沒走錯。 走上去沒幾步往回看就已經可以看到黑沙水庫的全景了! 黑沙水庫中最具特色的就是這個「水上樂園」,裡面有遙控模型船區、釣魚區、划船和腳踏船等,是一家大小的好去處! 這次就先不玩水上活動,專心行山吧 「黑沙水庫家樂徑」和我之前走過的「路環步行徑」有部份也是相連的(如上圖) (畢竟澳門太小了,來來去去都是這幾個山頭) 原來我剛剛一直走,就走到來「路環步行徑」 C17就是「黑沙水庫家樂徑」和「路環步行徑」相連的地方 雖然同樣是走「路環步行徑」,但是這段路我上次都沒有走過 這個「楹花藍」亭很熱鬧的,我經過了兩次都有很多人在裡面聊天、野餐,應該是風景不錯的! 沒有走進「楹花藍」亭,我走到旁邊的一塊大石上,一樣可以看得清楚腳下的風景! 路面平緩易走,很適合一家老少郊遊。 看到遠處的鷺環海天酒店(前威斯汀酒店) 看到山上的「路環媽祖像」,我們就以這個為目標往山上爬了~ 往「路環山頂公園」出發 超長的樓梯 上山後腳下又是一片的美景 上完長長的樓梯就看到了「路環山頂公園」 公園對面就是「媽祖文化村」,我也只來過2次,也沒有再往高處再走。 原來從「媽祖文化村」再往高處再走,就會來到路環媽祖像了。 路環媽祖像是迄今全球最高的漢白玉媽祖像,塑像由120塊漢白玉石雕刻而成,身高 19.99 米。 繞過路環媽祖像從旁邊的步行徑繼續走 走到高點「路環媽祖像」後開始向下山方向走 這個標柱很特別,它集合了「黑沙水庫家樂徑」和「路環步行徑」,是一個兩條步行徑都會經過的路。 這個山體很特別,看上去有點像梯田,但其實非常的臭。 這是挖了很多的洞,準備放入肥料種樹,臭味應該是從肥料而來的。 回到「黑沙水庫家樂徑」 「黑沙水庫」 湖水的顏色很翠綠 山中有一條陡峭的樓梯,我們剛剛也是從其中一條走下來的。應該不是正規的路徑,是捷徑小路。 樓梯真的蠻陡的,要走的話真的要小心! 「黑沙水庫郊野公園吊橋」 走過吊橋可以看到水庫美麗的風景! 12歲以下兒童要由成人陪同,安全第一。 對面是水上活動中心,有個露天茶座,非常寫意。 水上樂園開放時間為逢週六、週日及公眾假期之上午10:00至下午17:00 雙人腳踏艇Mop20 / 30分鐘 / 四人腳踏艇Mop40 / 30分鐘 孕婦及未滿6歲者禁止進人浮台區域,6至12歲者須由家長或成人陪同下方可租用腳踏艇 走過吊橋後就會回到滑草場,再按原路回去。 這次橫跨了部份的「黑沙水庫家樂徑」和「路環步行徑」,大概走了2小時。 黑沙水庫家樂徑 黑沙水庫家樂徑:黑沙水庫郊野公園入口/路環黑沙馬路 https://nature.iam.gov.mo/c/trails/detail/243a57fa-8439-472e-888e-743a64cda20a https://nature.iam.gov.mo/c/countrypark/detail/9bdd239f-a241-4c95-b9bc-6a0f3e4de1a0 檢視較大的地圖

不丹九日遊蹤(二) 紅窗白墻下的愛情
走遍世界
行走世界記錄・2018-08-13

一個不小心就出了不丹帕羅機場,還沒兌換不丹錢呢?以為澳門機場夠小了,一眼望見盡頭,帕羅機場就一眼望見門,轉個彎就出去了!回不了頭。 機場大樓 出了門,心急的搜尋有自己名字的紙牌,來接我們的導遊及司機素未謀面,靠紙牌認人。掃了幾眼,我和他的眼光終於對接上,WOW! 幾靚仔!心之悅動咀角裂笑。穿上Goh的他與他,首先接過我們手上的行李,再帶往一連坐九日的座駕旁,此時導遊Pasang從有不丹男人百寶袋之稱的幗「肚子」掏出哈達,一一獻給我們。 左司機Dorji右導遊Pasang Pasang獻給我們的吉祥祝福 今日第一天行程:上午帕羅參觀 午飯後驅車廷布 住廷布 認識一個地方,最好是自博物館開始吧,博物館是一個城市名片和歷史沉澱。不丹國家博物館 -帕羅塔 ,原系瞭望塔,旋轉式樓梯塔高六層,1968年改為博物館,據資料顯示現館藏文物3000多件,印象最深的是唐卡,色彩鮮豔畫質細膩。其他的還有經文、面具、服裝、錢幣、器皿、樂器、佛雕、影像播放等,當然少不了舉世聞名的不丹郵票。 此門入去就是不丹國家博物館 白色建築物是帕羅宗右上角是不丹國家博物館 從博物館望下去 – 帕羅鎮 博物館曾於2011年9月印度地震中受牽連,整座建築物損壞嚴重,重建歷時五年,於2016年才重新開放。現館內也有圖文介紹博物館於地震中受損情況。 現在好多不丹景點建築進入參觀前,行囊需寄存,不要說攝影器材了,連手機也不準帶!有的只能拍攝外圍或指定區域,導遊說基於文物保護安全,僅準人進去其他的留在外面,還要查閱參觀申請許可,不是路過我想入內遛遛就能進去,這在不丹很多宗是不可能的!所以基本上行程景點跟導遊行!不丹國家博物館需存放行囊,不準拍攝,故好美的唐卡和特色的不丹面具照欠奉! 幸福梯級 與博物館相距不遠的帕羅宗,純白的墻朱紅的窗,簡單中滲透強大美,門口那條長長的梯級,曾經舉世矚目,劉嘉玲及粱朝偉的婚紗照,就是在帕羅宗門前梯級拍攝的,或者,到了不丹你才明白愛了近三十年的兩人,最後為甚麼選擇從幸福國度開始新的一頁! 婚紗照來自網絡 帕羅宗入口 帕羅宗門口樹下的不丹阿媽 帕羅宗,是不丹九日遊蹤中第一座見到的宗!似曾相識的美,總覺得不丹極似西藏!那純白那朱紅,這裡的宗,西藏的布達拉宮大昭寺…… 帕羅宗建築 喇嘛在練舞 廊橋喇嘛 宗於不丹不單是寺廟,同時亦是政府辦公機關所在地,所以某一些宗在上班時間不接待參觀!帕羅宗外圍及走廊準拍攝,寺內地方不準。參觀時,碰巧遇上小喇嘛在練習節日祭祀舞,很風情!舞畢用餐時,又逢入寺內參觀,見到喇嘛的伙食,很刻苦啊! 到訪帕羅宗,墻畫六道輪迴圖及建築結構,一定不能錯過的! 六道輪迴圖 帕羅美景 帕羅宗右上角是博物館

【日本。九州自駕】※景點※ 分 九州自然動物園 African Safari Jungle Bus (叢林巴士)
走遍世界
80後愛旅行✈️・2023-07-28

九州自然動物園 African Safari 是位於九州大分縣的一個動物園 園內致力保存野生動物自然生存的環境, 由山、草原、森林等六種環境組成, 把動物原來生活的環境得以再現。 動物園內有大型食肉動物(獅子、老虎、獵豹) 和食草動物(大象、長頸鹿、犀牛) 還有小型動物(矮馬、袋鼠、刺猬)等... 九州自然動物園 African Safari 最吸引人的是Jungle Bus(叢林巴士) 是可以讓遊客直接餵食獅子、長頸鹿等動物, 並且可以近距離的觀察。 在餵食的同時還可以感受到動物的野性, 大人和小朋友都樂在其中 Jungle Bus都會裝成動物那樣, 有犀牛, 有老虎, 不知道是不是裝成動物進園區後動物以為是同類所以不襲擊? ​ 我們是在2號站上車, 車票上都有寫清楚的... ​ ​ 準時上車囉~ ​ 上車的時候每兩個人會發一盤食物, 有肉類有素菜 是用來餵動物的! ​ 知道我們不是日本人還發了一張餵食說明給我們, 幾年前我和老公來的時候還沒有這一張卡, 只能猜工作人員在車上說明什麼動物要夾什麼食物~ 基本上都聽不懂的, 還好當時有同車的日本人幫忙。 這次有了這張卡就方便多了~! ​ 要開車了~ [地圖6 - 14] 每進入一個區域全部都是雙門設計, 不怕野獸會在開門其間跑走~ (不過在這裡定時有東西吃, 環境也不錯, 應該都不想走吧) ​ 第一站, 是山羊 ​ 就是這樣用夾子餵指定的食物給牠們, 記得手指不要伸出去啊 ​ 大家都這樣餵飼, 真的很好玩的! 小朋友也不會怕, 真是親子好活動~ 第二站, 黑熊 ​ ​ 第三站, 獅子來了~~~餵獅子應該是重頭戲吧!! 雖然隔著鐵閘但是能這樣餵獅子的機會也不是常有吧~~!! 獅子真的是野獸, 記得記得小心手指, 不要伸太出去!! ​ ​ 小抓子都爬到車上的鐵欄上了~ ​ 知道有車來就代表有吃的, 牠們都跑出來排排等著吃~ ​ 這個園區的環境真的不錯, 動物住在這應該算不錯吧! ​ 第四站, 鹿和斑馬 ​ ​ ​ ​ 第五站, 梅花鹿 ​ ​ 第六站, 牛 ​ ​ ​ 第七站, 犀牛 ​ 第八站, 大象 ​ 餵大象時要小心, 牠的鼻子會噴水進來的啊 ​ 第九站, 長頸鹿 ​ 第九站, 老虎 牠們好懶惰啊~ ​ ​ 老虎的肉不是我們餵的, 是由工作車上的工作人員負責的! ​ 第十站, 鬣狗 ​ ​ 第十一站, 獵豹 ​ 第十二站, 駱駝 ​ ​ ​ 小笨蛋的還咬著鐵欄, 可愛呢~ ​ ​ 整個Jungle Bus繞一圈大約1小時, 這個小時內真的可以近距離接觸各種動物呢!

【日本。山陰山陽自駕】├住宿┤ 鳥取 羽合溫泉 望湖樓
走遍世界
80後愛旅行✈️・2023-02-27

望湖樓位於日本鳥取縣東鄉池池畔的一間溫泉旅館,至今已有約90年的歷史。 旅館內有日本唯一的湖上露天溫泉! 這天我們順利的在16:00左右到達 ​ 望湖樓門口有專用的停車場,自駕來非常方便。 ​ 望湖樓 ​ 這裡的松葉蟹很有名,就連路上都有蟹的標誌 ​ 望湖樓規模很大,看大堂就知道了~ ​ 大堂有很多周邊的觀光資料 ​ ​ 日本有些溫泉旅館會免費提供有花紋圖案的花浴衣,但望湖樓的花浴衣是要收費的。 普通花色的浴衣在房間內已經有提供。 ​ ​ 望湖樓一共有幾個溫泉,之後再介紹。 ​ ​ 如果對洗髮水有特別要求的,也可以在這個Shampoo Bar 用 ¥300 購買一定份量的來使用。 ​ ​ 旅館內分了「湖上閣」、「對水閣」、「浮見亭」三個部份 我們住在「湖上閣」 ​ ​ 我們訂的是「【湖上閣・和室】和室10〜12畳」 ​ 一進來最震撼我的就是客廳的超大玻璃!! 這個房間的 Gimmick 是「朝陽でお目覚めくつろぎ」大概就是說「在早晨的陽光下放鬆」, 即是說在這個玻璃窗是可以看到日出日落的美景!!好期待啊~!! ​ 我們先去參觀其他地方,這是浴室 ​ ​ 洗手間 ​ 跟大多數的溫泉旅館不同,普遍的溫泉旅館是使用很大一支的洗髮水、沐浴露等,如果覺得合適的話可以即場購買。 但這裡是採用一小包一小包的洗髮水、沐浴露,對於我們來說,份量略少。 ​ ​ 再回到客廳了,這一個大玻璃窗真的很棒,可以看到整個東鄉池的風景, 東鄉池雖然只是一個池,但周長有12公里,亦是山陰地方的八大美景之一。 ​ ​ 玻璃窗前很貼心的放了一張長桌子,在這裡邊看著外面的美景邊享用茶點,真的一流! ​ ​ 被房間的私人風景吸引,捨不得出去了!不過來到溫泉旅館,怎麼可能不泡溫泉。 還記得我一開始說過,住溫泉旅館不要等到天黑黑才入住嗎?這次就真的可以趕在黃昏時間來泡露天溫泉,邊泡邊看日落了!! 現在就要出去泡溫泉了~!! ​ 可以換上防水拖鞋才走出露天的地方 ​ 望湖樓有日本唯一的湖上露天溫泉 這一整棟就是溫泉了 內有「朝陽 ● 夕陽」2個溫泉,而天台更是一個可以俯瞰整個東鄉池的露天足湯 ​ 露天溫泉分為「朝陽」 和 「夕陽」兩個室,分別為男湯和女湯,而每天都會把兩個室交換。 即是今天「夕陽」為女湯,明天就會是男湯。 溫泉內沒有拍照,找來官網上照片。 溫泉內真的放了椅子欣賞日落,由於一離開溫泉就太冷了,所以我沒有坐在外面。 就好好的泡在泉水內欣賞日落 ​ ​ ​ ​ ​ ​

傣王室靜美的 §曼聽御花園§
旅遊情報
莫雪・2025-07-15

傣王室靜美的 §曼聽御花園§ 遇見傣王妃, 便是雲南西雙版納傣族自治州首府景洪市 曼聽御花園的主題, 亞熱帶季風性濕潤氣候的西雙版納。 街上充滿東南亞風情, 繁囂夜市、滿街檔的泰國奶茶、 老撾冰咖啡, 香氣、風情不一樣。 若不是滿街還聽到一眾國語聲音, 真以為身處了泰國等東南亞之地了。 本以為曼聽御花園只是參觀一座公園而已, 料不到御花園內建築、風情獨樹一格, 難怪能吸引了昔日千年前的傣王妃傾注眼光, 留園忘返。 精彩的遇見傣王妃歌舞是曼聽的主題表演節目, 傣家民 族服色彩豔麗, 設計貼身令女仕身段婀娜多姿, 跳起獨特的傣族舞步更顯妙曼。 傣王、傣王妃 金色塔寺行宮內觀賞, 欣賞舞畢後巡禮隊伍伴隨傣王、 傣王妃重現昔日禦花園內熱鬧盛典, 讓人置身於昔日輝煌且夢幻的美好環境中。 曼聽禦花園公園的前身是西雙版納傣王的禦花園, 現在是雲南省國家4A級旅遊景區,位於西雙版納 傣族自治州首府景洪市,處於瀾滄江與流沙河 匯合的三角地帶, 是一座擁有1300多年歷史的文化公園。 景區集中體現了「傣王室文化、佛教文化、 傣民俗文化」三大主題特色。 曼聽公園佔地面積400餘畝, 是西雙版納最古老的公園。 曼聽公園有保存完好的數百多株古鐵刀木林及植被, 因此整個公園皆見鬱鬱蔥蔥植物藤蔓所圍繞。 處處是琉璃瓦片的傣族建築風格和多座佛塔廟宇, 是一個天然的村寨式公園。 甫進入園內, 感覺空氣清新, 一片厡始植物花草的香氣。 處處佛寺寶塔金碧輝煌顯奢華, 白塔清新雅緻, 瓦紅塔隨性和諧, 眾塔色彩相映襯。眼前青青藤攀曼繞、 奇花異木、五彩紛呈、爭奇鬥豔、 亦有片片濃蔭守初夏、涼爽宜人之極。 園內有河相隔, 碧波泛盪, 感受天然與人工巧妙的結合, 令你賞心悅目,心曠神怡。 北京的禦花園雖美麗堂皇, 西雙版納曼聽禦花園 卻具不一樣的異國民族風情, 冬季前來這裡遊憩, 相信會感覺多一份熱度不冷卻。 地圵: 中華人民共和國雲南省西雙版納 傣族自治州首府景洪市中心曼路35號 #英德峰林曉鎮# #橫琴二井灣濕地公園# 其它文章, 詳情請點擊澳門科學館「蒸氣誌(電子月刊)」 內之「近代中國科學家事蹟及其精神」 https://www.msc.org.mo/zh/flipbook/55/S-TEAM-ISSUE 本篇文章、相片以及影片版權屬作者所有, 經由版權持有人授權CyberCTM.com發表。 聯絡及邀約: irene801802@hotmail.com

Spring Boot 05 - 為 http json api 加入登入要求
科技新知
MacauYeah・2024-07-02

本節,我們將為之前的http服務,加入認證機制,只有在資料庫現存的用戶可以登入及訪問我們的json api。 下戴模版 慣例,我們用Spring Initializr (Maven) 下載模版,Dependency主要選擇 Spring Web Spring Boot DevTools Spring Security Controller 跟上節一樣,我們起一個Controller,為簡化測試,我們只做http GET api。 由於本blog對於Source Code的顯示不太友好,有需要看source code的,請到Github查看 //src/main/java/io/github/macauyeah/springboot/tutorial/springbootwebapidata/controller/HomeController.java import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/api") public class HomeController { @GetMapping("/someRecord/{uuid}") public Map readSomeRecord(@PathVariable String uuid) { return Map.of("ret", "your uuid:" + uuid); } } 準備我們的test case,但這次我們預期它應該要出現登入失敗的結果。 //src/test/java/io/github/macauyeah/springboot/tutorial/springbootwebapidata/controller/HomeControllerTest.java @SpringBootTest @AutoConfigureMockMvc public class HomeControllerTest { @Autowired private MockMvc mockMvc; @Test void testNoLogin() throws Exception { RequestBuilder requestBuilder = MockMvcRequestBuilders.get("/api/someRecord/1234") .contentType(MediaType.APPLICATION_JSON); this.mockMvc.perform(requestBuilder) .andExpect(MockMvcResultMatchers.status().is4xxClientError()) .andExpect(MockMvcResultMatchers.jsonPath("$.ret").doesNotExist()) .andDo(MockMvcResultHandlers.print()); } } 在我們執行上述的測試,test case 成功過了。我們的基本設定跟上一節其實沒有多大改動,為何現在http api會回傳狀態 401? 那是因為我們在依賴中加了,Spring Security,它配合了Spring Web,就會自動為所有api加入權限檢測。我們的測試中,沒有任何用戶登入,當然會出現 http 401。為了讓我們可以好好管理誰可以使用api,我們就來設定一定Security。 我們加一個WebSecurityConfig.java,暫時指定所有的訪問路徑都必需有USER權限,並且用 http basic的方式登入。 //src/main/java/io/github/macauyeah/springboot/tutorial/springbootwebapidata/config/WebSecurityConfig.java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.web.SecurityFilterChain; @Configuration @EnableWebSecurity public class WebSecurityConfig { @Bean SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http.authorizeHttpRequests(authorizeHttpRequests -> { authorizeHttpRequests.requestMatchers("/**").hasRole("USER"); // 所有的訪問路徑都必需有USER權限 }); http.httpBasic(Customizer.withDefaults()); // 使用http basic作為登入認證的方式 return http.build(); } } 上述例子,只是擋了沒有權限的人,我們還需要讓有登入身份的用戶可以成得取限User權限。 我們繼續修改,WebSecurityConfig,加入只在記憶體有效的InMemoryUser import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.provisioning.InMemoryUserDetailsManager; public class WebSecurityConfig { //.. @Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); // 我們的密碼不應該明文儲,比較保險,我們使用BCrypt演算法,為密碼做單向加密。 } @Bean public UserDetailsService userDetailsService() { UserDetails user = User.withUsername("admin") .password(passwordEncoder().encode("pass")) .roles("USER").build(); // 我們在記憶中體,加入一個測試用的User,它的名字為admin,密碼為pass,權限為User return new InMemoryUserDetailsManager(user); } 然後加入新的測試,直接模擬Role。結果是通過的。 //src/test/java/io/github/macauyeah/springboot/tutorial/springbootwebapidata/controller/HomeControllerTest.java @Test void testLoginWithRoles() throws Exception { RequestBuilder requestBuilder = MockMvcRequestBuilders.get("/api/someRecord/1234") .contentType(MediaType.APPLICATION_JSON).with( SecurityMockMvcRequestPostProcessors.user("someone") .roles("USER", "ADMIN")); // 沒有使用密碼,只使用Role this.mockMvc.perform(requestBuilder) .andExpect(MockMvcResultMatchers.status().is2xxSuccessful()) .andExpect(MockMvcResultMatchers.jsonPath("$.ret").value("your uuid:1234")) .andDo(MockMvcResultHandlers.print()); } 再來一個測試,改用密碼登入,分別輸入錯的和正確的密碼。 @Test void testLoginWithWrongPasswordAndNoRole() throws Exception { RequestBuilder requestBuilder = MockMvcRequestBuilders.get("/api/someRecord/1234") .header("Authorization", "Basic randompass") // 輸入錯的密碼,應該回傳http 401 Unauthorized .contentType(MediaType.APPLICATION_JSON); this.mockMvc.perform(requestBuilder) .andExpect(MockMvcResultMatchers.status().is4xxClientError()) .andDo(MockMvcResultHandlers.print()); } @Test void testLoginWithPassword() throws Exception { RequestBuilder requestBuilder = MockMvcRequestBuilders.get("/api/someRecord/1234") .header("Authorization", "Basic YWRtaW46cGFzcw==") // http basic 就是把 admin:pass 轉成base64 .contentType(MediaType.APPLICATION_JSON); this.mockMvc.perform(requestBuilder) .andExpect(MockMvcResultMatchers.status().is2xxSuccessful()) .andExpect(MockMvcResultMatchers.jsonPath("$.ret").value("your uuid:1234")) .andDo(MockMvcResultHandlers.print()); } 最後,當然是正確的密碼才能通過。若果大家還是半信半疑,我們可以跑起真的正服務(IDE RUN或mvn spring-boot:run),然後用curl去試。 curl http://localhost:8080/api/someRecord/1234 // failed with 401 curl -u "admin:pass" http://localhost:8080/api/someRecord/1234 // successed 使用SQL Database讀取用戶登入資訊 一般而言,我們不可能把所有用戶登資訊打在InMemoryUser中,通常背後有一個資料庫儲存所有的用戶資訊,我們在登入時,讀取它來做對比檢證。 為此,我們在maven中,加入 Spring Data JPA h2 database (或任何你的資料庫,如mysql 、 sql server) 最後一步,我們把InMemoryUser去掉,改為從資料庫讀取。因為原始碼太多,就不全部貼上。最主要的是WebSecurityConfig.java要關掉之前的UserDetailsService,改為提供一個UserServiceImpl類,它會實現UserDetailsService的功能。 @Configuration @EnableWebSecurity public class WebSecurityConfig { // 把原來的Bean先變成註解,其他不變 // @Bean // public UserDetailsService userDetailsService() { // UserDetails user = User.withUsername("admin") // .password(passwordEncoder().encode("pass")) // .roles("USER").build(); // return new InMemoryUserDetailsManager(user); // } } // spring-boot-tutorial/spring-boot-web-api-data/src/main/java/io/github/macauyeah/springboot/tutorial/springbootwebapidata/config/UserServiceImpl.java // other import import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.password.PasswordEncoder; @Service public class UserServiceImpl implements UserDetailsService { @Autowired PasswordEncoder passwordEncoder; @Autowired UserRepo userRepo; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { // 因為我們資料庫沒有資料,為了方便測試密碼的加密,我們在java code上直接插入一筆資料。 UserEntity defaultUser = new UserEntity(); defaultUser.setUsername("admin"); defaultUser.setPassword(passwordEncoder.encode("pass")); defaultUser.setRole("USER"); defaultUser.setUuid(UUID.randomUUID().toString()); userRepo.save(defaultUser); // 上述為測試用插入資料,不應該出現在正式使用環境中。 UserEntity user = userRepo.findOneByUsername(username) .orElseThrow(() -> new UsernameNotFoundException(username + " not found")); // 找找資料庫有沒有正在登入的該名使用者username List authorities = List.of(new SimpleGrantedAuthority("ROLE_" + user.getRole())); LOG.debug("got user uuid:{}, username:{}, role:{} from database", user.getUuid(), username, user.getRole()); // 如果前面的 findOneByUsername 有結果回傳,我們就給它一個ROLE_XXX的權限。 return new User(username, user.getPassword(), authorities); // 這裏從沒有檢查過密碼是否有匹配,全部交給Spring Security去做 } } //spring-boot-tutorial/spring-boot-web-api-data/src/main/java/io/github/macauyeah/springboot/tutorial/springbootwebapidata/entity/UserEntity.java // spring-boot-tutorial/spring-boot-web-api-data/src/main/java/io/github/macauyeah/springboot/tutorial/springbootwebapidata/repo/UserRepo.java 上述段落中,筆者省略了UserEntity和UserRepo,它們只是一般的spring-data-jpa概念,有需要可以經文末的連結查看完全原始碼。最需要注意的,是UserEntity的password欄位,在資料庫中是以加密的方式儲存。我們在配匹登入者與資料庫記錄時,也沒有自行檢驗密碼的需要。我們只是在加密過的密碼回傳給Spring Security,Spring框架會自行把登入者輸入的密碼與加密了的密碼作比較。

不一樣的理古城街
旅遊情報
莫雪・2023-02-08

不一樣的 大理古城街 大理歷史悠久,文化燦爛, 整個大理便有21個古城古鎮古村落。 今次我們遊玩體驗其中一條大理古城街道 --- 「紅龍井」, 全長408米,地處大理古城的核心地帶,景觀主體自西向東, 以博愛路為界分為上下兩段,是以井的名稱來命名的街道。 紅龍井建築特色為古色古香的白族民居, 是具代表性的古城商業購物街圈。 感覺不一樣古天然味道, 主要是這條大理古城 甫經古城樓門「紅龍井」走進去, 清新舒暢的感覺, 古城街道中間居然有條古溪流水, 街道有水原來引自蒼山的清泉水, 溪道流淌著流水聲聲叮咚, 剎是好聴。古城街道在古溪流水的兩旁, 店舖林立, 戶戶養花。街巷中的一些老宅,花木扶疏美景處處。 城內依然保存著大量的明清以及民國時期的建築, 每一處都是歷史的痕跡。 眼前氣氛熱鬧不已, 走累了, 便閒座溪流邊的石板凳上, 清涼無比。 人們也就索性買了來咖啡、或是當地地道飲品老優酪乳, 座聴那流水潺潺之音, 享受片刻寧靜。 像是走進了山澗, 眼睛又被兩旁繁盛的商業產品所吸引, 便是這條大理古城「紅龍井」的不一樣特色。 大理古城位於風光秀麗的蒼山腳下,是古代南詔國和大理國的都城。 城內街道呈典型的棋盤式佈局,是大理的旅遊核心區域。 雲南的山是土地面積的百分之95.1 , 沿途路上便可見連綿不斷的山嶺, 而當地土地可種植面積更少, 民眾以旅遊為主要事業, 七彩雲南便是吸引各方來客的號召。大理古城商業購物街, 更是當地旅業招徠之一。 唐代的南詔國、宋代的大理國都把大理作為她們的都城, 悠久的歷史和文化,使得大理這座古城擁有『文獻名邦』的美譽。 古城內文物古跡眾多,城池格局基本保存,重要遺址可以辯認, 至2013年,古城內分佈了14處市級以上的重點文物保護單位。 大理古城古稱葉榆城、紫城,屬國家歷史文化名城。 也被譽為“亞洲文化十字路口的古都”,城中有五華樓、總統兵馬大元帥府、 大理城隍廟等等古建築。五華樓, 更是南詔王的國賓館, 元世祖忽必烈征服大理時,曾經駐兵樓前。 #騰沖北海濕地公園# #雲南 ※洱海 ※# 其它文章, 詳情請點擊澳門科學館「蒸氣誌(電子月刊)」 內之「近代中國科學家事蹟及其精神」 https://www.msc.org.mo/zh/flipbook/55/S-TEAM-ISSUE 本篇文章、相片版權屬作者所有,經由版權持有人授權CyberCTM.com發表。 聯絡及邀約: irene801802@hotmail.com

閒雲騰沖北海濕地公園
旅遊情報
莫雪・2022-12-16

閒雲 騰沖北海濕地公園 一年四季, 春暧花開的雲南大理騰沖, 在雲南的西南部, 與緬甸接壤, 數公里便可到達鄰國的緬甸。 因此大多數的騰衝人, 都有去過緬甸, 比去昆明為少, 當地居民憑滇民證去, 因為雲南的簡稱為“滇”。 所以當地也有一句方言語: 「出國容易出城難」, 騰衝只是邊陲一個小鎮, 却有著全國唯一一個有機場的小鎮城市。雲南的山是土地面積的百分之95.1 , 難怪我們從昆明一路走來, 路上便可見連綿不斷的山嶺, 因此當地 土地可種植面積少, 民眾以旅遊為主要事業, 七彩雲南便是當地政府吸引各方來客的號召。 介紹完騰衝市的獨特位置, 以及雲南的地理結構與其經濟事業之後, 值得花上半天以上的時間, 閒雲野鳥般漫步一下騰沖北海濕地公園, 雲南省唯一的國家濕地保護區,高原火山堰塞湖 --- 那裡一片世界罕見的獨特浮毯型草排; 一個60萬年的物種基因庫; 感受一段段心曠神怡的水上泛舟之旅; 令人回味大自然不斷賦與你感覺的水上棧道觀光之旅。 騰沖北海濕地公園位於騰衝市北海鄉境內, 距市區約12.5公里, 國家一級保護 植物蒓菜以及北海分布種植粗壯珍珠菜的天然分布區域; 以及生物物種保護地及自然歷中遺跡保護地, 濕地由北海和青海兩個湖泊組成。 整個下午漫步寄情於北海海濱濕地公園, 我們選的門票包括去程座船前往公園的中央, 回程沿著木棧道返回登船的碼頭, 再近距離觀賞野花、 蘆葦和雀鳥隨意停歇的浮毯型草排。 中央湖心亭有處咖啡屋〝北海間〞享受閒雲般的時光, 記得叫上一杯雲南特產咖啡「雲南小粒」試試苦中帶甘的特色之味, 在山野湖水中, 休閑的站在亭心處,仰望天空,藍天白雲湖海融為一體, 再喝一口咖啡, 感覺自己就在這片閒雲的中間了, 咖啡飄來的香氣, 群鳥飛過的叫聲, 這段旅途時光不捨、 讓人流連忘記了時間己經飛快要結束了。 #雲南※洱海 ※ # #印度洋上的一滴眼淚 -- 斯里蘭卡# 其它文章, 詳情請點擊澳門科學館「蒸氣誌(電子月刊)」 內之「近代中國科學家事蹟及其精神」 https://www.msc.org.mo/zh/flipbook/55/S-TEAM-ISSUE 本篇文章、相片以及影片版權屬作者所有,經由版權持有人授權CyberCTM.com發表。 聯絡及邀約: irene801802@hotmail.com