Spring Boot寰湇鍔℃暀绋嬫瑙?/p>
闅忕潃杞欢寮€鍙戠殑澶嶆潅鎬ф棩鐩婂鍔狅紝浼犵粺鐨勫崟浣撳簲鐢ㄦā寮忛€愭笎鏆撮湶鍑鸿澶氬眬闄愭€с€備负浜嗗簲瀵硅繖浜涢棶棰橈紝寰湇鍔℃灦鏋勫簲杩愯€岀敓銆傝繖绉嶆灦鏋勫皢搴旂敤鍒掑垎涓轰竴绯诲垪鐙珛銆佸彲鐙珛閮ㄧ讲鐨勬湇鍔★紝浠庤€屾彁楂樹簡绯荤粺鐨勫彲缁存姢鎬с€佸彲鎵╁睍鎬у拰鏁忔嵎鎬с€?/p>
涓€銆佸井鏈嶅姟鏋舵瀯鐨勮儗鏅笌浼樺娍
寰湇鍔℃灦鏋勭殑鏍稿績浼樺娍鍦ㄤ簬鍏舵妧鏈爤鐨勭伒娲绘€с€侀儴缃插拰鎵╁睍鐨勪究鎹锋€с€佺淮鎶ょ殑绠€鏄撴€т互鍙婂揩閫熻凯浠e搷搴旇兘鍔涖€傛瘡涓湇鍔″彲浠ョ嫭绔嬩娇鐢ㄦ渶閫傚悎鍏堕渶姹傜殑鎶€鏈爤锛屾彁鍗囧紑鍙戝洟闃熺殑鐏垫椿鎬у拰鍒涙柊鑳藉姏銆傚井鏈嶅姟鏋舵瀯鏀寔鎸佺画闆嗘垚鍜屾寔缁儴缃诧紙CI/CD锛夛紝鍔犻€熶簡寮€鍙戣凯浠e懆鏈熴€?/p>
浜屻€丼pring Boot绠€浠嬩笌鏍稿績鐗规€?/h3>
Spring Boot鏄竴濂楄交閲忕骇鐨勩€佸揩閫熸惌寤篠pring搴旂敤鐨勬鏋躲€傚叾鏍稿績鐗规€у寘鎷嚜鍔ㄩ厤缃€佷緷璧栫鐞嗐€佺敓浜х骇鍔熻兘銆佸揩閫熷惎鍔ㄤ互鍙婄ぞ鍖烘敮鎸佸拰鏂囨。涓板瘜绛夈€傝繖浜涚壒鎬ф瀬澶у湴绠€鍖栦簡Spring搴旂敤鐨勫紑鍙戣繃绋嬶紝鎻愰珮浜嗗紑鍙戞晥鐜囥€?/p>
涓夈€丼pring Boot鍩虹瀹炴垬
1. 瀹夎涓庨厤缃甋pring Boot椤圭洰
瀹夎Spring Boot鐨勬柟娉曟湁澶氱锛屽彲浠ュ湪IDEA涓笅杞藉苟瀹夎鏈€鏂扮増鏈殑Spring Boot鎻掍欢锛岀劧鍚庝娇鐢∕aven鎴朑radle杩涜椤圭洰鍒涘缓銆備篃鍙互浣跨敤鍛戒护琛岄€氳繃Maven鎴朑radle涓嬭浇骞剁紪璇慡pring Boot椤圭洰銆?/p>
2. 鍒╃敤Spring Initializr鍒涘缓椤圭洰
Spring Initializr鎻愪緵浜嗗湪绾垮垱寤篠pring Boot椤圭洰鐨勫伐鍏凤紝鍙互蹇€熺敓鎴愰」鐩墍闇€鐨勫熀纭€浠g爜銆備娇鐢ㄦ宸ュ叿锛屽彲浠ラ€夋嫨椤圭洰绫诲瀷銆佹坊鍔犱緷璧栵紝鐒跺悗鐢熸垚涓嬭浇椤圭洰銆?/p>
3. 绀轰緥浠g爜
鍒涘缓涓€涓渶绠€鍗曠殑Spring Boot搴旂敤锛屽寘鍚竴涓富绫诲拰涓€涓富搴旂敤绫汇€備富绫讳腑瀹氫箟涓€涓畝鍗曠殑鎺у埗鍣ㄦ柟娉曪紝涓诲簲鐢ㄧ被涓娇鐢⊿pringApplication.run()鏂规硶鍚姩搴旂敤銆?/p>
4. 閰嶇疆鍜屼娇鐢⊿pring Boot鍚姩鍣?/p>
Spring Boot鎻愪緵浜嗕赴瀵岀殑鍚姩鍣紝浠ヤ究蹇€熸坊鍔犱緷璧栥€傝繖浜涘惎鍔ㄥ櫒绠€鍖栦簡渚濊禆绠$悊锛屽姞蹇簡寮€鍙戦€熷害銆傞€氳繃鍚堢悊閰嶇疆鍜屼娇鐢ㄥ惎鍔ㄥ櫒锛屽彲浠ユ瀬澶у湴鎻愰珮寮€鍙戞晥鐜囧拰渚垮埄鎬с€?/p>
---
涓€銆丼pring Boot鍚姩鍣ㄧ殑娣诲姞榄旀硶
瑕佸惎鍔ㄤ綘鐨勯」鐩箣鏃咃紝棣栧厛寰楀湪鏋勫缓鏂囦欢涓姞鍏ュ惎鍔ㄥ櫒渚濊禆銆傚氨鍍忚繖鏍风畝鍗曪紝缁欎綘鐨勯」鐩敞鍏eb鐨勫姏閲忥細
鍔犲叆杩欒绁炵浠g爜锛?/p>
org.springframework.boot
spring-boot-starter-web
鍦╠ependencies涓柦灞曢瓟娉曪細
implementation 'org.springframework.boot:spring-boot-starter-web'
鍦ㄤ唬鐮佺殑鏄熻景澶ф捣涓紝鎴戜滑璧疯埅锛侌煔€
鏍稿績姒傚康涔嬪井鏈嶅姟鍒濇帰 A鍖?馃椇锔忔湇鍔″彂鐜颁笌娉ㄥ唽绉樻湳
浠€涔堟槸鏈嶅姟鍙戠幇锛熻繖鏄井鏈嶅姟鏋舵瀯涓殑鍏抽敭榄旀硶锛屽畠璁╂湇鍔′箣闂磋兘澶熻嚜鍔ㄦ壘鍒板郊姝わ紝瀹炵幇娴佺晠鐨勯€氫俊鍜岃礋杞藉潎琛°€傝繖灏卞儚鍦ㄧ箒蹇欑殑甯傞泦閲岋紝鍚勪釜鎽婁綅閮借兘鎰熺煡鍒板郊姝ょ殑瀛樺湪锛屼粠鑰岃繘琛屼氦鏄撱€傪煍嶐煪煍掟煍椻湪濡備綍瀹炵幇锛熶娇鐢‥ureka銆丆onsul绛夋湇鍔″彂鐜拌В鍐虫柟妗堟槸鍏抽敭銆備笅闈互Eureka涓轰緥锛屽睍绀哄浣曟柦灞曡繖涓€榄旀硶銆傗湪馃摐鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪鉁ㄢ湪绀轰緥浠g爜涓轰綘鎻檽绛旀銆傪煋栶煉火煍ョ湅浠g爜濡備綍鏂藉睍榄旀硶锛侀鍏堟湇鍔℃彁渚涜€呴棯浜櫥鍦猴細```java `@AutoConfigureBefore(EurekaClientAutoConfiguration.class) public class ServiceProviderApplication { public static void main(String[] args) { SpringApplication.run(ServiceProviderApplication.class, args); } }`鏈嶅姟娑堣垂鑰呬篃涓嶇敇钀藉悗锛?`@AutoConfigureBefore(EurekaClientAutoConfiguration.class) public class ServiceConsumerApplication { public static void main(String[] args) { SpringApplication.run(ServiceConsumerApplication.class, args); } }` 杩欏氨鏄湇鍔℃敞鍐屼笌鍙戠幇鐨勯瓟娉曪紒B鍖?馃摓鏈嶅姟闂撮€氫俊锛圧PC锛夋帰绉樻湇鍔¢棿閫氫俊鏄井鏈嶅姟闂存暟鎹氦鎹㈢殑鍏抽敭妗ユ銆傛兂璞′竴涓嬶紝鍦ㄧ箒蹇欑殑浜ら€氭灑绾斤紝鍚勭浜ら€氬伐鍏烽兘鍦ㄤ紶閫掔潃淇℃伅锛屽畠浠槸濡備綍鍋氬埌鐨勫憿锛烻pring Cloud鎻愪緵浜嗗绉峈PC瀹炵幇鏂规銆傝鎴戜滑鐪嬬湅濡備綍浣跨敤Feign瀹炵幇HTTP RPC榄旀硶锛?```java `@FeignClient(name = "service-provider") public interface ServiceClient { @GetMapping("/hello/{name}") String sayHello(@PathVariable("name") String name); }` 鎬荤粨涓庡疄璺垫椂鍏夊湪杩欎釜绔犺妭涓紝鎴戜滑浠庡熀纭€瀹炶返璧拌繘浜嗙绉樼殑寰湇鍔′笘鐣岋紝瑙i攣浜哠pring Boot鐨勯瓟娉曞苟鎺㈣浜嗗叾鍦ㄥ井鏈嶅姟鏋舵瀯涓殑搴旂敤銆傛垜浠敤浠g爜绀轰緥灞曠ず浜嗗浣曟惌寤篠pring Boot椤圭洰銆侀厤缃惎鍔ㄥ櫒銆佸疄鐜版湇鍔″彂鐜颁笌娉ㄥ唽浠ュ強鏈嶅姟闂寸殑閫氫俊銆傛帴涓嬫潵鐨勬梾绋嬩腑锛屼綘鍙互閫氳繃瀹為檯妗堜緥鍒嗘瀽涓庝唬鐮佺ず渚嬫潵鍔犳繁鐞嗚В銆備负浜嗘彁鍗囦綘鐨勬妧鑳藉拰椤圭洰缁忛獙锛屾垜浠帹鑽愪綘浣跨敤鎱曡缃戠瓑鍦ㄧ嚎瀛︿範骞冲彴缁х画鎺㈢储鍜屽疄璺点€傝鎴戜滑涓€璧峰湪鎶€鏈殑娴锋磱涓箻椋庣牬娴惂锛侌煔€鉁?/p> |