




已閱讀5頁(yè),還剩74頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
每特教育&螞蟻課堂版權(quán)所有 余老師QQ644064779 官方網(wǎng)址:每特教育互聯(lián)網(wǎng)微服務(wù)電商項(xiàng)目課程安排課程內(nèi)容會(huì)員登陸模塊優(yōu)化與門戶平臺(tái)整合1.使用注解方式實(shí)現(xiàn)參數(shù)驗(yàn)證2.Redis刪除Token與數(shù)據(jù)庫(kù)狀態(tài)Token如何保持一致3.創(chuàng)建門戶Portal-Web整合Ftl4.Portal-Web調(diào)用會(huì)員服務(wù)接口實(shí)現(xiàn)注冊(cè)相關(guān)說(shuō)明該項(xiàng)目“基于SpringCloud2.x構(gòu)建微服務(wù)電商項(xiàng)目”由每特教育|螞蟻課堂版權(quán)所有,未經(jīng)過(guò)允許的情況下,私自分享視頻和源碼屬于違法行為。該項(xiàng)目作者:97后互聯(lián)網(wǎng)架構(gòu)師-余勝軍相關(guān)網(wǎng)址:聯(lián)系方式:微信yushengjun644、QQ644064779該想項(xiàng)目是采用目前比較流行的SpringBoot/SpringCloud構(gòu)建微服務(wù)電商項(xiàng)目,實(shí)現(xiàn)一套串聯(lián)的微服務(wù)電商項(xiàng)目,能完全掌握該知識(shí),可以在一線城市拿到月薪25+k薪資。完全符合一線城市微服務(wù)電商的需求,對(duì)中國(guó)程序猿學(xué)習(xí)微服務(wù)電商架構(gòu),有非常大的幫助,該項(xiàng)目涵蓋從微服務(wù)電商需求討論、數(shù)據(jù)庫(kù)設(shè)計(jì)、技術(shù)選型、互聯(lián)網(wǎng)安全架構(gòu)、整合SpringCloud各自組件、分布式基礎(chǔ)設(shè)施、使Docker+k8s+jenkins實(shí)現(xiàn)微服務(wù)自動(dòng)化部署、項(xiàng)目上線域名配置、SEO優(yōu)化、大數(shù)據(jù)統(tǒng)計(jì)分析等。注意:該項(xiàng)目會(huì)在2019年4月份左右上線GitHub和碼云等開(kāi)源網(wǎng)站平臺(tái)。如需參加培訓(xùn),可以加余老師QQ644064779學(xué)習(xí)時(shí)間學(xué)習(xí)周期大概四個(gè)月時(shí)間,每周 2 4 6 晚上20:30-22:30,一個(gè)半小時(shí)編碼課、半個(gè)小時(shí)面試題輔導(dǎo)。2019年01月03日本周四,開(kāi)始干我們微服務(wù)電商結(jié)業(yè)項(xiàng)目啦!希望同學(xué)們,堅(jiān)持哦!需求討論與技術(shù)架構(gòu)選型技術(shù)選型A. 項(xiàng)目采用SpringBoot2.x+SpringCloud2.x構(gòu)建微服務(wù)電商項(xiàng)目1.使用SpringCloudEureka作為注冊(cè)中心,實(shí)現(xiàn)服務(wù)治理2.使用Zuul網(wǎng)關(guān)框架管理服務(wù)請(qǐng)求入口3.使用Ribbon實(shí)現(xiàn)本地負(fù)載均衡器和FeginHttp客戶端調(diào)用工具4.使用Hystrix服務(wù)保護(hù)框架(服務(wù)降級(jí)、隔離、熔斷、限流)5.使用消息總線Stream RabbitMQ和Kafka6.微服務(wù)API接口安全控制與單點(diǎn)登陸系統(tǒng)CAS+JWT+Oauth2.0B. 分布式基礎(chǔ)設(shè)施環(huán)境構(gòu)建1.分布式任務(wù)調(diào)度平臺(tái)XXL-Job2.分布式日志采集系統(tǒng)ELK +kafka3.分布式事務(wù)解決方案LCN 4.分布式鎖解決方案Zookeeper、Redis5.分布式配置中心攜程阿波羅 6.高并發(fā)分布式全局ID生成雪花算法7.分布式Session框架Spring-Session8.分布式服務(wù)追蹤與調(diào)用鏈ZipKin C.項(xiàng)目運(yùn)營(yíng)與部署環(huán)境1.分布式設(shè)施環(huán)境,統(tǒng)一采用docker安裝2.使用jenkins+docker+k8s實(shí)現(xiàn)自動(dòng)部署 3.微服務(wù)API管理ApiSwagger4.使用GitLab代碼管理 5.統(tǒng)一采用第三方云數(shù)據(jù)庫(kù)6.使用七牛云服務(wù)器對(duì)靜態(tài)資源實(shí)現(xiàn)加速7.構(gòu)建企業(yè)級(jí)Maven私服課程安排第一節(jié)需求討論與技術(shù)架構(gòu)選型第二節(jié)微服務(wù)架構(gòu)環(huán)境搭建Maven私服倉(cāng)庫(kù)、GitLiab代碼倉(cāng)庫(kù)第三節(jié)構(gòu)建微服務(wù)電商項(xiàng)目與數(shù)據(jù)庫(kù)實(shí)戰(zhàn)設(shè)計(jì)第四節(jié)分布式基礎(chǔ)設(shè)施之分布式配置中心環(huán)境搭建第五節(jié)微服務(wù)電商項(xiàng)目-會(huì)員服務(wù)-聯(lián)合登陸第六節(jié)微服務(wù)電商項(xiàng)目-會(huì)員服務(wù)-唯一登陸第七節(jié)微服務(wù)電商項(xiàng)目-會(huì)員服務(wù)-SSO聯(lián)合登陸第八節(jié)微服務(wù)電商項(xiàng)目-微服務(wù)公眾號(hào)-構(gòu)建微信公眾號(hào)第九節(jié)微服務(wù)電商項(xiàng)目-消息服務(wù)平臺(tái)-消息服務(wù)平臺(tái)第十節(jié)微服務(wù)電商項(xiàng)目-前端技術(shù)-VUE第十一節(jié)微服務(wù)電商項(xiàng)目-商品服務(wù)-數(shù)據(jù)設(shè)計(jì)第十二節(jié)微服務(wù)電商項(xiàng)目-商品服務(wù)-搜索服務(wù)第十三節(jié)微服務(wù)電商項(xiàng)目-商品服務(wù)-購(gòu)物車設(shè)計(jì)第十四節(jié)微服務(wù)電商項(xiàng)目-訂單服務(wù)-訂單服務(wù)第十五節(jié)微服務(wù)電商項(xiàng)目-聚合支付-數(shù)據(jù)設(shè)計(jì)第十六節(jié)微服務(wù)電商項(xiàng)目-聚合支付-銀聯(lián)支付第十七節(jié)微服務(wù)電商項(xiàng)目-聚合支付-支付寶支付第十八節(jié)微服務(wù)電商項(xiàng)目-秒殺服務(wù)-秒殺搶購(gòu)第十九節(jié)微服務(wù)電商項(xiàng)目-后臺(tái)運(yùn)營(yíng)平臺(tái)設(shè)計(jì)第二十節(jié)微服務(wù)電商項(xiàng)目ELK日志分析第二十一節(jié)微服務(wù)電商項(xiàng)目安全架構(gòu)第二十二節(jié)微服務(wù)電商項(xiàng)目靜態(tài)資源CDN加速第二十三節(jié)使用jenkins+docker+k8s實(shí)現(xiàn)自動(dòng)部署 第二十四節(jié)微服務(wù)電商項(xiàng)目上線部署環(huán)境第二十五節(jié)微服務(wù)電商項(xiàng)目大數(shù)據(jù)用戶行為分析最終以實(shí)際課程表格為準(zhǔn)。環(huán)境要求為了能夠更好的學(xué)習(xí)互聯(lián)網(wǎng)微服務(wù)架構(gòu),該項(xiàng)目對(duì)環(huán)境要求非常高,建議電腦配置CPU在I5、32GB內(nèi)存或者電腦采用集群化部署。1.JDK統(tǒng)一要求:JDK1.8K 2.Maven 統(tǒng)一管理Jar3.統(tǒng)一采用Docker安裝軟件4.編碼統(tǒng)一采用為UTF-85.開(kāi)發(fā)工具IDE或者Eclipse系統(tǒng)架構(gòu)每特教育獨(dú)創(chuàng)電商項(xiàng)目完全采用微服務(wù)架構(gòu)模式,如果對(duì)微服務(wù)架構(gòu)概念還是不夠理解的話,可以參考SpringCloud2.x課程。詳細(xì)參考架構(gòu)文檔:構(gòu)建項(xiàng)目meite-shop-parent-公共Pranet接口-meite-shop-basics-分布式基礎(chǔ)設(shè)施-meite-shop-basics-springcloud-eureka注冊(cè)中心 8080-meite-shop-basics-apollo-config-server阿波羅分布式配置中心-meite-shop-basics-springcloud-zuul統(tǒng)一請(qǐng)求入口 80-meite-shop-basics-xuxueli-xxljob分布式任務(wù)調(diào)度平臺(tái)-meite-shop-basics-codingapi-lcn分布式事務(wù)解決框架-meite-shop-basics-codingapi- ZipKin 分布式調(diào)用鏈系統(tǒng)-meite-shop-service-api提供公共接口- meite-shop-service-api-weixin 微信服務(wù)接口- meite-shop-service-api-member會(huì)員服務(wù)接口- meite-shop-service-api-sso sso服務(wù)接口- meite-shop-service-api-item商品服務(wù)接口- meite-shop-service-api-search 搜索服務(wù)接口- meite-shop-service-api-pay聚合支付平臺(tái)- meite-shop-service-api-order訂單服務(wù)接口- meite-shop-service-api-spike 秒殺服務(wù)接口服務(wù)接口中包含內(nèi)存內(nèi)容: 實(shí)體類層、接口層 -meite-shop-service-impl公共接口的實(shí)現(xiàn)- meite-shop-service-weixin 微信服務(wù)接口實(shí)現(xiàn)- meite-shop-service-member會(huì)員服務(wù)接口實(shí)現(xiàn)- meite-shop-service-api-sso sso服務(wù)接口實(shí)現(xiàn)- meite-shop-service-tem商品服務(wù)接口實(shí)現(xiàn)- meite-shop-service-search 搜索服務(wù)接口實(shí)現(xiàn)- meite-shop-service-pay聚合支付平臺(tái)接口實(shí)現(xiàn)- meite-shop-service-order訂單服務(wù)接口實(shí)現(xiàn)- meite-shop-service-api-spike 秒殺服務(wù)接口-meite-shop-common 工具類-meite-shop-common-core核心工具類-meite-shop-portal 門戶平臺(tái)-meite-shop-portal-web 門戶網(wǎng)站 支持PC端和H5端訪問(wèn)-meite-shop-portal-sso 單點(diǎn)登陸系統(tǒng) -meite-shop-portal-search 搜索系統(tǒng)-meite-shop-portal-spike 秒殺系統(tǒng)-meite-shop-portal-cms 系統(tǒng) 后期有新的功能在加。預(yù)計(jì)40個(gè)項(xiàng)目如果項(xiàng)目需要被其他項(xiàng)目繼承的話,那么該項(xiàng)目選擇maven類型為pom類型版本說(shuō)明SpringCloud2.x以上版本注意事項(xiàng)1. 統(tǒng)一采用GetMapping或者PostMapping實(shí)現(xiàn)接口映射環(huán)境構(gòu)建步驟創(chuàng)建以下項(xiàng)目,maven類型選擇為Pom類型1. 創(chuàng)建meite-shop-parent2. 創(chuàng)建meite-shop-basics3. 創(chuàng)建meite-shop-portal4. 創(chuàng)建meite-shop-service5. 創(chuàng)建meite-shop-service-api步驟分布式基礎(chǔ)設(shè)施eureka1. 創(chuàng)建meite-shop-basics-springcloud-eureka步驟創(chuàng)建微信、會(huì)員服務(wù)接口2. 創(chuàng)建meite-shop-service-api-member3. 創(chuàng)建meite-shop-service-api-weixin步驟創(chuàng)建微信、會(huì)員服務(wù)接口實(shí)現(xiàn)maven類型選擇為Jar類型1.創(chuàng)建meite-shop-service-member1.創(chuàng)建meite-shop-service-weixin分布式基礎(chǔ)設(shè)施環(huán)境環(huán)境準(zhǔn)備基于Docker部署GitLab環(huán)境搭建建議虛擬機(jī)內(nèi)存2G以上1.下載鏡像文件docker pull beginor/gitlab-ce:11.0.1-ce.0注意:一定要配置阿里云的加速鏡像2. 創(chuàng)建GitLab 的配置 (etc) 、 日志 (log) 、數(shù)據(jù) (data) 放到容器之外, 便于日后升級(jí), 因此請(qǐng)先準(zhǔn)備這三個(gè)目錄。mkdir -p /mnt/gitlab/etcmkdir -p /mnt/gitlab/logmkdir -p /mnt/gitlab/data3. 運(yùn)行GitLab容器docker run -detach -publish 8443:443 -publish 8090:80 -name gitlab -restart unless-stopped -v /mnt/gitlab/etc:/etc/gitlab -v /mnt/gitlab/log:/var/log/gitlab -v /mnt/gitlab/data:/var/opt/gitlab beginor/gitlab-ce:11.0.1-ce.0 停止docker容器,并且刪除Docker stop 容器idDocker rm 容器idsystemctl stop firewalld4.修改/mnt/gitlab/etc/gitlab.rb把external_url改成部署機(jī)器的域名或者IP地址vi /mnt/gitlab/etc/gitlab.rbexternal_url 274. 修改/mnt/gitlab/data/gitlab-rails/etc/gitlab.ymlvi /mnt/gitlab/data/gitlab-rails/etc/gitlab.yml找到關(guān)鍵字 * # Web server settings * 將host的值改成映射的外部主機(jī)ip地址和端口,這里會(huì)顯示在gitlab克隆地址到此為止,gitlab的web管理頁(yè)面就可以正常訪問(wèn)修改默認(rèn)root賬戶密碼Yushengjun644GitLab創(chuàng)建項(xiàng)目Eclipse提交項(xiàng)目1. 項(xiàng)目初始化選擇Git創(chuàng)建存儲(chǔ)庫(kù)提交代碼新增用戶權(quán)限1. 注冊(cè)用戶mayikt 密碼yushengjun644 授權(quán)Git代碼地址2. 設(shè)置中找到成員,添加項(xiàng)目權(quán)限即可SwaggerApi管理meite-shop-service-api引入Maven依賴com.spring4allswagger-spring-boot-starter1.7.0.RELEASEmeite-shop-service-member配置文件新增#swagger相關(guān)配置swagger: base-package: com.mayikt.member.service title: SpringCloud2.x構(gòu)建微服務(wù)電商項(xiàng)目-微信服務(wù)接口 description: 該項(xiàng)目“基于SpringCloud2.x構(gòu)建微服務(wù)電商項(xiàng)目”由每特教育|螞蟻課堂版權(quán)所有,未經(jīng)過(guò)允許的情況下,私自分享視頻和源碼屬于違法行為。 version: 1.1 terms-of-service-url: contact: name: 97后互聯(lián)網(wǎng)架構(gòu)師-余勝軍 email: 644064779EnableSwagger2Doc 開(kāi)啟Swagger生成文件meite-shop-service-api-weixin配置文件新增#swagger相關(guān)配置swagger: base-package: com.mayikt.weixin.service title: SpringCloud2.x構(gòu)建微服務(wù)電商項(xiàng)目-微信服務(wù)接口 description: 該項(xiàng)目“基于SpringCloud2.x構(gòu)建微服務(wù)電商項(xiàng)目”由每特教育|螞蟻課堂版權(quán)所有,未經(jīng)過(guò)允許的情況下,私自分享視頻和源碼屬于違法行為。 version: 1.1 terms-of-service-url: contact: name: 97后互聯(lián)網(wǎng)架構(gòu)師-余勝軍 email: 644064779EnableSwagger2Doc 開(kāi)啟Swagger生成文件:8300/swagger-ui.html:8200/swagger-ui.html使用微服務(wù)網(wǎng)關(guān)統(tǒng)一管理Api創(chuàng)建項(xiàng)目meite-shop-basics-springcloud-zuulMaven依賴org.springframework.cloudspring-cloud-starter-netflix-zuulcom.spring4allswagger-spring-boot-starter1.7.0.RELEASE統(tǒng)一管理API代碼SpringBootApplicationEnableEurekaClientEnableZuulProxyEnableSwagger2Docpublic class AppGateWay public static void main(String args) SpringApplication.run(AppGateWay.class, args);/ 添加文檔來(lái)源ComponentPrimaryclass DocumentationConfig implements SwaggerResourcesProvider Overridepublic List get() List resources = new ArrayList();/ app-itmayiedu-orderresources.add(swaggerResource(app-mayikt-member, /app-mayikt-member/v2/api-docs, 2.0);resources.add(swaggerResource(app-mayikt-weixin, /app-mayikt-weixin/v2/api-docs, 2.0);return resources;private SwaggerResource swaggerResource(String name, String location, String version) SwaggerResource swaggerResource = new SwaggerResource();swaggerResource.setName(name);swaggerResource.setLocation(location);swaggerResource.setSwaggerVersion(version);return swaggerResource;相關(guān)配置#服務(wù)啟動(dòng)端口號(hào)server: port: 80#服務(wù)名稱(服務(wù)注冊(cè)到eureka名稱) spring: application: name: app-mayikt-zuul#服務(wù)注冊(cè)到eureka地址eureka: client: service-url: defaultZone: http:/localhost:8100/eureka# 配置網(wǎng)關(guān)反向代理 zuul: routes: api-a: # 以 /api-weixin/訪問(wèn)轉(zhuǎn)發(fā)到會(huì)員服務(wù) path: /api-weixin/* serviceId: app-mayikt-weixin api-b: # 以 /api-member/訪問(wèn)轉(zhuǎn)發(fā)到訂單服務(wù) path: /api-member/* serviceId: app-mayikt-memberMaven私服環(huán)境搭建1.一些無(wú)法從外部倉(cāng)庫(kù)下載的構(gòu)件,例如內(nèi)部的項(xiàng)目還能部署到私服上,以便供其他依賴項(xiàng)目使用。2. 為了節(jié)省帶寬和時(shí)間,在局域網(wǎng)內(nèi)架設(shè)一個(gè)私有的倉(cāng)庫(kù)服務(wù)器,用其代理所有外部的遠(yuǎn)程倉(cāng)庫(kù)。當(dāng)本地Maven項(xiàng)目需要下載構(gòu)件時(shí),先去私服請(qǐng)求,如果私服沒(méi)有,則再去遠(yuǎn)程倉(cāng)庫(kù)請(qǐng)求,從遠(yuǎn)程倉(cāng)庫(kù)下載構(gòu)件后,把構(gòu)件緩存在私服上。這樣,及時(shí)暫時(shí)沒(méi)有Internet鏈接,由于私服已經(jīng)緩存了大量構(gòu)件,整個(gè)項(xiàng)目還是可以正常使用的。同時(shí),也降低了中央倉(cāng)庫(kù)的負(fù)荷。什么場(chǎng)景用Maven私服呢?在實(shí)際開(kāi)發(fā)中,項(xiàng)目中可能會(huì)用到第三方的jar、內(nèi)部通訊的服務(wù)接口都會(huì)打入到公司的私服中?;贒ocker搭建Maven私服1. 下載一個(gè)nexus3的鏡像docker pull sonatype/nexus32. 將容器內(nèi)部/var/nexus-data掛載到主機(jī)/root/nexus-data目錄。docker run -d -p 8081:8081 -name nexus -v /root/nexus-data:/var/nexus-data -restart=always sonatype/nexus3關(guān)閉防火墻,訪問(wèn)http:/ip:8081 Maven私服啟動(dòng)容器稍微比較慢,等待1分鐘即可。默認(rèn)登陸賬號(hào) admin admin123創(chuàng)建Maven私服倉(cāng)庫(kù)創(chuàng)建私服倉(cāng)庫(kù)創(chuàng)建倉(cāng)庫(kù),點(diǎn)擊Create repository,然后選擇maven2(hosted)然后輸入倉(cāng)庫(kù)名稱(test-release)。在version policy中選擇這個(gè)倉(cāng)庫(kù)的類型,這里選擇release,在Deployment policy中選擇Allow redeploy(這個(gè)很重要).創(chuàng)建私服賬號(hào)點(diǎn)擊左側(cè)菜單欄的Users菜單,然后點(diǎn)擊Create local user.我這里創(chuàng)建了一個(gè)用戶,賬號(hào)密碼都是:mayikt Mayikt-release本地settings.xml mayikt mayikt mayikt 創(chuàng)建一個(gè)Maven工程創(chuàng)建一個(gè)maven工程,并且打包到maven私服。相關(guān)配置 mayikt30:8081/repository/mayikt-release/org.apache.maven.pluginsmaven-deploy-plugin2.7org.apache.maven.pluginsmaven-source-plugin2.2.1packagejarmvn deploy測(cè)試依賴信息com.mayiktmayikt_springboot0.0.1-RELEASEmayikt33:8081/repository/mayikt-release/如何判斷文件是否發(fā)生改變 如何知道一個(gè)文件是否改變了呢?當(dāng)然是用比較文件hash值的方法,文件hash又叫文件簽名,文件中哪怕一個(gè)bit位被改變了,文件hash就會(huì)不同。比較常用的文件hash算法有MD5和SHA-1。發(fā)布微服務(wù)接口Non-resolvable parent POM: Could not find artifact com.mayikt:meite-shop-service-api:pom:0.0.1-RELEASE in central (/maven2) and parent.relativePath pointscom.mayiktmeite-shop-service-api0.0.1-SNAPSHOT構(gòu)建分布式配置中心阿波羅為什么要使用配置文件中心? 為什么要使用分布式配置中心? 統(tǒng)一管理微服務(wù)配置文件,可以實(shí)現(xiàn)動(dòng)態(tài)化刷新配置文件。阿波羅 SpringCloudConfig為什么我們要使用阿波羅 不使用SpringCloudConfig阿波羅配置文件存放在數(shù)據(jù)庫(kù)中,SpringCloudConfig存放在Git里面。搭建分布式配置中心阿波羅1. 下載aploll配置中心 /nobodyiam/apollo-build-scripts 2. 上傳apollo-build-scripts-master文件到服務(wù)器中3. unzip apollo-build-scripts-master.zip 解壓配置文件如果沒(méi)有unzip命令的話,安裝zip插件 yum -y install zip unzip4. 配置數(shù)據(jù)策略修改demo.sh賬號(hào)::10010 root Ww861642669+5. 啟動(dòng)阿波羅 ./demo.sh start/ctripcorp/apollo/wiki/Apollo%E9%85%8D%E7%BD%AE%E4%B8%AD%E5%BF%83%E4%BB%8B%E7%BB%8Dsystemctl stop firewalld.service 默認(rèn)賬號(hào)密碼 Apollo admin服務(wù)客戶端集成配置文件1.將本地配置存入到阿波羅平臺(tái)中。轉(zhuǎn)換工具/index.html2.引入Maven依賴com.ctrip.framework.apolloapollo-client1.0.0com.ctrip.framework.apolloapollo-core1.0.0 3.創(chuàng)建 pertiesapp.id=mayikt644064779apollo.meta=36:80804.項(xiàng)目啟動(dòng)開(kāi)啟阿波羅配置文件EnableApolloConfig5.修改/opt/settings/perties(Mac/Linux)或C:perties(Windows)文件,設(shè)置env為DEV:env=DEV網(wǎng)關(guān)服務(wù)集成阿波羅SpringBootApplicationEnableEurekaClientEnableZuulProxyEnableSwagger2DocEnableApolloConfigpublic class AppGateWay / 獲取ApolloConfigApolloConfigprivate Config appConfig;public static void main(String args) SpringApplication.run(AppGateWay.class, args);/ 添加文檔來(lái)源ComponentPrimaryclass DocumentationConfig implements SwaggerResourcesProvider Overridepublic List get() / 開(kāi)啟監(jiān)聽(tīng),配置文件發(fā)生改變需要更改appConfig.addChangeListener(new ConfigChangeListener() Overridepublic void onChange(ConfigChangeEvent changeEvent) get(););return resources();/* * 從阿波羅服務(wù)器中獲取resources * * return */private List resources() List resources = new ArrayList();/ app-itmayiedu-order/ 網(wǎng)關(guān)使用服務(wù)別名獲取遠(yuǎn)程服務(wù)的SwaggerApiString swaggerDocJson = swaggerDocument();JSONArray jsonArray = JSONArray.parseArray(swaggerDocJson);for (Object object : jsonArray) JSONObject jsonObject = (JSONObject) object;String name = jsonObject.getString(name);String location = jsonObject.getString(location);String version = jsonObject.getString(version);resources.add(swaggerResource(name, location, version);return resources;/* * 獲取swaggerDocument配置 * * return */private String swaggerDocument() String property = appConfig.getProperty(mayikt.zuul.swaggerDocument, );return property;private SwaggerResource swaggerResource(String name, String location, String version) SwaggerResource swaggerResource = new SwaggerResource();swaggerResource.setName(name);swaggerResource.setLocation(location);swaggerResource.setSwaggerVersion(version);return swaggerResource;自定義Swagger文檔配置mayikt.zuul.swaggerDocument name: app-mayikt-member, location: /app-mayikt-member/v2/api-docs, version: 2.0 , name: app-mayikt-weixin, location: /app-mayikt-weixin/v2/api-docs, version: 2.0 項(xiàng)目啟動(dòng)監(jiān)聽(tīng)ComponentSlf4jpublic class MyCommandLineRunner implements CommandLineRunner ApolloConfigprivate Config config;Overridepublic void run(String. args) throws Exception config.addChangeListener(new ConfigChangeListener() Overridepublic void onChange(ConfigChangeEvent changeEvent) log.debug(#分布式配置中心監(jiān)聽(tīng)# + changeEvent.changedKeys().toString(););搭建企業(yè)級(jí)微信公眾號(hào)微信公眾平臺(tái):/cgi-bin/home?t=home/index&lang=zh_CN&token=795093844微信公眾號(hào)測(cè)試平臺(tái)/debug/cgi-bin/sandbox?t=sandbox/login微信公眾平臺(tái)密碼 mayikt_2019163.com.微信公眾平臺(tái)環(huán)境搭建/wiki?t=resource/res_main&id=mp1421135319畫圖演示原理外網(wǎng)映射工具Natapp網(wǎng)址ngrok/windows環(huán)境運(yùn)行運(yùn)行 natapp -authtoken=a021a8fe913ea048http:/mtmayikt.natapp1.cc/wx/portal/wx5c43fde3c9733d9eWxJava框架快速開(kāi)發(fā)微信公眾號(hào)WxJava 微信公眾號(hào)框架 /Wechat-Group/WxJava微服務(wù)電商項(xiàng)目引入WxJava框架錯(cuò)誤方式:com.github.binarywangweixin-java-mp3.3.0java.lang.NoSuchMethodError: com.thoughtworks.xstream.io.xml.XppDriver.(Lcom/thoughtworks/xstream/io/naming/NameCoder;)原因是微信框架引入了xstream的版本為1.4.1 而springCloud中eureka-client也引入了xstream為了1.4.9從而版本有沖突。正確方式:com.github.binarywangweixin-java-mp3.3.0xstreamcom.thoughtworks.xstreamorg.springframework.cloudspring-cloud-starter-netflix-eureka-clientxstreamcom.thoughtworks.xstreamxstreamcom.thoughtworks.xstream1.4.10yml配置logging: level: org.springframework.web: INFO com.github.binarywang.demo.wx.mp: DEBUG me.chanjar.weixin: DEBUGwx: mp: configs: - appId: wx6f8ce0ccadf3afff #(一個(gè)公眾號(hào)的appid) secret: cf2b0b4908a84d92b38b939a6fbabe09#(公眾號(hào)的appsecret) token: mayikt #(接口配置里的Token值)mayikt: weixin: registration: code: #微信注冊(cè)碼消息 message: 您的注冊(cè)碼為:%s,請(qǐng)關(guān)注騰訊課堂免費(fèi)公開(kāi)課,歡迎觀看97后架構(gòu)師余老師的精品課程講解。官方QQ群:193086273,期待你的加入,感謝! #默認(rèn)提示消息 default: registration: code: message: 您的消息,我們已經(jīng)收到,會(huì)及時(shí)回復(fù)給您的!微信公眾號(hào)開(kāi)發(fā)案例案例1關(guān)注微信公眾號(hào),在公眾號(hào)輸入手機(jī)號(hào)碼,對(duì)應(yīng)返回驗(yàn)證碼。Componentpublic class MsgHandler extends AbstractHandler / 用戶發(fā)送手機(jī)驗(yàn)證碼提示Value($mayikt.weixin.registration.code.message)private String registrationCodeMessage;/ 默認(rèn)用戶發(fā)送驗(yàn)證碼提示Value($mayikt.weixin.default.registration.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學(xué)生暑期“三下鄉(xiāng)”社會(huì)實(shí)踐總結(jié)模版
- 組態(tài)軟件技術(shù)整體教學(xué)設(shè)計(jì)-張松枝
- 糖原累積病Ⅵ型的臨床護(hù)理
- 小米3小米電視發(fā)布會(huì)
- 廣西南寧市第四十九中學(xué)2025屆數(shù)學(xué)七下期末綜合測(cè)試模擬試題含解析
- 統(tǒng)編版語(yǔ)文一年級(jí)上冊(cè)1秋天 課件
- 醫(yī)學(xué)生模擬談話技能培訓(xùn)大綱
- 2025年秋學(xué)期初二家長(zhǎng)會(huì)班主任發(fā)言稿模版
- 2025年民辦學(xué)校審工作總結(jié)模版
- 狂犬病醫(yī)學(xué)發(fā)展史
- 2024年12月大學(xué)英語(yǔ)四級(jí)考試真題及答案第1套
- 學(xué)術(shù)期刊數(shù)字化轉(zhuǎn)型-深度研究
- 臺(tái)安N2變頻器說(shuō)明書
- 《環(huán)境設(shè)計(jì)工程計(jì)量與計(jì)價(jià)》課件-1.什么是裝飾工程預(yù)算
- 浙江寧波鎮(zhèn)海區(qū)2025屆中考生物對(duì)點(diǎn)突破模擬試卷含解析
- 設(shè)備維保管理制度
- 光伏發(fā)電工程施工方案
- 2025屆八省聯(lián)考語(yǔ)文試卷評(píng)析及備考策略 課件
- 二手奢侈品交易免責(zé)聲明
- 2025年湖北交投集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 合伙購(gòu)買無(wú)人機(jī)設(shè)備協(xié)議書
評(píng)論
0/150
提交評(píng)論