




已閱讀5頁,還剩74頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
每特教育&螞蟻課堂版權(quán)所有 余老師QQ644064779 官方網(wǎng)址:每特教育互聯(lián)網(wǎng)微服務(wù)電商項目課程安排課程內(nèi)容會員登陸模塊優(yōu)化與門戶平臺整合1.使用注解方式實現(xiàn)參數(shù)驗證2.Redis刪除Token與數(shù)據(jù)庫狀態(tài)Token如何保持一致3.創(chuàng)建門戶Portal-Web整合Ftl4.Portal-Web調(diào)用會員服務(wù)接口實現(xiàn)注冊相關(guān)說明該項目“基于SpringCloud2.x構(gòu)建微服務(wù)電商項目”由每特教育|螞蟻課堂版權(quán)所有,未經(jīng)過允許的情況下,私自分享視頻和源碼屬于違法行為。該項目作者:97后互聯(lián)網(wǎng)架構(gòu)師-余勝軍相關(guān)網(wǎng)址:聯(lián)系方式:微信yushengjun644、QQ644064779該想項目是采用目前比較流行的SpringBoot/SpringCloud構(gòu)建微服務(wù)電商項目,實現(xiàn)一套串聯(lián)的微服務(wù)電商項目,能完全掌握該知識,可以在一線城市拿到月薪25+k薪資。完全符合一線城市微服務(wù)電商的需求,對中國程序猿學習微服務(wù)電商架構(gòu),有非常大的幫助,該項目涵蓋從微服務(wù)電商需求討論、數(shù)據(jù)庫設(shè)計、技術(shù)選型、互聯(lián)網(wǎng)安全架構(gòu)、整合SpringCloud各自組件、分布式基礎(chǔ)設(shè)施、使Docker+k8s+jenkins實現(xiàn)微服務(wù)自動化部署、項目上線域名配置、SEO優(yōu)化、大數(shù)據(jù)統(tǒng)計分析等。注意:該項目會在2019年4月份左右上線GitHub和碼云等開源網(wǎng)站平臺。如需參加培訓,可以加余老師QQ644064779學習時間學習周期大概四個月時間,每周 2 4 6 晚上20:30-22:30,一個半小時編碼課、半個小時面試題輔導(dǎo)。2019年01月03日本周四,開始干我們微服務(wù)電商結(jié)業(yè)項目啦!希望同學們,堅持哦!需求討論與技術(shù)架構(gòu)選型技術(shù)選型A. 項目采用SpringBoot2.x+SpringCloud2.x構(gòu)建微服務(wù)電商項目1.使用SpringCloudEureka作為注冊中心,實現(xiàn)服務(wù)治理2.使用Zuul網(wǎng)關(guān)框架管理服務(wù)請求入口3.使用Ribbon實現(xiàn)本地負載均衡器和FeginHttp客戶端調(diào)用工具4.使用Hystrix服務(wù)保護框架(服務(wù)降級、隔離、熔斷、限流)5.使用消息總線Stream RabbitMQ和Kafka6.微服務(wù)API接口安全控制與單點登陸系統(tǒng)CAS+JWT+Oauth2.0B. 分布式基礎(chǔ)設(shè)施環(huán)境構(gòu)建1.分布式任務(wù)調(diào)度平臺XXL-Job2.分布式日志采集系統(tǒng)ELK +kafka3.分布式事務(wù)解決方案LCN 4.分布式鎖解決方案Zookeeper、Redis5.分布式配置中心攜程阿波羅 6.高并發(fā)分布式全局ID生成雪花算法7.分布式Session框架Spring-Session8.分布式服務(wù)追蹤與調(diào)用鏈ZipKin C.項目運營與部署環(huán)境1.分布式設(shè)施環(huán)境,統(tǒng)一采用docker安裝2.使用jenkins+docker+k8s實現(xiàn)自動部署 3.微服務(wù)API管理ApiSwagger4.使用GitLab代碼管理 5.統(tǒng)一采用第三方云數(shù)據(jù)庫6.使用七牛云服務(wù)器對靜態(tài)資源實現(xiàn)加速7.構(gòu)建企業(yè)級Maven私服課程安排第一節(jié)需求討論與技術(shù)架構(gòu)選型第二節(jié)微服務(wù)架構(gòu)環(huán)境搭建Maven私服倉庫、GitLiab代碼倉庫第三節(jié)構(gòu)建微服務(wù)電商項目與數(shù)據(jù)庫實戰(zhàn)設(shè)計第四節(jié)分布式基礎(chǔ)設(shè)施之分布式配置中心環(huán)境搭建第五節(jié)微服務(wù)電商項目-會員服務(wù)-聯(lián)合登陸第六節(jié)微服務(wù)電商項目-會員服務(wù)-唯一登陸第七節(jié)微服務(wù)電商項目-會員服務(wù)-SSO聯(lián)合登陸第八節(jié)微服務(wù)電商項目-微服務(wù)公眾號-構(gòu)建微信公眾號第九節(jié)微服務(wù)電商項目-消息服務(wù)平臺-消息服務(wù)平臺第十節(jié)微服務(wù)電商項目-前端技術(shù)-VUE第十一節(jié)微服務(wù)電商項目-商品服務(wù)-數(shù)據(jù)設(shè)計第十二節(jié)微服務(wù)電商項目-商品服務(wù)-搜索服務(wù)第十三節(jié)微服務(wù)電商項目-商品服務(wù)-購物車設(shè)計第十四節(jié)微服務(wù)電商項目-訂單服務(wù)-訂單服務(wù)第十五節(jié)微服務(wù)電商項目-聚合支付-數(shù)據(jù)設(shè)計第十六節(jié)微服務(wù)電商項目-聚合支付-銀聯(lián)支付第十七節(jié)微服務(wù)電商項目-聚合支付-支付寶支付第十八節(jié)微服務(wù)電商項目-秒殺服務(wù)-秒殺搶購第十九節(jié)微服務(wù)電商項目-后臺運營平臺設(shè)計第二十節(jié)微服務(wù)電商項目ELK日志分析第二十一節(jié)微服務(wù)電商項目安全架構(gòu)第二十二節(jié)微服務(wù)電商項目靜態(tài)資源CDN加速第二十三節(jié)使用jenkins+docker+k8s實現(xiàn)自動部署 第二十四節(jié)微服務(wù)電商項目上線部署環(huán)境第二十五節(jié)微服務(wù)電商項目大數(shù)據(jù)用戶行為分析最終以實際課程表格為準。環(huán)境要求為了能夠更好的學習互聯(lián)網(wǎng)微服務(wù)架構(gòu),該項目對環(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.開發(fā)工具IDE或者Eclipse系統(tǒng)架構(gòu)每特教育獨創(chuàng)電商項目完全采用微服務(wù)架構(gòu)模式,如果對微服務(wù)架構(gòu)概念還是不夠理解的話,可以參考SpringCloud2.x課程。詳細參考架構(gòu)文檔:構(gòu)建項目meite-shop-parent-公共Pranet接口-meite-shop-basics-分布式基礎(chǔ)設(shè)施-meite-shop-basics-springcloud-eureka注冊中心 8080-meite-shop-basics-apollo-config-server阿波羅分布式配置中心-meite-shop-basics-springcloud-zuul統(tǒng)一請求入口 80-meite-shop-basics-xuxueli-xxljob分布式任務(wù)調(diào)度平臺-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會員服務(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聚合支付平臺- meite-shop-service-api-order訂單服務(wù)接口- meite-shop-service-api-spike 秒殺服務(wù)接口服務(wù)接口中包含內(nèi)存內(nèi)容: 實體類層、接口層 -meite-shop-service-impl公共接口的實現(xiàn)- meite-shop-service-weixin 微信服務(wù)接口實現(xiàn)- meite-shop-service-member會員服務(wù)接口實現(xiàn)- meite-shop-service-api-sso sso服務(wù)接口實現(xiàn)- meite-shop-service-tem商品服務(wù)接口實現(xiàn)- meite-shop-service-search 搜索服務(wù)接口實現(xiàn)- meite-shop-service-pay聚合支付平臺接口實現(xiàn)- meite-shop-service-order訂單服務(wù)接口實現(xiàn)- meite-shop-service-api-spike 秒殺服務(wù)接口-meite-shop-common 工具類-meite-shop-common-core核心工具類-meite-shop-portal 門戶平臺-meite-shop-portal-web 門戶網(wǎng)站 支持PC端和H5端訪問-meite-shop-portal-sso 單點登陸系統(tǒng) -meite-shop-portal-search 搜索系統(tǒng)-meite-shop-portal-spike 秒殺系統(tǒng)-meite-shop-portal-cms 系統(tǒng) 后期有新的功能在加。預(yù)計40個項目如果項目需要被其他項目繼承的話,那么該項目選擇maven類型為pom類型版本說明SpringCloud2.x以上版本注意事項1. 統(tǒng)一采用GetMapping或者PostMapping實現(xiàn)接口映射環(huán)境構(gòu)建步驟創(chuà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)建微信、會員服務(wù)接口2. 創(chuàng)建meite-shop-service-api-member3. 創(chuàng)建meite-shop-service-api-weixin步驟創(chuàng)建微信、會員服務(wù)接口實現(xiàn)maven類型選擇為Jar類型1.創(chuàng)建meite-shop-service-member1.創(chuàng)建meite-shop-service-weixin分布式基礎(chǔ)設(shè)施環(huán)境環(huán)境準備基于Docker部署GitLab環(huán)境搭建建議虛擬機內(nèi)存2G以上1.下載鏡像文件docker pull beginor/gitlab-ce:11.0.1-ce.0注意:一定要配置阿里云的加速鏡像2. 創(chuàng)建GitLab 的配置 (etc) 、 日志 (log) 、數(shù)據(jù) (data) 放到容器之外, 便于日后升級, 因此請先準備這三個目錄。mkdir -p /mnt/gitlab/etcmkdir -p /mnt/gitlab/logmkdir -p /mnt/gitlab/data3. 運行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改成部署機器的域名或者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的值改成映射的外部主機ip地址和端口,這里會顯示在gitlab克隆地址到此為止,gitlab的web管理頁面就可以正常訪問修改默認root賬戶密碼Yushengjun644GitLab創(chuàng)建項目Eclipse提交項目1. 項目初始化選擇Git創(chuàng)建存儲庫提交代碼新增用戶權(quán)限1. 注冊用戶mayikt 密碼yushengjun644 授權(quán)Git代碼地址2. 設(shè)置中找到成員,添加項目權(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ù)電商項目-微信服務(wù)接口 description: 該項目“基于SpringCloud2.x構(gòu)建微服務(wù)電商項目”由每特教育|螞蟻課堂版權(quán)所有,未經(jīng)過允許的情況下,私自分享視頻和源碼屬于違法行為。 version: 1.1 terms-of-service-url: contact: name: 97后互聯(lián)網(wǎng)架構(gòu)師-余勝軍 email: 644064779EnableSwagger2Doc 開啟Swagger生成文件meite-shop-service-api-weixin配置文件新增#swagger相關(guān)配置swagger: base-package: com.mayikt.weixin.service title: SpringCloud2.x構(gòu)建微服務(wù)電商項目-微信服務(wù)接口 description: 該項目“基于SpringCloud2.x構(gòu)建微服務(wù)電商項目”由每特教育|螞蟻課堂版權(quán)所有,未經(jīng)過允許的情況下,私自分享視頻和源碼屬于違法行為。 version: 1.1 terms-of-service-url: contact: name: 97后互聯(lián)網(wǎng)架構(gòu)師-余勝軍 email: 644064779EnableSwagger2Doc 開啟Swagger生成文件:8300/swagger-ui.html:8200/swagger-ui.html使用微服務(wù)網(wǎng)關(guān)統(tǒng)一管理Api創(chuà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);/ 添加文檔來源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ù)啟動端口號server: port: 80#服務(wù)名稱(服務(wù)注冊到eureka名稱) spring: application: name: app-mayikt-zuul#服務(wù)注冊到eureka地址eureka: client: service-url: defaultZone: http:/localhost:8100/eureka# 配置網(wǎng)關(guān)反向代理 zuul: routes: api-a: # 以 /api-weixin/訪問轉(zhuǎn)發(fā)到會員服務(wù) path: /api-weixin/* serviceId: app-mayikt-weixin api-b: # 以 /api-member/訪問轉(zhuǎn)發(fā)到訂單服務(wù) path: /api-member/* serviceId: app-mayikt-memberMaven私服環(huán)境搭建1.一些無法從外部倉庫下載的構(gòu)件,例如內(nèi)部的項目還能部署到私服上,以便供其他依賴項目使用。2. 為了節(jié)省帶寬和時間,在局域網(wǎng)內(nèi)架設(shè)一個私有的倉庫服務(wù)器,用其代理所有外部的遠程倉庫。當本地Maven項目需要下載構(gòu)件時,先去私服請求,如果私服沒有,則再去遠程倉庫請求,從遠程倉庫下載構(gòu)件后,把構(gòu)件緩存在私服上。這樣,及時暫時沒有Internet鏈接,由于私服已經(jīng)緩存了大量構(gòu)件,整個項目還是可以正常使用的。同時,也降低了中央倉庫的負荷。什么場景用Maven私服呢?在實際開發(fā)中,項目中可能會用到第三方的jar、內(nèi)部通訊的服務(wù)接口都會打入到公司的私服中?;贒ocker搭建Maven私服1. 下載一個nexus3的鏡像docker pull sonatype/nexus32. 將容器內(nèi)部/var/nexus-data掛載到主機/root/nexus-data目錄。docker run -d -p 8081:8081 -name nexus -v /root/nexus-data:/var/nexus-data -restart=always sonatype/nexus3關(guān)閉防火墻,訪問http:/ip:8081 Maven私服啟動容器稍微比較慢,等待1分鐘即可。默認登陸賬號 admin admin123創(chuàng)建Maven私服倉庫創(chuàng)建私服倉庫創(chuàng)建倉庫,點擊Create repository,然后選擇maven2(hosted)然后輸入倉庫名稱(test-release)。在version policy中選擇這個倉庫的類型,這里選擇release,在Deployment policy中選擇Allow redeploy(這個很重要).創(chuàng)建私服賬號點擊左側(cè)菜單欄的Users菜單,然后點擊Create local user.我這里創(chuàng)建了一個用戶,賬號密碼都是:mayikt Mayikt-release本地settings.xml mayikt mayikt mayikt 創(chuàng)建一個Maven工程創(chuàng)建一個maven工程,并且打包到maven私服。相關(guān)配置 mayikt30:8081/repository/mayikt-release/org.apache.maven.pluginsmaven-deploy-plugin2.7org.apache.maven.pluginsmaven-source-plugin2.2.1packagejarmvn deploy測試依賴信息com.mayiktmayikt_springboot0.0.1-RELEASEmayikt33:8081/repository/mayikt-release/如何判斷文件是否發(fā)生改變 如何知道一個文件是否改變了呢?當然是用比較文件hash值的方法,文件hash又叫文件簽名,文件中哪怕一個bit位被改變了,文件hash就會不同。比較常用的文件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ù)配置文件,可以實現(xiàn)動態(tài)化刷新配置文件。阿波羅 SpringCloudConfig為什么我們要使用阿波羅 不使用SpringCloudConfig阿波羅配置文件存放在數(shù)據(jù)庫中,SpringCloudConfig存放在Git里面。搭建分布式配置中心阿波羅1. 下載aploll配置中心 /nobodyiam/apollo-build-scripts 2. 上傳apollo-build-scripts-master文件到服務(wù)器中3. unzip apollo-build-scripts-master.zip 解壓配置文件如果沒有unzip命令的話,安裝zip插件 yum -y install zip unzip4. 配置數(shù)據(jù)策略修改demo.sh賬號::10010 root Ww861642669+5. 啟動阿波羅 ./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 默認賬號密碼 Apollo admin服務(wù)客戶端集成配置文件1.將本地配置存入到阿波羅平臺中。轉(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.項目啟動開啟阿波羅配置文件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);/ 添加文檔來源ComponentPrimaryclass DocumentationConfig implements SwaggerResourcesProvider Overridepublic List get() / 開啟監(jiān)聽,配置文件發(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ù)別名獲取遠程服務(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 項目啟動監(jiān)聽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)聽# + changeEvent.changedKeys().toString(););搭建企業(yè)級微信公眾號微信公眾平臺:/cgi-bin/home?t=home/index&lang=zh_CN&token=795093844微信公眾號測試平臺/debug/cgi-bin/sandbox?t=sandbox/login微信公眾平臺密碼 mayikt_2019163.com.微信公眾平臺環(huán)境搭建/wiki?t=resource/res_main&id=mp1421135319畫圖演示原理外網(wǎng)映射工具Natapp網(wǎng)址ngrok/windows環(huán)境運行運行 natapp -authtoken=a021a8fe913ea048http:/mtmayikt.natapp1.cc/wx/portal/wx5c43fde3c9733d9eWxJava框架快速開發(fā)微信公眾號WxJava 微信公眾號框架 /Wechat-Group/WxJava微服務(wù)電商項目引入WxJava框架錯誤方式: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 #(一個公眾號的appid) secret: cf2b0b4908a84d92b38b939a6fbabe09#(公眾號的appsecret) token: mayikt #(接口配置里的Token值)mayikt: weixin: registration: code: #微信注冊碼消息 message: 您的注冊碼為:%s,請關(guān)注騰訊課堂免費公開課,歡迎觀看97后架構(gòu)師余老師的精品課程講解。官方QQ群:193086273,期待你的加入,感謝! #默認提示消息 default: registration: code: message: 您的消息,我們已經(jīng)收到,會及時回復(fù)給您的!微信公眾號開發(fā)案例案例1關(guān)注微信公眾號,在公眾號輸入手機號碼,對應(yīng)返回驗證碼。Componentpublic class MsgHandler extends AbstractHandler / 用戶發(fā)送手機驗證碼提示Value($mayikt.weixin.registration.code.message)private String registrationCodeMessage;/ 默認用戶發(fā)送驗證碼提示Value($mayikt.weixin.default.registration.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年河南推拿職業(yè)學院單招職業(yè)適應(yīng)性測試題庫附答案
- 2025年度新型法院執(zhí)行和解協(xié)議書編制指南
- 2025年度農(nóng)村房屋拆遷與鄉(xiāng)村振興項目合作協(xié)議
- 2025年度養(yǎng)老服務(wù)機構(gòu)單位解除勞動合同及養(yǎng)老服務(wù)協(xié)議
- 2025年度合資企業(yè)股權(quán)分配與合作協(xié)議
- 2025年度工地施工期間施工進度與費用控制協(xié)議
- 液態(tài)粘合劑槽罐車運輸范本
- 智能家居別墅設(shè)計合同樣本
- 2025年度人工智能智能家居產(chǎn)品合作合同解除協(xié)議書
- 2025年度個人消費債權(quán)轉(zhuǎn)讓及分期還款協(xié)議
- 《2023版CSCO鼻咽癌診療指南》解讀課件
- 主題班會:小學生交通安全教育
- 自然科學基金項目申報書(模板)
- 文學類文本閱讀(語言賞析類)-2025年北京高考語文一輪總復(fù)習(解析版)
- 2024年政工職稱考試題庫(含答案)
- 香港(2024年-2025年小學二年級語文)部編版綜合練習試卷(含答案)
- 專題18 圓的相關(guān)性質(zhì)及計算證明(34題)2024年中考數(shù)學真題分類匯編(解析版)
- 2024羽毛球教案36課時
- 1.1區(qū)域及其類型-課件
- 小學生衛(wèi)生知識健康教育精課件
- 小學生課程表模板可編輯78
評論
0/150
提交評論