From 4c25f245619ec7996d4b7aa90cf6ea26d0f79359 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Mon, 26 May 2025 15:37:24 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E8=BF=9C=E7=A8=8B=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cloud-demo/ReadMe.md | 109 ++++++++++++++++++ cloud-demo/images/image-20250526152842107.png | Bin 0 -> 40380 bytes cloud-demo/images/image-20250526152904745.png | Bin 0 -> 24705 bytes cloud-demo/services/pom.xml | 4 + .../service/OrderServiceApplication.java | 2 + .../service/controller/OrderController.java | 13 +++ .../src/main/resources/application-dev.yaml | 3 - .../src/main/resources/application.yaml | 8 +- .../service/ProductServiceApplication.java | 2 + .../src/main/resources/application.yaml | 4 + 10 files changed, 141 insertions(+), 4 deletions(-) create mode 100644 cloud-demo/images/image-20250526152842107.png create mode 100644 cloud-demo/images/image-20250526152904745.png diff --git a/cloud-demo/ReadMe.md b/cloud-demo/ReadMe.md index bbb6c3c..b95008c 100644 --- a/cloud-demo/ReadMe.md +++ b/cloud-demo/ReadMe.md @@ -405,3 +405,112 @@ private Product getProductFromRemoteWithLoadBalancerAnnotation(Long productId) { return restTemplate.getForObject(url, Product.class); } ``` + +### 远程配置读取 + +#### 1、引入依赖 + +```xml + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + +``` + +#### 2、在nacos中配置 + +![image-20250526152842107](./images/image-20250526152842107.png) + +![image-20250526152904745](./images/image-20250526152904745.png) + +```yml +order: + timeout: 30min + auto-confirm: true +``` + +#### 3、创建接口访问 + +```java +@RestController +@RequestMapping("/api/order") +@RequiredArgsConstructor +public class OrderController { + + private final OrderService orderService; + + @Value("${order.timeout}") + private String timeout; + + @Value("${order.auto-confirm}") + private String autoConfirm; + + @Operation(summary = "读取配置") + @GetMapping("config") + public String config() { + return "timeout:" + timeout + "\nautoConfirm:" + autoConfirm; + } +} +``` + +#### 4、SpringBoot中配置 + +> [!CAUTION] +> +> 需要注意的是,不要在`server-addr`地址中写`${nacos.server-addr}`,否则无法访问正确的地址。 + +> [!NOTE] +> +> 如果某个项目模块暂时不需要动态配置,但是引入了,可以在配置中加上,导入检查。 +> +> ```yaml +> cloud: +> nacos: +> server-addr: 192.168.95.135:8848 +> config: +> import-check: +> enabled: false +> ``` +> +> 如果某个配置是可选也可以在前面加上`ptional:`。 +> +> ```yaml +> spring: +> config: +> import: +> - optional:nacos:service-order.yml +> ``` + +```yaml +server: + port: 8000 +spring: + application: + name: service-order + profiles: + active: dev + config: + import: + - nacos:service-order.yml + cloud: + nacos: + server-addr: 192.168.95.135:8848 + config: + import-check: + enabled: false +``` + +#### 5、动态刷新读取 + +如果需要动态刷新需要在控制器或者是启动类上加上`@RefreshScope` + +```java +@SpringBootApplication +@EnableDiscoveryClient +@RefreshScope +public class ProductServiceApplication { + public static void main(String[] args) { + SpringApplication.run(ProductServiceApplication.class, args); + } +} +``` diff --git a/cloud-demo/images/image-20250526152842107.png b/cloud-demo/images/image-20250526152842107.png new file mode 100644 index 0000000000000000000000000000000000000000..c667a90b937b8a9f4eabdf398dfc9b026bd32670 GIT binary patch literal 40380 zcmce;WmH^2*De?(h6D*3Ai>>TlhC*Yw;;jYU78RAG#;$60KwfFx5nLFn#Q4VcfAdH zzx&;pb=R!9^JDr~an?DzcJ11=^(g|s%88@BCVc(q(IYfT34r3GN6&U2J$jt~@(J?E zd6oR1M~^-{k_3EKcKx#r_xhw{lFW5$gEf~?|I!fflcz&5LWqG+q{(c9rEnDQuW+hR zIJ@TeI90yH300#cD|n%D?$Y*%9B~`CCu|BGgJ(y^g|YgnS*K!ew6ot38HQGfqQUc@ zC6C8wo;*IhTK+>pO-)_@>es@_MRqsxN8A%ybJ(B@po$87^nPn=>&?rTw$AiO#*n{) zwgKyZqeo3EAA0WDee~!@@aO2~|DNLc(!BXMVnR{C{WtoCn#S;NRE?i4s-Z2Jpzn|y z1~P}d3)Ny`S3Z>&Oi6(xHz=q_B`30I$)e!5f=<;Z zz%54<9<>E6i+d|ycM=Do%4YkrLdV0cm}M}bd*VMXEGNm^&5ijGCX(I4e_;C?diXN(>JjqD zPm%>=A)|!9u`%)-utCVBO&}~(DX1c)oRS^>NT@}E75|ocJ(otOCL^=%WkkvwtR^Yc zrW_aVPf10cN2gLLzoKLN$Hhf_Jy*~cja&5;B zi;Xi)c}w@b%n`9vyc*?%8?ZmfbUkYOBn2kSG{|Fb>RX)mL01HT1;6tWT9yA28)5Q( zTGVY2Y)V`oixg+uW~XbhfY1{g;(JBV(@AKc$-gQO>Zd~-9Sy=JxTf<8v_&07CsNy9 zk`-2lF75Q__o-AA0swhR6*aF8aKJj1;W_cKkn)%xvcMmN_ov0Ot(Cj(b%2|;JuR<%*)N_ z=3ertz|d;^G_(<R2SAv)Du6=Tn~T*uJBZGOhAxnpngNkw$o|C5oC@>Z z3ccFz&3aXsm^0c(GO`_Bw1~{+PXLO8eYDq*S)${U4`hvh|Ni};i$NB7F6qmIfgKUB zqYd6uesLh@pUUOYimrk&+@N8!ml0qdCU_;YxFAwvRJUwpznM8w9!mFAp)Cvo>4%Pc zaMd42FdQX8j*U*$7?ey(sx1BS66m$G@1ocxt;;`-d0GCwZa-=m}1}hiFSGBZnTA& z;F0hjdX_VznF-T*?npQdor-92M>kF-xfzy)fb>bj(DIa5ZDi8Vo{#>s=Q0D^j8_!i zT#~?CmieNVT-JaWiI1Z)x^;`YsHFs4B?iJsvn)kbu)O^!v^UniTpY~0rkw|1=PHUW z+Q)x-$E}|^%SY%IB32|D(j{D+d#N0o{Bcwp(jZs;%{VuACg@H@6<{R9-&K<(CAxk7 zeUaD#77RLtR%|yb-*<SAtAGGj31y|OJ9UU2AMtMIK@lPh{br$Ly zH0jd2$^AO$BolS-2Y>MQY^xY8V=p&v zK<}106u}4XU^>di526a6FzNf~6)0Coq*QnG=sf7j$Ux_2Tnr7{3%u=e4jVRqg7V#1 z5hvis6POy<7q13v?qbfSL$+ev|fME9pvZw@nFCQHMERa;Ush%OLL z91tb>3|v~OkXWd9n%EBIlpC6y#C!XeWtmwis&Fdzu)$?#=B2K0R_!HGkgMyCl&Tjv1 z@Zi~sL5(k3`F6q`eSA&7@x5Z2deiBnq(Qk8zrk3{=w@ngFISj^%Ckf~(Om6X~5S0MRj*i$NJ3 zT?au;KPn59|0t;&m)))IN+xojMEHR-mhT`4%Oom65tc%ZvS}mnMAs00V(IH|2Z}d{ zLKL4D?gIp%^^TfBc@^pBDI4_OdZFK3g|;pZZ@jG&Y_UP0FQhZItH3%JqbjOOr+2IG zG~RXkxi~&poa)w(JuTlHiX>%M=wsZ%U6xvFNE`5bYjji2)GHTO)V*YHr43|k$8&YA zs9$L97j)(EFd=X)3w;+YAieS-6?WkbpprhuGi=QEJ*E7!_;4wK3^szOGBo$3?;ru( zo{T<^Sj{hvN*j;2>UDj^!~wNR7gw+X2O~t!kj4GterWj6ym1K8R5AJ>6&6lKc6f3` zd0AP1{#4_-g$k&7gtWj*xV)3l!(s8duGZLJlwl3Ntb^x7FR?L);aXwutWk;g3c}8k z;fG;2Bnkik#nnY>PzpPDyiv-;Zteop6#xLJy~JLvM-V`BneL2dPamSiK6#`_vrVPn z+!}tEPswIsS4hX6e15Z0U3smmyF|_Vm<0OS097h0mFQ1{Mki-;k|rf^OK;djgf{k4w(jW`ih?{4O6u&JnV?N33h zhNE=m%42-74nkpp&*L83r^XFlUim4w8d5yztg#i6S*_HwIG!>`HPU&-Y&NHpU3h-$}zxn ze)@2Vzsl)3+(X{xJlJz`PB8cEFg?d9D$#7E?9eA*GOUq$r`5t6s7Dt&>9ubec+&RQ9Pt2E-3f=Vu)eVuvC(xo+#);!#^btpwOkV#hl)(u%Ip_2rr7G`r3vx67nI9 zM&Y6F4*N`&I$ghc*xxxkA3upjrGP1_+U4j!y?chVUs66)OB*gm)@y?s$mmaDVUmJIdvCAUU3$GLaVu;z)rIVYnS*Xs1kc{0o(d zti8Ov2CSbxlD4HKXRk9#;UHve@2wHPfes(!T98Uh)e4inO!s@x!uPfhsT+}=Tw*^nKUM9v(r=Dvi6g7;r_G>Q z-J)Xybo5PO+H-AA%tBBY?rWc6B3(BltfwK;gGnPH!j7)`S3MBxmj%u5?`+9b@&s_j zgiAgin1oXl*23x$LtVd9#a)NjSXEi5jIWYm@T!;h+o)HB9WO&=QuTPP914X_pF`8B zv`UpYZz1w)j~ir*g)3LRe26_jKd~@?zY`aZgLTS;9&(uidClB))6%?S}X_@iIIC2%8B=owds*G zeM4?86?9wacmN};J6QTo(JL&Zffw!n&Vdyp^JbJxrg`8HO756#qRl{cg*+>Cpqwnv_lw)=#l)0VG{e|Dw^$jmf zk@V-55kn7OOmrdI_NR|lukL0!hLfDKu5lg?+uNTsZ=ivPG(fa0i{($wvG9Fc9DgSTgEk$RUh{?#r zF+C42?&^6xI9OahD}SFZQRm%foZZ5)XKg{t8*F50Ge{q*a`^EC>Y6xd4)5Vjd&rOH zF6lI26&I(Wtc`sC*qQAvP*4RcWDR`C>sI|EmG_d_GeU>C_ctb{g8QY=TJ(&iXw2$0 zXy=^~0h>9!EKIbRR6aJM$kCyv#$>$a6@YU(h`djucBG$Q8K7Jv@;wlWjA{lfK-J>N z965hfQmytvw1-|AgB*DPg`$ASj9FY&^}T%TH1xk1D9wUyM`aUvYErjuq1S(FL*mGdHol|lG$jC4*0!jrWNT{v zEr&%HBtwPmQC7%d-vWs77P|(l8$GDFe4Xh_i%wG1lLTX zJ7BDFNiN~tec8d@nsDwV&)D?rHqa(o+19VPa?Rnf0=<`UqryL?lsZZE3K}v(U&bDx zCs>qiTdFv#G6pQ?6@Wo`XEcY;CqbGKDt4ZX4x@x|lk|tQtQPzz`0}y0m4iWd=hOab zDZyvUnbW(Yjr{7nl^0Dt>NX~v*0|-Kn%ffVGmKb%h^~@jJKXt$z7uk!+2yb`f z{gcMOJj@=)pcAdKiU%-E`rTb_-#-wIlLp$E6<>B351V+uref4DjTVp@OPoC;cv1N@ zCa?>_5zTN@odBZwTsRkClw$nTW!9mXaDJ}t%nBk|2G90BV_vlu_HcsL50qlt4a%bc zx3;++W@^fqLSr!|H!adk%BPp~u6a zBXlUO6Dn4wu5SLot7&bS-E?K7*ZGrjOrn4O6uSi$vZ~9BEg!&?j?X(%CCGGGCtQ^j z6?bpPAJw=ea0##+ljjC{)PUt1f=nsyK9Wat*)})iD9j2;SzBk3-r4e~2rcDcKJc{w zxX#-~KYHDU3d>`#tDO5trnpls2n!O%QvXZGkE_!?$<{Qb;Oc*1JF>kidn}GOP>MS2 zml_d!7jD?JAYRBVw) zxwFHBn;*Guy{Wp347=`f>6m-=z=2GRZyrO08%hBqGF#P<&aKjlsqhdblf88p6`~|j z%tw|IoPMy*k~k#5Z`ed{Mlu~3Fykl0i10vxyKL4_wd-&~JN{v;P7~&fTZ!`Gz^?L@ z0CEgd_}EUlW$ul}5=v;7!Nxv$uneI5gXKOc_rSW=!@NIo6Thjbx=2bdN-9ajw5Uv1 zj+CGDZMLtmSt3n?T?kn+>%&I8u5q0_w2d7o<(kEf2XjPx|7j8|`}xg!Vm=lY2$Htt zdwlaLga+lFrtRZpHKS$k7?tWdMWxU#zK_iC0zL6NzV~`Ebbdh|6|8v>!1j{-#-GUw z_;x2>lWTpUm!81V@72Wt>(*no2)oF^YEFiP)XE12o3k-Ck=&F0Q6p!2LiB@IP8q%ew1{5Mx;n4{e1;5D0#*!O;{+2jOMn1XGqb|G z70K|EB$)R}kg4+QZOl1+spLn2LT5*n^YtO4ZrwUjK$@0Sa^p=I!dupHf$f3gKDw$` zf1a{T#_b-wy*r(6nCf@MX$1h1J5p|vXd1f(^CNK2m0`;bj8ekVmF4b{7XF_%uUlQ1zWrfHV@kFH)L4x`0-=*ODwfw zous~vUCO=SRuU3V8q+n+f9m8wi1Lu5AXoao)^ZAS(vdz`>XW}85Y~nY)ygrJ+({)q~Zi;WSss9MQ1DaGlyt?aX zt?jRHAF*&?r23{)QkKnQ#l4Z)gG&G7Wx+Cz{*BUib1Nrj>?U5Bc`w8^)x!$(iWp@2 z3$?(B*1Eurv8*ObeCVFg>BPyFob`QS|Iwqo|8mg(|9JfW*F|`4WGwOnw7zp!eVKbX zQP`|t!fiO9u|NxyC|#(zYZ#hFix+fnxa|lfN>4vG`T?WF4fgW%%uviNBVxN5lGUs2 zTefC9^MVP^oWs{I=+l$bWVumf*x{+|`iBQtehfH;>I^zJUI*}C4N@^c~pfV)9+=kb*B*~`?^=tx740z-3~7sk`DJG%x3$bmVrTr?DL%;jFXLR1P05W+(JxuIyz#;^l6)#x91Kpp!)2DACmHE=wbe(& zOP8HX3o&L<_n>sRue4)nv+UL~%&cJnzU~;)^|WrMuq}=|tn}{v`EkhhyQ{jD=oy-*w*M zH&(MG95l&jzxVFW_H#hNcllPb)>pqQvORp6+Tl({Rx91c>vEpYG>qZRx3=1sI{8FJ zWAdk6`*N)V5Ri^kl``~E39^X3#!{_yDwc*dBkuS_YxIQILRPqV3UcF*9g zcfU#3$!~`Rmq_8ua)642RAC^ir-6j$Wn#oYe%4NS?ffdOy=}Xs?TKBx0Q;r$eypda zj8gPC(HkKyr?;5#hqY5dG+OQz*au4C0t4_;0~4DYQ*woL-d+DW@@XbK9$C{Nh?NSM zpj^PO>Ys~&8Gr1&rBJ-?eI|e4TFN2RvJ8Dk5}rFkfE{3Fgd&Cz`V2R(<7uS(j zU@FZ(%#Oh#mmQ%9Y{9u1LPltH%}qEA16R33!~5cR>j&b3SQ&u64=a9HWIn==qk=jg z&U@Jgys_Uk?B)*mVYU#EE>{<=Gs#kJCfBMZ@7D8HkiMJz`q%g9jU|clxJ6fUoSx zKsGA{5Ja79zzB?3fO{-=Oj=oIHxgVlpHYt1y~b&hN$fB+x$J%Jeyt#>H*YF_BSE5& z(|@f}Ma`{c9X=Kve%)@|tZBV%h{s3OPB&nWi_Mp~FlJRt-NzHQelAhrAtuLJkWm)6l?tr1LGZJFP8`m6Pqy#%{tZZ(ESg{c8wI>r8 zt6pq>&Xl;Fy$qra@2Aq6K$;i6QIX)3uhrrF!V{RKpyc}bopm$hxxBPGTSwjDe#4%B zACp6`|MGEvKDWD1$G22Zpy$)pQ>cjpdE2bLnr(o#;vOuMEn>1Xv0nFf&oojj){2Rj zWMq;b;-TVHwc?R119S(LrLmIrKBXjDLIg8To}i!YZi%eNcj%a3&;4E0UG8e@g%Vp| zjhrb`>R#98@6`NeT-+vIPb{3|YVc~kW+;Xp4!}7lObQTx%$zJrx)%rfC_>&^GoVPlA3zrDa_e414$0N`Xp z8=RQN7F^k`0RL`e$9{Hw+1it?7I{V@5i>ovmd{_nU`>L6OGKSPKiMFZosURCQc_Sw zm2S5b8H0|=b9f)qTjFi`)2(;%Jx}QyddzKR37svjt*u3;8HpNN>QHoqtj<1_i+|5B z+qx3lf?okP)0z#+=Dtwp_N#7xohBaNR^G>;B30ZA&aNE6d$STSb|AAf{xX^ToXrDA z1>;ToGBSjn@9kw6L?)wJ-q!hiE~mbSsLDoxee8NxCkihRbJZ#u0};a=dUnZ1Y=vW9 zSH^V+q_NNA7QD?_Indk^_ytOF-_9fLsbkSh&pyy+>3b^l!oK0DR`JdF;GJR7ihAYk zv*$R_MZ4We?dNOka`kYxpR$#^^S5Vc*3ZzS(FEhA0As3?r6*oT@kGAzOhkOna0_yR zzM4t0wI^lBy1_pzz~6netqc8CaXlEX++YvP8sp3(~hD@E9I89gQ1boSfVgZRTT%i`ryH9-JS7~ zp`kBG6$XI;C{-LB9Oy5-^qqelX=uTQ{;tj)qN8Ue`z(Bb02kJTq5@yz*aUzs zi3lwxvG>u#0>5D~?LatcvQG{xFw>ZB16vNx2OJt|uGdL#-4|=^qGuaK$Vld*FV3ZG zOt^b|SnqXlnKBiqKgw+BK#mD(ESi=(sx!V3rQ9uk4U;E)fm?`9{ z*jcUaFJ43e^&+BwUA>CZL!Oc278{cg;E0u(y^Teko-k%ur^_GFZr&>qAw4YPS%OuC zT>}$z`ryQPZ}Oa7UpherqcF(8=NTORo7l`6^;`yHbgp;wG3_H6h-JdL?6~%}XX9a< zqF~$Zo2u}PiC6xCmK4pulnii%?z-NnIUysFeB{P-GyB61RBw0 zr4}-kNb`BaD6vL{Q5SuUv){8W>4T73;Q-}GOh$u5ajelkKNj=PiCZCE;8$XK!1oQK z&5F!K-Hdw3G0SORi>X0{G9V#SD}5 zbdA>fbW|$O@&Y~EqOK$yo2&EZaNNTwZ2BrdoXD_@JnNWGQDp77w}@vo0*_x&NvM2_ z3hb3I?}@&0IS+5f(X=TS#DlDcE|lnEyhq{Dxx1~EhH__3%vh3EszANnN zTf?x&8H>hIS#`>EuvzQaYNCO9SH?pWzUO+QOFHebV&R}LI5j{0?Vzq<(zyZZRue_U z)!VU7Em#=31LpS!mlf`k0K6DOy|6c^wRdoMYJf{QbTDhvZG+41zm5E%)AFiX{31v* z%YWhejlK2?V-5$OuarVj$oACUVi2p?dMC7Qh4s2~+7%V4O>`&jWVMRG>YpH72NKP) z9Rfv?!t1|6PFj|;m1)(rRne=dxds#Lg&L(7If?{H8p`GU3M!RF%Z2R3!GY`co$t&{ z@rMa^{nC4!*p zGdPmBezLq#U;VzZn9SlRIMeFja6Vg^QZ*<1h@`k*6-RE1=p9#?$}~tNEnKLQY2)}j zJuTtzqjNKLz|)X;Z9`Elu3%^$cf8Be;!*)&JHs<0jZ;bC8P_O2Aug-w?SqUHPsuNN zZOzqoaimXP&+li|hRN=goyph3B?tX1r&otNghvsdinzz)gEQ?W=Dnp=z)N3{mUW>t z+{_>kp$!07YvE!>+;wwb^BP22;jB2>-uV}JGXZjf_+PNhix8dkdjpU5O_E}4ZVvWt zPr6qDW7-}og~C9ub_so#Mh}wi>nr6urR}e*UMgV_U*V;#cHh-_@042mZPOml7JN(o zo6~0DN)9~I!qA?e#vM9Un=Oq()-E@LD^GGYW-}XJi+#;<_wGWln24HzFZg21m^I9-T_jC$f!}%n+H;oNcpTcGD z_c|K005>LMr?o1=Thyd6YYh zp(w=*z-5-=6k8O+Z|0_^XJ=<6Thy_HgtfdkE8Cy+R?O>w zZ2BZt9~Y0K#C9q$vy%HxqaHN_vGAdEB~=v)(#_7i;KdEUNCr$NW;sSF!E^@etZGhH zr+yX3HAW*=rMDJzsxzt`OUcZHHs7ozHgD5@S4FqW;+)6~S56`Ac61E)n%N#&_t-=2=5oIv@~;FU6mpJd09k~IAKO~p_E4#dj%ESmNOn(z zkIE=4$n`z^Y*oMwx%sMQ90(5ZnuaK;tmr((KL+W(}OcxRQ+SsD(q2*+8 zwvwU+)&Z*}WPLS7Lg4z}>T6scupw>#Yhpzh=MNBQ-m-wZ@_I5jLh(J-z#5Ery0^cPn_Y zn}ZQ=`cLc(BD3>ir(=-YkAtg~I%Hkj`TS41Muj2c2xQx2pD(zM!`z|6R~M1AYjNw% zrwQHPBEM5?QT-zpI>{Mhb9=E1ub*+eo1FFN=y6))0RA!mk)T?G)@^^wHSR z*hAVk;_S~U7{#~$uauRD?*#wU!6O4X0jjhJiy40ueXL(Q9>3LpmbK|Z-BnO4s#qu) z5-sFT5j?`$Hn(E(D`r^0N zqj<4PXD*bdjD;x+%$iPHS!s`P>U*>tw?ePtgq>)<^$hqXt9A+djBHNsPJG5{a@0Bk zjA2c(BrC1^lyogG4FErRcJUDG4SVu4R%$H3c>RYA#&Us z%r0-8k}qbQV{i?;y}L$V*n`-csuy4GU3A>qsRgqhg{eb915Uad^o`$8*)H-K)Q$bt@%+&`r{5Kr+z>=567>Z(Pmh!=f!J<9Qb!1 zZXR?}=HZju_*~}%8N-BRdff)z9u6nXA}-2%>xNyk7AMUg9ocDrWAJpY_-fYld-KB6<$xT!PU_t>_x<$X1FN?QXR|)|K|8JFrWO zUaR|faxDsdN^2C1WsWb zk!M($ZeURLc76ASzllfFU8crn4`{8gk+(bI?%bpG6yXcE!*gFOc)Q%_SVM{#0Y&g( zieA&q$;*^q51*Gb0{7un^E&VA@K+W|*X8uj&Qkz4rMUxB({4#w1~DAsH*E30Xz&;)fRS~~c{avlDEy^+QEL~6Qv#tAKOo}Ft-&K@h+K{O z5NDK=EC`p;(Q)^>ndrdczCMJ98Bvt+wY@O9GR7R)2Cd_|JFD2ZTFNafFJZIW653_w zyx5BWSwI}19ds29iUEvey}N$f64^C+$60oq0#RXJqhiu?DDaeGhhiFizdd;6ykEN1 z=1s(%QsGEoDWh-d=8oI%>8%HRAb#v2CwkFP%uIJC6eFqhu_a+#RW z+>`*K{b>*2<+HG8U&nlBwRf2iH#=LWmJ$ph{n>8svSn`D0VDq$+>M%*P z(GIY*D;N*d*NSOqKgRa5!FWDHZRng%yNT3SVw??&k{xRJq=4_wTxnsT@P^rVR8>`? zhb>ZZ$8AQ*CG?64(lJ|3)9HAS6Bs97_2lC)NjdtI@#>(e)Il- z>>XwWnnozk6xtN!r>k2uE7eNm?M*0|Zr+DjC~4Nsc?_6!bPx`@goMNb3tIN@SLiI( zS0(lFAl&x$>C>%&FnYixQnSPWI59OYB5@&Kl9_|@@ickNTT~fv2gjfgGR%mabQ8za zvz?;rvA@V}o>r+VQ#1!s3in~v%DzPwe=(iK$FIrAUZVoo8fs7$haIsyO4lEhG07e| zK>J$Sn=)JbqP&4@?slU^MMFF^&QN9Ik8!WA7t@ZI=dQ8?0}|-N437C@jYfhk5d+|S zIxn=@XpiRyXS=Of>j)$axaz^ejDV5b{1R%Z@s67GDb(6~i+Mn`WsjOtm&DDv6LPsG z9Qy|jP{eW}wB{-fiOvwT)WU*ruhgmC1ZKTr4XE-*ORtXoW3Re_|o1ha=eNF}^#$Hc0 z2~xcwL);!OAJx&$P-GZD7J&40Qj`vwl}Q}ZCnhv}K?y|++TMC-w84yb(N5nc-k`G> zn;a=BzjlcDU5#&Mq~gFD<%UOT1ESpgkhZp@R-?N&qiW=|TBlq1tuOw7-+z1_FXh_2 zMR=gwVgvtH_j}blBXQZW0&I5KB&f6OG)^AGh0FN^s|bxu!m{;Jb5IPOEMRGiEpnBl zK(RnR6$#0_7ER3h8k2+-C~%UZqqVic?`PMJiv-t&$7Q#$jT*gScCzhw#BRNPJGIrI zJXl#ud*gb+q5}J7K5Gjz)HaB$PiIT1xmgXS?y8M8^^jI;MC#O(FNF<( z`0Q*$U`OJW1#xKib}Tukc^zn`E`D$h0G&e<1Y^tt0At=e{*3}u0>}ib)S^q5gg^q| zvp7=Z-&-i?v-lbCc`@QMU`Kmf#p=v=b=P)d2QlawSLKPqU5ucJn0+5HOL?50B%@N< zkm=|790ebH*!2}6?1QX3+3wh4EqyjdqvwqKSm(Tu1C#g4aLJ&MsRfhUK@HX#=nR7- z9OGq8^=wjY@gxZ_RdwNTc6m-1l$0r&BETrERCZ&y{rPOo#?Ly`4Yw+V1-sHW4mi@j zL47%qO!?=F>0L$Q?P1)0Q}RSd(dRp(2p<3r4%3cx_3R80K8XYlJ_$kB26g3C^UN`} zcV&t?R)L!!bs#JhlbbYEcePvDXd0-`-4q9!9g_c|sFX$*t`osD!W%=5j1 zgoKp&`=sx;!w`Zd%d5e7j*W|I6wRnF{j#&-fuIbvq7o4hza^}Wh8Mx>egptf`XwMP zHJu`N1fIN5(P%a=YpBBuBsXMNiF+53v%9qKPkK-VO^CizJ|hxu!(>BtW7ob!BZYnX zd2oIxr|FRa86n$-F|^R(r%@o4YMa!S6%wQ$eSH)dFt+JRc8}eX7jXP02B^qZ1^^I) zW*6yUR7x?0-2+(^K94&9^2!JOThhkVU+1h0&_qZS^um7}|~X zZnL4B{|d7%=P4a$L!sc!+-FuFz)cul4=cuj)%Ibe;^3!!x?B?xy!N&(EusqU=@2Pt zGG8>b8SrUS7v-8lCu>CCrTnA-FTX28ASxHfH*-tMxfiCrz>+@2!rSD@5NQ39T3v-* zABVQNjoEsd-c=hN2Wae6r9iC6?Bw=vd~Cd3zOkW@TYSBU)f?#Y(oT8p*8Al}tB1GM z#x^&W+ofN-Ktv6%&cdk05P6*r1+3o{xPYuIl$k6u6X!PQJDzF9Uy@g02vz1D0dBhX z^x^Hm!1TAtRyMZizgWWkC z6=eD#6CKjrQz1RKw^ijxv&tII7ZzwZ;a$7dJ&hT(As<@U21A`@3;&^U37a?Q11=eB z5Pd62dFl9KE?*r@ck~ol22xPN6TUgEoWoD$t+zO}+}N)EGMvl&3yg65dYHDx9v$UL znO&WjAxX3Zk^mz=@#2xNAuY#Ix6qEsQ2N+>$x_OIEee`5=q zBQ*~`dZ=9YM(o}eaz6I6aSe#y!)1}iRl2LyJ!3V}+P#>~V}KJ1oR-?ER4(*3Unwz4 z^M!K75MiwNL$Ixh(OI%exWACv?Jmhf#-57iqLUoy)X-kZ_7diYC%6zC1olkb8T$`m z+Xn@8)B?9F(_V#CCPX&v|1I)o5+^r_CzPfr+v!ABh|!&YtgLS|e7=?LPx0*}Sq##u-B;@8o0Z?y8*~vq{S6l3gx1-H38w3yVYgjs#?+xb%S)v)54pT$aG+fblHTi z+};BIQO2y@RUmLk*Lqa`=eh5P_upfkiSP{@1t1&L;LDOWZ-Prn_zRWG9FwIl>!_Sx zB|^#}Y1XnK(R_*+alIvWgC#m&k_Yx@ zK@+pQ^GV3Cgk6gb#}yG^Lo4oOy8>PA`jZvgG-eN9kn$P^)pl}uTeNe)`LK)5YiVZw zfrjF;?Og2AhM$QxPLzH#NEGei2!|-L39i|1I2porB7y`*zcYh*r(|5lINfhslBH8@ zIhfJPpLscpU7WapfARBY`>{_*po4tA%{$Vmn+U^#tBRYm z%qEvZv@5j7#)HSVq@=Cw!FaLEq>Zz0SnM25VuPkXw<&5Q{HnPOYw}x+HFv)5?M@{i zFt$V@&d7x|Xy*=xR>bObFH?rSuM9uA$iDxGeRouA7Kd@7JlwRSYbfWYw!!IBmh~jb zTC>mZ@xcRp;%N3%9FBBg`_oz!WD)0%yZ~1K%>5k@Q+lT*4|@Yms-zR zj#%zdX?myaR`m8P)Q=yn<<<#^-qjB*!y5^*y)sHc01B)-gqm1u;czx-t+Z{%K~7-N zNg~r(TmnoCTF+u{@Ef$=>_I7igU^fm?cKi%%1sPzo1MGD=g^G9?R`gdF5Ex>S)c^N z1?>4H%kJQBYixaF-sDAK!@5;|8mFdxve;J+;;P4_4b41`qyC{n+}=CC0ktf@fahO2xVS4N-o z3i%ufo;BiO4QFp^RiT);9th!;Hz{5J)_;6NUW+Y}so0=1KQY0@H%iajLi~vV_v-u{ z`SAZjk!<;~3)$sT%X-uA?rEzUMjev0t36D18x#L~2H$GegfTzWV<2grL;|B-Uj*#c z4cfzYdYMfc6j)&U-tX@vu@>#d`EachIo^F{-3*l|V*x{jOsf8gsR`Hq{}?s+-@v%# zwQZCi7KcaaTa)pLt!Hq=_CyoI;gN&$zf0?1WBh0_8MW57seU*tcnjXo*!LV6guh$T zy>3C`77=d+Pom2bA2|8HAq@4rXOAxs>E7qQ8%v^_doE&idd?S@K`ZtL%-*!MNU$OI zzZ>!jxE;$h|G`o6y!qdvF8f{e>G13WK=A1#WN-VM z9PP|dDStNk_-^3+-^$KPW9*_Z{hj2E{e*v8v~ZZ^G@X6lSXVM(5}IhpWUz+JMp5lC z(na=91wZicsOcN00X_aCsp>>wX>oI;?G2Z>hEW5#Y>%DtS0`oP{@f8*l7&NmDf55* zH-R?E!~^0vE)=@7l$f3kg~#@(+_*`M`kra&22ixfM7 zhQDYny~mg=O@CD@T5`-&Iai>^O8^;!C-#dXvp0IMF_kuL_E_e-fGzzh*-OgicgRlX z9QCR5@%nf~_8j*Ni9PJ39CminswI#9Mu_~rUKtPab~G)|)O}wwWIwO0#NirZ+ACK4 z%kLiLd~z`H@IsMFOAjY|K|MP%YD=KYdgOP-TfL88=V(c zM*$e_Q2G?G%RdGS%t9f-BGpO?nW`Gnw6J6|^4A|X z3-Z(B@Cu66k@dM_sl&Oac7UWlOpQ&ShSj>5I({UQr~Qe-QF4H5)QCmYf{5Dla6;W% zMP=6%1bEc9)B38t!N_`#ZhFqpO6=EU9VP(4@k{&rgBoOwqV~t^6j%%~%h{E5C?W%# zp#eF9M31dGMR33xPaHkH?3~AkisceW7>JL*_^rZh!urx72LE!h>DAw$rBldYo`se>&w zB>+g4;8P>{Nd|iuwym~HeDbMu5BJa>$t0QuLz0Nq3Y;b{G3e^j*?6UyDxB77$K0!S z0djWO?EMwHGEp4X4V;Gl0(J{OE+k{?%yRpKC1U**XD?R{)r5Iwhdn82O%g+<-g{8; zX44eyzRQHb>>)KHM97|ew9>6q7{q`s%Bk7N74%GcFE7gXVUHxTD|+)Wf{aA6ZvB?D zhodJA@0687{jvIpL-Kp*wk9vjKWQbHW>@4#v+LF$?RzQispZ9rWSO-J&;_i?1UsgB-J|eEwVr z>Td2K!qK=Uji+lM+Xb5F|G8UaJi{S6jT9R#FEtqcQamBrp~)EU&wYog-jt~BV@+BO z1jc3qZp5`S(M}TL8@JEc1yEA1wmpEu92|}16y3rU-B4gVk1Tlhh*Q_kk@{^PwZGYn zAw?!A!$}>WLLv3_HLkH}1e;QCY-`@9?yQ$pvVfca!Q5K_#np7tqWMCM1b0G!Fu~nj z5*XZqI|LaB?m9>U!QCB#%izx7?(QDkA-KamB>(?kdH2<;cW>QSZ;GOZ;mkRwyZ7n6 zd+)VYb01`M#s<<>FF5e+<7~IMMQKDsaJm10Kfi4=^T|~e6>(8RG+x#HmPfDaj3{!w zfJN^O@&-oO>iKK+#w`?zCe&BwcFTuWVj1I)#K&ib29%S|uoxwzuLv$FQd2owjQ{ozTvz1=LEbk+!;m5FVkRmA#<7|*H~mP z7bKWC-}RYTv?&=UBDR4Rx#g>DAygx=xl5#sZ*c!y%n%PyH{sN@`Nm}A#OTPPT4&vHKJSqc z)m;?AI{~7um(AQzfrwVQQ*0pdvRArt2{P#qjaSwz=yu|L`QyyL05soKs~$=oVv@hk zPxT89@n3iG-v>T_Kl`6k+WxB_|L;_0l7{-U*8WEax6t&o$#=Cm^v_iHt#4ok`N_|q zm-GHxfhQRVB9Y~D%$rVs{Hmcl_|G+)(c-0Eq5f-Bp8Sg&@TB>52F|}c*8fSe-v3R@ z{&vQHtDp1V#)$v3u4;XkMI)}TmuK%lV<8Dh;I1J|mYc`fXK4E35) zKM&%2U3W-GJM<@Vh;#o#>X6fTlxGQUM&QAUz7_hjgsxzhODWT~J^-M(-~DpWFRtE# z1^{N#!>L~ZAnUTWbqxmSZZ|6w^TUs08~~=Mc_VJ!%#ing`v-Q)k>|F5{*h)at&OUndl#4bwR%WMD!2!>Qwn_cE^D4@_D34MH8HbJAyB)z<4Q{{)YoOkm%Fx}dr;cQ z?eCidvT=6W(XDqDBv)ZBI<5dSuJ87p3|Ss=k$jRwS@ufMspfeMK&F(yzE~*hsb|+H z^(v?~U+imNdiiJt{RlufTMb~c5=>)4-K`Aa zl;%|}Jr+}v*Pf|)uJlMJ%^TpB>s)KSbi-ClR46l@maAFSGfjLDfI1T6DkWcpKG0FZ zUu1uMEA$PIvFNP@Tl!qhm}e#ecDMEm!~#={w_gPhRLmGenco#-dBlDvBPHDxo~PZY ze6`#9)sKx!%THm7%pWnGvR!KN=LTA$e)C}{3x|*1v8U%3BUwH3!b7dUA@vYah#X-J!zzd0TVY97DXJ3F--`$5Cv zWz6C4xu!RC&xe<-EM>smU2dWCN>*=ry=KPNp@j511^PjBpo%d!9>Fu2Jim((Guz}; zGQ^D+%R9V^!K3ps1jW>1!*_%TpmbRDI_c@H7%3)RrgTy4xzx)XQ#g((H(q2maScAs z%iaVYSESg-_#998TA)|?P{*eB`JdjoOp1XN?a z3Fok!!%1+LhLxm|JA0W)H+a_H+A&TR)1l?4{1$Y=o#`o&k0fEr(;CRfn1f)hjcF zbJZi~KfET+z$ub8KuD|+K0lqK525PIC|WOr8raSd8PEhTGnTXWi=q!TDNTY zi9c4Yn`JT6>J<#H00q9G{OjvZ>5EE;@~?53luR17H|;iDYMmTzYI7~qt%UzX8b@AI z9owytk(O^5n{=~U5eC5oDD9Vk)OI9>30veBA+8DH0-6!plVGlr#mv`r zzXlMl*VOJ>;4BB91Qa8eR@bH9NSjpA_c?Y}6!6%v+X?qgdSTiA`ZluL8(}_|c)dUT zrCHULDCj7vio8Gt672GR*JyIxf_8r>pH}Sv)0EX5V^^$F0jHdpFf)&P$B>1cJ2zzr zZWd;ig>QV;YBxqzhP0VHT2JTgoVYQL=;a*|dhA&gLlL(()n6gokE4fKtBaWaaqLr7 za5Tp2*#VM-0SI?6rejshYr}xjm@dRV+6&poDDoS+>CbdvbiJ@_nuX=c&K9yi+ctPZ zB@_~qaczG|S7&IzdJYE==!pw796v|;p3z(v3j6|y1ok>N=1aN`mSgi;H}kJbq=RuQ zwVc(;@#B%6J+>h}Sa&j88kFAY!(9|hA@>0`6Je7V$MCcB#R=voHumvw6%u0XYL~m%FjtM^*`KzKSFPi>VywxREgwCFyHX{ciU#4 zyFrYN`Tesj!0qF?&?w;nfi#siO2of|#la|7m6iEJ&w>7Z`fzfwM~TG(oTcG#9!AK~ z$LV3Uzzx!~XKYmJv?DpctNulNU$^ID_+$V3b6{L{do8xAz1%yhGM9MpZu$>4)skI8 zobB>kPTUPZDH~jTd*17iwc6N>z_PN}h#acZHR7a^T^#Ia6BJ-){OAzKI)rrIlu>zH za6}$=dBA~=eU1pU|5InEp`XPV(x1xZE@7-EBqo?SW1QPR#;+=-TQa^!6ijst;uy1V ztJeMdw0$%Gl3rlCHMl;Tid*m8Txqadry;3HH`JzRYqbFPdLikmk5VA;%ZSlGDy8+;rf;Yohkq%K)GS*%yRCkRG|<(j!zB^@xmA?wTb^n+(BoxfN~M=jhPJ z6{lKWevW`H$zft+Tm28#UUuJaqA1g(;^=XqF2ayCW%kK8V}V9SKfKM(mv^e^>0-a; z=o~DMi^*I(w2|utCy{BOv)WzcXT-YDArB6yvAn-+T(igr9uOt>iH6>P<+_ zxa5VdP*!ap#8h>;_wj<#H?j!~tj+PrPeV(YAnvdAddP|PqXQTG)(n}G3j_tVKN+?n z!Or{MZW;%Z6K;PMbxP

i;F5@v_az2#Qf_%?Ylc)@ckd=;0+t8_hfBPW{Q35Iml> z55qi&KJouLkunob5=4u-7 zNe6Gr!Ss4(SJCzx^DDvM9mk`rug=ua&WPxBlbnB+Q> zE8!_KaEsM)dvY!w#Bm#BN}&XbZ^>0rX16G!&1vU@ae~{`$QFfyNsv?CWj9LrXTdI$ zl=|E3E15>6Mn*Y}cZY1P;Jj5#)KVwf$`Y(BH>K7KahxO1kH5|5hLuoK4_;KT?nkz8 zQ5D76#ef&9%fi6Pca8+#RH4 zy-)j5ncxsdBW+7zVo@usOkuDiq=aK8sRO@McX=N?)3yBSw46V_t@_@kc#GL&=xIqo zeNYX-K=7u0;2;BI9I9GPtn7d@K4i~77H-K^m(st`4FDsjQYhp7x>n=!7|SslWmkyW zD2tj5sP;TLDc~QWr^q?^-ex2U;wo|xcVYEtqNNpd*`b*6d zDfkY>3&q}hZGQHW?X)Jf=L1yLMGhDs*U$Sa7TI1*=zIsB#g&YEC9t2arSTS{B7Cp` zUbdV>LObFdy7lFIsY~uz|DQn)?GzxJ-B`ke!$6eBPWaIOOH{3iLrvcpc0tT5z~@xA zj_)%NR1d-9wU4pB|5b-&+bnxkDSpid-QXQ*^|kny+y~N2eK;IW!;&?Vku(d>Qeux=YrLx0B2Qc^zWiKfVJEek z6(!KL{zl@9()qU)|0@^$-)aSmLoUISVbP0&g`2C*R309l!UBCGBM#lxAL5bZ$a-~u zZtF`kkc^gwJ07MqG&Ce8CIY{sC%Cz}EtVSH4j1_{|7hKO3x7r!)IxrDdonaQI5-I? zST)XJ*pv~$teZAPt>qt zTtO^vQYVu{Pg1AGmJ4{lt*$xJ5>1b=Fd4palOAV)u?be?u`a`E(V;G|AY)WYsP8r~ zj#dr3%k&N$-Dhu@#8tDzK8>LjwhHS@nxHOyzx`vR&jI5bMw6m-skh92IK(KW`qQ~XMYk{v9{1< zGB*wmDM!$eoj&!g4G~%($1BZm7sm!;hkM?^g%`3D4*B%5gh$!XsSdI|q`#{vQF&rY z+K+UYl^CR+XXVL<8!Jy(_U^q2R4yJ0!NR^9Y;8g>FsFW_52EkdaU_vMf46tX^vTkx z-15#<2MbfJ%U$Ve-Ct5t9~T{631T!l`gBe839v$Zaz`8HpRiM9id~1k5Bg|c#cJik0JfkNYB^~XT z6e-ryTZ$gOQ+Vzraq+ScBv>Nwn{Qh_T{0fsQ|g@i``%ers@CfuH88lhb?-G?QP&AQ zFR_l`$p_+e+U8~}tJ7DDrJFZ?aj5rKttq(4{^P+9^Jk0q0fFXgzc?*xIqln6sQ0Ub zCBr>2t%YBzz~hSaYqusH8X1M7lBEzT_djD1_zmR80{zLJ;&a_5z^D-C|v@WCOw*aL19t$nrhaB%G_Fnnd% zIS9=bs3U3)v-0l_7umXTRLpu6@pOr1g(%1m4T|SL;J}2a0p{ByHVrx6T8i#__$}4O zvBY~H6y0?Av5m1B4_A(^*f`jlm;H7kaIP(TS^oT+BshfCbD|~gQa-PHWwuvv)c?OT1{teaz-3$2ia6NqN`V$+>rdgr?^TPTJmz>efzUs}O%EWUcJ@ zXT_HW4(DQqFe1%uJqJR`@v;VSwZexO1rk1cR_EhtrG~Fj*DXzcekN~Lst9?PCW(C! z5e^;Pf=3e{G$tEf`hF~}_*z)KQB8AdW)iQMQ13TOEq@8H$6=Z6~mKB2$l6n{Ji8YgMkjEN- zh!OsQ&V^Zn@n@UP!`Vk^@KhF6qCB+)N;i>6Qa;vq5%2~XcX;NVbeP_DDw0~j7wPbb zGY2oW*ldZ)fR*~0CW)mt6(z#9R#Z@NHN1=lJ0{^Jn!w4g9sn03-^|>&K_bbHP9}(- z^GP-^fxn1YB^8ygSR_xlybV!+^n4#g0iz7s)`pH%l4l+D@~Mdm(a{xKsb8HF^AY;J z<4xCxp4bcR##dMIo_K#f#5E^$b7DaPa1+$9Vu6d5Kv_;Sbhn2g!R>k_0&P3%_X%5f zUD6)!JSuV%?ck)!H=kT?LdTkNFC`XWF?@CIedRe|WBE)q4VCCSeCNoEYfsQYOBD5} zYiUULsTiHAY&`nYPp@tJg3j(Vem;O?h=`DZdPbvTY;?N7g6xv=_;g+9l3zw>-rJ2$ zgJW%-FG;)#u?c39v}k@XKfg;!1OgecCO|lP#{czeP3~`6f!0*epSm7D-U~}$U8X2f z)2SbJ&_d`f7=Y!k~X%yfGal z0v)@j74M>7+hSoq1b5hdt6AQr&`AuB>mM$%GIx+gVZ zbzseO;m*720oi&x<0kk1%tisLpH1$_hZKA`cNPtfYyQ+D>B4I*XK=d}Nl3c{E@X^t zRO&mA4#*^IUkTM*NM zqG$n)PfO_&+C55GcOa5D%*cI%9Op2N4z6SWW80?mUOPpxeGdFWvOmn<2{GcAopXRY zov?+Xm=LciB6JE&Dm6bHS5-V{pwN17{+zMD0w9VHDjKDSSdQLT-0bX}W^6Bppgc~w zhK2`QJ=|t@7@vsk+vCVJ7#BzU#|iuCPz+T+DEU7ZH=IglOdHZ6IlMT-?+*!Gu{9Wr zn)>QSn_3pXl;X#!`jIKTlLg6HW7lwRg=u%x-xQ2G@p5$JXvEjKE;w;r_l_u{%%2Jh z%<`3`W#H2vU-G8zG0WD3U2$99EZ#8ad;l%53c}6H7)&1qzVN~svV`HlabWt{IzcdS ze;|o)2{jK_kWGYtKK$zK6UH5U6^J)NU{+qEN9)!&Db3u~_#&L$J@iv-N)vXb9P2-k-i z#^Qi&#mHBpFK&(ykaADD9`ZDSB`Y}nkil)PijsYPZuY_rf;u@8#~m$HSsClMl-O#f zp)ptdj!@34Qhc!KEVcUPx4$HfenX+oC)6UxRa~8=+l-eAaSfN|g?yXNM(J~ahzk#^ z<40QXq~uv;yK_;Zc>AoonUEEswI&FR4)*anKqhX;pbaYJ-(#kmzA0@kfFmi^bWoIwD z_V|Q2cCB2!bg(9I`Y$`KIc*Yj#HBAbv^^0*qdVT)3G4IiE2CiI^lR>+1~{2bttS1{ znzj%Gk(Vg6T3qnVm;`te`z0by_q43Me0OVW1Z^lJ1cj$A4G*)Z@lIMdVry&s%(8Jy z3XDmZyp@PK$_}ao1lmeI)g_!LqEs$ihj;gK8*;w#e5&Mq^Kjpgz&##&Tvo`xtPNY; z4dpm|cyag9Jo2RP$m8pS!O5V9wkZWje(82&mj=8lJqcaui1s|GCB9e4BR6R}?OBvP zUB+q4>?$rk3z}5(+J3 z7)7lu;I?i}-2F5gXp=5+5tpify=c9+*wJgM!fML@OtY8Y8MN~AoVn=Y`1~CB8AbXY zBat;}sHQ*EMgL?s$jAr^ zH6_ar2??32wglKbx@d_a*!{z}P|?sF9oJo}of9eR{;Q6)wc=HI&*vsDaX;<7c>^fr z1uKJa6DXamuYAR=JuTU>2$8BwLbyY3vWe+9Kr11B z?P8%0_8?|M;=FP8cg8<3#E z7Hl*W$Yk<=s}tWmGsWXg#8qKws+by`rr1i@po7mAWQ$NxpAPdYve)Sun=y|mo%#ED z$=|ul;A!Eiox7{6pO&1gtjM2h0kOVaE7a|~lX01!e0vlvTG%JcS5Hcc5>YwfZa_^pv6WpBs zM02kNPjcx5yTiqXjg5^#8B_h6y}dnP3>l3_Gh0kz4bd{x2EX?Re}`}Lf+kJftyC+v zbL}F}?Co&KB<+_Z-tord5NQ?NnF|fQ-TH-obkHJ9X97Bon@IE>X|?*rd5D@GBoKFc zY^T<9T_yoWA@V@;IDQ%F$a6!1d$r52Re(B`5jc4$&U#g%w)zXd^n>k4B?{>Hcic## zqbD-cQj02a_0uI5chc;>UN2!RO!RoL_O3n@Eesfxc#A1@|F1s2qK+4zMG6iB%VeKr zOMKAu>%V=Ij<1pzySJc_5Z;jOW?>Exh0C(0khQTCn%7G->+6n=H>X}=qkUa{1p}>mnsBe5vjZ!KyWb!PhPoE&8>T{Ti zx;lRRa-^y{+Gl)xnMh1=U1rIHG6dRbW4RYYB z-WUP-03L;GDg0q_>gZlkVnPQ@@a^SlXj_RA<5MJ9sIqJ)tLFf|a%$-aLXKNS3lK2d zEbs=2;?YL2_D@DBv5oOtUp{}Kq^`!yKwZu1f$a-eiKbc2Kkn}T^hAuETC0dsuegE1 zNn203(8E8{%eGX=BIu^;%-5kZFF8|0B8}2U>gza9xrF@1GU55a31|rLQm0F5%ec5_ zgAHbkNogkrH{0pcG2~uZ67OP@AgK%&u+JHUzc5m2oOi<4p%oRblHDUeT3sY_ zNSIik-h5HGN%sUvv@<#KaXoDILoRCFgu-exIC>r2wA?cnf&06&z#A&*@&L z0w;*4(RUK?nN_upeYGlx&o5vT35}2b@q08bwODFz*DT8G-QmG&Ya7X) zDSVJQx&QI*FT#sG2pf{Mj&Y1+!=fz|P7wW>9P5STXlr^dr@*Xq6R&|zvQ;tfQi&8b zEX=B5C74~Wk$Nr(7rV1xyMV6kMNZ$F;XtS6Y3Y?NvRX}NgBaX@-yfq}l#-_Tn#H_O z53e>pI-=KnZa6+SK|e2*GObLwzY}kYtll;Ot`NI8W!%{_waIcLe;^K99XH9MmduR5 z73YY?!i-Sc-QvM>y!cAI6_VUXTbu?+G(WzY+jIqjUN$4~2EF|0v7GT70XemlB(6H5g1?77VGQ~|m^Z>7o0wo5H~*%)|8E1~Uu{R?wq`~^T4$QR)DFc_?F zU|?Wzak1BgkdUz2a;edN7iaVjBD7h|6Q%P@64a*PjK#b#wrV`8{`8L0j)@q83@A*NG;LOfP~GtvA|sq*OK< zq*taB`R7uREx8VLRzClPLeHEZ_8jhBWXoy_?o(K*E<#b`lR%G`f~-2?C$VZJ7R%q3 zFBg#qZ}%-GwwDSd0g|O;rS1%hDot)7etsJQMYRcVpVEsgXtX-2Wkb^Tan1dxkj}rb zG)TMxu{9BW_rw^Hx|*$k0;%rV&Wb3Cw{+Id$^A?P4K&5rjy2@x%mhU_n*hB(TW}>a zdNHpU{YIi$7unv7f-awVUYWZ6z0G5K0BicTywkbN z)`Fp{CUbe(GM7UeAG@rS&=kP(>gKUrE9NQjCjF(pQI%{s0d`q&$kmMThUf6v3iu%} zo52`x9SXcBARr2!k*xLa=&$}h*;dRTnGBdf(UX_^rsT2OholG z|MzT_IgGVf)iUSaNt*qYa%D_?saco7xu_u7%pL>iD34E&g83m{4!Gq#g&!Vv)c#$I zQSjsa%?N5%V)j4lzaBVQ{!~uU38GskL8P;MAazSBAd_%xAIylLWMoZ&*w`v^_pNG8Sa=4 zUaQVsXC=A1KtBVce|kx>U)P^`ZDL+E?|$(X9bLFn8FQxVd1#KUz-8Bcv-Z@7npo&z za`sS#@k77wge46H?%t`jah^`Y-ELdakWbzD7lars>MN2%6N(W&>mJkx!ZW8Pwiyv% zGDK1tYqMQj7Fu|PC*wJ`PUQ-!+_AX|xrE3Kq;3=+v%30A>oVysa#CGQwtVNOvqXNi z4>6**2^@?S#bm-~)^{kq;#udW&Z9iu?;O5+xb)+gNNXr1T@Pm4oye-4y}{-8Pk`d@ z2a_EZsFlxbUy7zF_+venBY9Yd@2?Ko8gl1q47uMm*}o~z#W=b{kjNv&<4&{d|!B)whhM3}~Ll&j)F zm#eBPqICuy{-Il>NY%5ei3#wyb>ZHI?o?`D8JlhpQhpicz**)#>O^lp!K!0zL^dza z1Ji&u>s91g^+!p!4X)$kF}nDjWt-Z9HPZ((bNs9M^$D=l(yA8(tA1fmr$=C73GYGh z5JPKs8OeTLhWK&rI6ji}lPL?Ba5)A;5 zqXhSx5uJqkX`{$a93CXMsAH4t#iiV?e}#mMD_AnT2knIUr_2ppnHtwCJYplzFtHWc zoT<`-6kb<0MCQDww>PTEK|s$V2=&7_SEe3EdH3K{8vis3e&k1K>;cILNZR;edGiqQ zG@Av{pxPyVcP5}b=`8CC#+h$<0@fHc;OI7%u^Tqy6jh&?% zsD5V-$PFa0zf1~v9X=GQ98G+$oaONA$Kkb@6PxrYdU++?cAX#}lywxp-^R*?nf2^0 zCTwa{LR;!k=rimFs;xgwWDONu%$pp>MtFO=!|$xK0>5(NwWLNL0S^tYRU3E)W#Fc- zZsHYjjrN4PK@lzG{i(W`+(oOW2oQK)s5yjWbxIoR>EXieQ%Dd z+r#1g=XVIrj5&l~xZG^MUoqvn80F73Xi{(_WoXS2G6zz;>owG~NQIS&Xj#!E^4EUZ z9A}W6^^emWzs{=nvS4KE_phts!7EyD;aojn12L@bC*l|8(>6NWz!ie%i>q>rYo$g* zG8-Ii?n%+lL?lgTg3nE*qV4P6Ks3o&+zKo6qvPpAu@yZU5)6r6--vVcPx#d?&fcx6 zOTMhVw{zM>ji<+qO{ycv+kKD%k5P10YMwv*&fyPDw0GAX^r)j^7|F~rlHIAsnL`04 z=G_E7^|8u7UWWly-^=0R zoFLA&x!&EK#~2+P70>4$6&E*@QLPzR?SwNZBr8Uz`(=)gcEqDvBVYi&nihSqJG^Hi zt?!*n3A@HZ&uacp$IE}3ejH9~6sau^$JDH{#DoVzSo zJyrv)t#v=B5H9X|d8gR^>gu#=8|5!T^|Ksu)q%f1B7RfBpmyJH^+Ql1T1=yj?W(GX zvWfgl!}Rh4KYoJO6THcJ;hBSU!0VHNvsp-z$8fN7Wa+25&Jso!yF%akbx%-)tj6qf~$YYghSS+RHqxmd#CGU2SY&f(}Ovt4*nH!QD z-2TKykwK;%bY~t^yYELcYk(MqiS7a!dR2APbw3=)xV>XbnV4rNKyWbY61SI^p!9lD zw=++l#avSuUiWXdPoYD$k$$aKRh47S=*2h_a^5?pz?-hpRc>7OGRM{~6|2(`u!Y{rbAX18twvjikpBWg;ouI>xOXVtFn&^2xbb zWAq6H6aNAyg99QS^07L5-6$}_6`B)X4Pi(0o#!!Gc29~vy%xW>Y!HxP$?e7yDr*-xea^y9x$7emCQm&fZI@*--JgqGU?JGJlE@dI0t`pwp4|KywwPeYM2_CPk7D2$>W$<&Hx6;V{vVQlu7J zP9xefSLH-4x6g+?;^YNySZ+E0>J>~zjLmj^%k+e7CdD>z5#y*QA*o*65j9jNnm8Z! zUE`*|hTeniy}gIrLVy!Jx)vu@EkWbJQl3FB%0JCMj4UMR@%vxiHQG{Fj=otDRNXjo=XKEeXM6E~3oNqW+X+{YKV%hf^6(md4Ol`ewGIlElaTj6(<<2fy|MLL zZ~m%@B)-*YsJf_nSV6F8ME-=J+G_m#_9rCjGYRHU16jE3Wuglj;qXPtQanD5q+wTY zN^}&D@j>*ZkH|0q8QT#bp4Tj@>WT2ShEgg{tE9g6=ChobfTu)ds>PuP=Q1gtaY+bU zn)5u3mi5?ZloA==#v87iunRm4-`(mUF2yT?LS`V+IZ6^ zO+^S!5-Uh=He%`82MynF@a}5gp7q3Nb4-_IdqD^jSUEjbA_#m&W`1vhXAVFEtQ{=z zJ?Y3dP8Zz57vZqJG~`+Ql4~c5)}Yx)fyqUR^p~kg^+b&><98XpkLB|u9JBjV7@NJ3 zY%*<+JDs`g$7^(^R6kDBW69Ov6}^n*;x|vd6rn@ZPY=WuKdmgCS~(`M)n;|-qpaJM zZcwOk1*Z;2Qa#!0y0BXv*iarnXNvhfZnW^jA3i6D7l5>qT+z^7V zmCsJU6iQ_x@vV?zy$GP*7ecV}u(!L3FV#VNyNsnoEtz2ZFs7HI!msvm-~gnzk-RPDx+yAnDcYQzzxKyKP^6CG5W7?XoN4R>M`viRDAdkF z_a4;}m&2RI_j93hbAgqYR!I=Z_CEwgP7^C}iTGoqIBhWFTRgQ2{`<5x!HZ9O%w+oGaKTlpaes~WtTwFSY zc~;|1b!S_1#xhJ+Ms9*LvR+?#E00cS1y}EJ&E=HJFTxG84Uy(*A3mtGux6m~nfuTX za;b>Awq-8tcOoA>eM(6M!L?RiPsDQ4{c@`#-ed31TkNPWI-w&@ox0eWFs>4gi!Tq7 zRDb{et*kwA@HJ8WJ~f-Q;W;xEK_YzmfrIDxUai`&;cUnoL4e%{v+8D5MRFD3YpxTo zVNq~JzeCIAgI`Btcw3&1p@0#_WWF%%&6=OFWON{-+1#r}Y-Z)VQeW4Ec0jeCeEAlw zGSL6UY;PG>CcUzs|7(9p9Z#``muzcCw<)iaPfKG*#b_yXj$f8#`#=U%HZCoxuRCoJ zy3c`HUE^C9QMS%sD`i6>Up8fR#$~`eXBAn~znBx7Y&PVoddGe;J$Ds3FAiz+Dm9cU zyNkFwC*qY>Vm~2)mC*@sNI3>rXOZi1GtS-oFt+8l4NzB|8#{!Fzk}62ODJFFU^r+q zc_=JgkU=o?MzCBINP$m@gmQ)u+cyOIcUwFnZg3qO90&=?y>14!x3)^k2?~a;s*U?_ zItd%|$wBrf9WZJN*`YjE3XqRVuPGLa>Q&kKqFZ3T(oJUQCxeQ_hs5EuCpmh(-tHYO|_K8WwmyZg5C%tgPS* zKPaZ+x@gO|3yutJI~4TJPpSZUCx~gKMp`GS%>!c%1bU|wl?flP-uIw9wTJOC==Loe z?_xr^+^kKn!X=iPI|?|gpZ?GkSIbK9d(gWaU&Y5iR%S!b!zQCTR2f9n;qRK=aQR|# z>GS)hmOwZwcn2jN#U6HR_F=?nEHT$&L<4lNxkqD62D*7ZQaazumxwwA^A}riVHZlW z6##|De{lRVix{JN)4z2E1`8;~R~?!)!}^#~2|iv}%m>dGy++wp+8p(-E4z~^y{CC~ zpk*P4^SGKaw*Q!2N9o{dXdT&72BZe&4qZADLe?tY@@Tm&zRB(fv~AGXD(z^G#)!6S ziEs7kq%!A^ZG}QZg~v*!ftBH{3`C&u$KGl|l2ns(4sdpe04$z2Uc8FqK%`Uo#`L}} z$=OTBP^FmufINMd5~ehzNxqe%lX7rcNA%-23-SF&awD7N7fnx7b{O~;+3-FAxvU5v zPqsf-4J6F=_Y3co7Dq;`fvS+GXxAr`Nd^Dsb@Cid_c!Bp{cTR8tL{Qz1)+yRaDZ5)qXVU-TMMciac z;ja&qjcDjPJts?}*Rd!Ztp7yRLVvBm>Q*+gu2$1xNixP#U*P3-r5c;fFn)aU;PA5{ zc+YccV4?qJLddKK$RqCTl>Lr)L>(7u^K5644HSs#ILHE7tgtMPPSwN+vJ;G6si|M& z=XRpQmIw2-ERf!2hej3ZXnOjF16AwY$wFXnk-uk3&G)NX`ksR?)Nv9XUMtm?d zM8Py{toy3^x)~_xqlt%I6{1Jlvlu20!2s^ZKm~!ELkaR6CC{*r5zHsUK?zo7bFur< zh=`J~xeFfj{_<@_Qlw7+zD&4BZSx!GeS6(zo4gMTEV!#;B2UG?Sr z8jySJ+Ga*2xk2_BPTrL;1h>hfe1YsS4G4dAEi$3MRk~8m*khHg@16#MsVK7B#Mabx-bC6F4XIt zW#hm%*(E5f@(?pXE-5&Qw1FEi>fqe1zo$CFsR0s22uc-Gy-&Gr9of4e@koUSx zq`?kOvd+gc1MOD|hZ6+=ZaqwtV^jFZ$(~dyb~8~?b9c0LS}V-^&bHuBHRK5+C=Muy zvAkCX@D>F0B*GR^x+-7d{bGN-T)6G)z@ zllQ0 zDf8sVDAiW_U~2s&c7b&V&q_fH_;O>0TmF)5pA<0pmqFmQf!?2HA#mmbtHWQsPO%gJ z{%`YV)Xv_wQWj?5h~~&Rw@-M}o8;DyTq!zBpr}=TQ?K;*uJEXkG73J@;xY;xb=dHu zQ^B2~9QqLC9PlJl+JJ3>qZ93) zeV3n{zUKb-9$)`oqnH1;fW-e5Uv0PtfU<#&tLhpKZ+|^+IDtBT>E>S<;^R~tsD2jRwh5~(X!_tK@f(Q3V&8H`D z-N)Zz5s)aRM50MHnFFYknR6DS9|}^`v!kY9e+%{l5>;$`+zs&{HwtA15i@Pr1Rx`Kif+cjX25>Y=fdmXcM3X|KA)eM-mwz9+`&$F3vAyR z-4(NoULIef?f5-(F?2FqavR)E%A7nats{g55)B`A5g+ee&*@A=kbK<``aOL@@1+XTB;&as)DK-u}G7p~#C9DNY|2CbQQO)$-oHvs6xwJ*=nR6=Di4$gM zE*ZdqK{&;3#vu+Z$ZE?YJdFh`YEW93_2g{qhGs0b@@Pb~YXo*m=C^29ZY@>ue`s(u z?%xNg_DZsGY%}Rt#`;coCc`QRF1X=Z=6j?UTr3m71N2_O zTRXi*y-s6U5c#mX^@ih+=%2Qqcp!0isUHP^DED%-avG8~;(qNk?y`1W^~$bo)|x7f z&D9ExT`!_F^4=?jZ0~LBqZYDUuFe--lHI>Ww--m9&+$X7Kc~OGyA+yd0_$sQaV#sH zo3MwUjwc&p*8E;SDlTIwsx07l=rh$PHov`E5+EM-0lW@6kWnI6K$9~US1$BsEAPdF~fowlirkd8zv}83>-#9%SRK-e0K7&K@%b}PNA>+B@ zYpfLN^$g*bw((vYjTJE=5bWOU!ZlfrNPYjW2a;)yZ{9%0p8EM&^t>LDYnHf2N}sJ; zJGl7FrR=tD$-E zXGHP49QS_qpzEQbsV@7W`e0?>)C#Ym{~qYr*M$ii!j8w)EL@Y&duid%(~cExa#yLi z4bd8B_n)hacp^OJIeLwifekCctb?XDv9~;RK}!**AAP5|>wFL{Z2cy|QfN{K5p&=W zGSEvNho>A?j>80i4NYos#@MU3=&Jm7$vzKg?J@rzJ)8mm9AV$mYAT~ZThHic(JlXw zy7l`xHaeotB!dN=OaRZII9(s2mAq189cbBnXqDJohOpP?9How^h!cRxlJxaPY#%aw z4O|wL^z)OM!jKau@h(c5&;4AwG*O4zxu7oYtQ48=<;Tf?=c>s!X?=L(lU?VaU>HK2 zk5e+=a8n$jBaI*Q?q>HnifKw2)a)I){T=74n_a%KKhRYw+?b8xl`sIUIv%H*M7(cU zBVwW0-N=28anL#H`p}z8SCIpNHNm8qN4;KadW{>K&%}Wc-`ldp+sA1VLs;8DOuga2 zUU#LlleJBYv2ToR?wQjoOK<5~E$gy4_hkE!RR>{otaC!Zc=LbK487y3UYqKmn6e<= zA$Ks{i<#=YpKbYq2&0}mTX-lrNV;1Lv8_H?G9_9YM?){H<@r=%;rUHW?&4%8{gcJH zP>FgpHelHk{>d?Le1s>>Kj9=ayoCvMuKQ~{1qEXpD!RV-s}^mq+e%EPachi}X0&VR zX=wAvb_vs<1)m%&3^g}y-s~*8uBW>j?{2Re)yif46Y1Yg^`6ANg}G;Ya(EFk^D@9E zrbnA)Am-T|L2)jx5wh8ZmZZ`B^>(YoK&TYcExe#4Q+b`$@k-*}Zs7Inec|!*kCXM4 zqDJ@dm5{OdZ|^U5*Sijo+P~Y&#_Ai@a?helV@mO?EEeR|<~XvR5fQ9f zRj*nqkvciY4Hg?iHF= z2jHv!!%x6SeQVOGKYLWF;(l$6lXLq{^kF5M2l=~XNX=|(japlMKF5K;B>t`aDw}@L z$~A)dp`M$k7ADj3FgFOMFYSx&%k<7RknEv`A+1zHn;_%sIFYB^okQ8DDbuzz1$`Xn z;5?J9aR#T>L6r$L7G6uwr`_NufS6fYI6g&J$6lC#vIwA!|5#27SK}Fn?B3F z$=~zVSIdDi-d0stwh+0{Q$28jDt0Glbz+*(gDA$ z{^_EWuH;CezS?_vF&xigh~zw91DJ$5Y^6V0va(XN+=L65szzoEZEWdf29E*u<_L`9Nb2_Y37fPd4qGL@gE(#$F;ZaO{|8yb3b*hQ;EOl~g z#rfV|o8m!$IGkM^h}rd|p)(yygv!sAQf-9NN$26$+@RNpA3zen#3?!Xk})2kxHe2W z3cnVFGz3R?c6l#)PkLN?RAf`#$w(6JUU|7VlYhY)9=xhJP2xZwNsWJCh?fPgxq;8# zEU>z?H7yRNfADZuWPivkVmQ+1ki4umBWXMrZabs@p5yhq_(H`)#uP;Ussfy}o_iNr#f

4iCIz*Q2%ar6)l!`2gNy8W;J2Q5b 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 literal 0 HcmV?d00001 diff --git a/cloud-demo/services/pom.xml b/cloud-demo/services/pom.xml index 500b4bc..5ebf59a 100644 --- a/cloud-demo/services/pom.xml +++ b/cloud-demo/services/pom.xml @@ -64,6 +64,10 @@ com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + org.springframework.cloud spring-cloud-starter-openfeign diff --git a/cloud-demo/services/service-order/src/main/java/cn/bunny/service/OrderServiceApplication.java b/cloud-demo/services/service-order/src/main/java/cn/bunny/service/OrderServiceApplication.java index 19e7969..8d2d02e 100644 --- a/cloud-demo/services/service-order/src/main/java/cn/bunny/service/OrderServiceApplication.java +++ b/cloud-demo/services/service-order/src/main/java/cn/bunny/service/OrderServiceApplication.java @@ -3,9 +3,11 @@ package cn.bunny.service; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.context.config.annotation.RefreshScope; @SpringBootApplication @EnableDiscoveryClient +@RefreshScope public class OrderServiceApplication { public static void main(String[] args) { SpringApplication.run(OrderServiceApplication.class, args); diff --git a/cloud-demo/services/service-order/src/main/java/cn/bunny/service/controller/OrderController.java b/cloud-demo/services/service-order/src/main/java/cn/bunny/service/controller/OrderController.java index 12f02ab..d268ae2 100644 --- a/cloud-demo/services/service-order/src/main/java/cn/bunny/service/controller/OrderController.java +++ b/cloud-demo/services/service-order/src/main/java/cn/bunny/service/controller/OrderController.java @@ -4,6 +4,7 @@ import cn.bunny.model.order.bean.Order; import cn.bunny.service.service.OrderService; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -15,9 +16,21 @@ public class OrderController { private final OrderService orderService; + @Value("${order.timeout}") + private String timeout; + + @Value("${order.auto-confirm}") + private String autoConfirm; + @Operation(summary = "创建订单") @GetMapping("create") public Order createOrder(Long userId, Long productId) { return orderService.createOrder(productId, userId); } + + @Operation(summary = "读取配置") + @GetMapping("config") + public String config() { + return "timeout:" + timeout + "\nautoConfirm:" + autoConfirm; + } } diff --git a/cloud-demo/services/service-order/src/main/resources/application-dev.yaml b/cloud-demo/services/service-order/src/main/resources/application-dev.yaml index d0b170d..8ba16c0 100644 --- a/cloud-demo/services/service-order/src/main/resources/application-dev.yaml +++ b/cloud-demo/services/service-order/src/main/resources/application-dev.yaml @@ -1,6 +1,3 @@ server: port: 8000 - -nacos: - server-addr: 192.168.95.135:8848 diff --git a/cloud-demo/services/service-order/src/main/resources/application.yaml b/cloud-demo/services/service-order/src/main/resources/application.yaml index 2715228..f560f55 100644 --- a/cloud-demo/services/service-order/src/main/resources/application.yaml +++ b/cloud-demo/services/service-order/src/main/resources/application.yaml @@ -5,6 +5,12 @@ spring: name: service-order profiles: active: dev + config: + import: + - nacos:service-order.yml cloud: nacos: - server-addr: ${nacos.server-addr} + server-addr: 192.168.95.135:8848 + config: + import-check: + enabled: false \ No newline at end of file diff --git a/cloud-demo/services/service-product/src/main/java/cn/bunny/service/ProductServiceApplication.java b/cloud-demo/services/service-product/src/main/java/cn/bunny/service/ProductServiceApplication.java index ef092ea..38dc31e 100644 --- a/cloud-demo/services/service-product/src/main/java/cn/bunny/service/ProductServiceApplication.java +++ b/cloud-demo/services/service-product/src/main/java/cn/bunny/service/ProductServiceApplication.java @@ -3,9 +3,11 @@ package cn.bunny.service; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.context.config.annotation.RefreshScope; @SpringBootApplication @EnableDiscoveryClient +@RefreshScope public class ProductServiceApplication { public static void main(String[] args) { SpringApplication.run(ProductServiceApplication.class, args); diff --git a/cloud-demo/services/service-product/src/main/resources/application.yaml b/cloud-demo/services/service-product/src/main/resources/application.yaml index b858b01..478cea8 100644 --- a/cloud-demo/services/service-product/src/main/resources/application.yaml +++ b/cloud-demo/services/service-product/src/main/resources/application.yaml @@ -5,6 +5,10 @@ spring: name: service-product profiles: active: dev + cloud: nacos: server-addr: ${nacos.server-addr} + config: + import-check: + enabled: false