现在微信小程序越来越流行了。相信很多人都研究过微信小程序,或者尝试过通过各种渠道开发。笔者本来对微信小程序的了解和开发很感兴趣,所以现在用这个博客来记录自己之前的一些经历和经验。
这些基础的东西我就不多介绍了。大家通常在开发之初都没有自己的服务器和域名,所以在本地写的时候,在“详细信息”下的“项目设置”中勾选“不检查域名安全”。
至于微信小程序的组件,也就是前端页面的开发,希望大家耐得住寂寞,认真对待微信开发平台。
组件:
https://developers.weixin.qq.com/miniprogram/dev/component/
api:
https://developers.weixin.qq.com/miniprogram/dev/api/
我在后端写的主要是Java。当然,熟悉其他开发语言的人也可以使用其他语言来开发后端。现在我来解释一下如何用java写后端api。主要框架是springboot,开发工具myeclipse和服务器阿里云服务器。
创建一个maven项目并导入相关的依赖项:
Pom.xml依赖项
& lt!-统一版本控制-& gt; & lt;parent & gt & lt;groupId & gtorg。Springframework.boot & lt/groupId & gt; & lt;artifactId & gt弹簧-启动-启动-父母& lt/artifact id & gt; & lt;版本& gt发布& lt/version & gt; & lt;/parent & gt; & lt;依赖关系& gt & lt;!- freemarker渲染页面-& gt; & lt;!-https://mvnrepository . com/artifact/org . spring framework . boot/spring-boot-starter-freemarker-& gt; & lt;依赖性& gt & lt;groupId & gtorg . spring framework . boot & lt;/groupId & gt; & lt;artifactId & gt弹簧靴起动器freemarker & lt/artifact id & gt; & lt;/dependency & gt; & lt;!-弹簧靴芯-& gt; & lt;依赖性& gt & lt;groupId & gtorg . spring framework . boot & lt;/groupId & gt; & lt;artifactId & gtspring-boot-starter-web & lt;/artifact id & gt; & lt;/dependency & gt; & lt;!- springboot集成JSP-& gt; & lt;!- tomcat支持。-& gt; & lt;依赖性& gt & lt;groupId & gtorg . spring framework . boot & lt;/groupId & gt; & lt;artifactId & gtspring-boot-starter-web & lt;/artifact id & gt; & lt;排除事项& gt & lt;排除& gt & lt;groupId & gtorg . spring framework . boot & lt;/groupId & gt; & lt;artifactId & gt弹簧-启动-启动-Tomcat & lt;/artifact id & gt; & lt;/exclusion & gt; & lt;/exclusions>。 & lt;/dependency & gt; & lt;依赖性& gt & lt;groupId & gtorg . Apache . Tomcat . embed & lt;/groupId & gt; & lt;artifactId & gtTomcat-embed-jasper & lt;/artifact id & gt; & lt;/dependency & gt; & lt;/dependencies & gt;在配置文件src/main/resources/下创建application.properties文件可以修改一些配置参数等等。
#jsp支持 Spring.mvc.view.suffix =。JSP spring . MVC . view . prefix =/we b-INF/JSP/ # This is setport # server . port = 80 # Add SSL证书文件名 server . SSL . key-store = class path:xxxxxxxx . pfx server . key-store-password = xxxxxxxxxxxxxxx server . SSL . key store type = xxxxxxxxxxxxxxxx
首先创建springboot的入口程序:粘贴app.class下面的代码:
@ components can(base packages = & # 34;com.bin & # 34)//添加扫描包@ components can(base packages = & # 34;") @ enable auto configuration public class app { //启动Spring Boot public static void main(string[]args){ Spring application . run(app . class,args) } }启动项目时右键直接运行。
为微信小程序写一个测试控制器,与java后端通信。控制器代码如下:
@ rest controller @ spring boot application public class controller text { @ request mapping(& # 34;getUser & # 34) 公图& lt字符串,对象& gtgetUser(){ system . out . println(& # 34;微信小程序正在调用。。。"); Map & lt;字符串,对象& gtmap = new HashMap & lt字符串,对象& gt(); List & lt;字符串& gtlist = new ArrayList & lt字符串& gt(); list . add(& # 34;张三& # 34;); list . add(& # 34;李四& # 34;); list . add(& # 34;王二& # 34;); list . add(& # 34;马子& # 34;); map . put(& # 34;列表& # 34;,列表); system . out . println(& # 34;微信小程序调用完成。。。"); 返回图; } @ request mapping(& # 34;getWord & # 34) 公图& lt字符串,对象& gtgetText(String word){ Map & lt;字符串,对象& gtmap = new HashMap & lt字符串,对象& gt(); String message = & # 34;我能力有限,不要为难我& # 34;; if(& # 34;后来& # 34;。equals(word)){ message = & # 34;正在上映的《后来的我们》是刘若英的第一部小说。"; } else if(& # 34;微信小程序& # 34;。equals(word)){ message = & # 34;更多关于微信小程序的知识,请多阅读微信官方文档,还有很多其他关于微信发展的内容。学无止境。"; } else if(& # 34;Xi理工大学& # 34;。equals(word)){ message = & # 34;Xi理工大学(Xi & # 39;一所理工大学(简称“Xi理工大学”),位于世界历史名城古都Xi安,是西北地区唯一一所以军事工程为特色,以工科为主,理、文、经、管、法协调发展的教学研究型大学。原中华人民共和国兵器工业部直属七所本科院校之一(“兵器工业七子”),陕西省重点建设的高水平教学研究型大学,陕西省人民政府、中国兵器工业集团、国家国防科技工业局共建高校,教育部“卓越工程师教育培养计划”试点高校,陕西省大学生创新能力培养综合改革试点学校。国家二级保密资质单位一个& # 34;军民结合,军民结合& # 34;国防研究院校。"; } map . put(& # 34;消息& # 34;,消息); 返回图; } @ request mapping(& # 34;") public String getText(){ return & # 34;你好世界& # 34;; } }到目前为止,基本完成了简单的后端框架和测试。
说明:@RestController和@Controller annotations的区别@RestController相当于两个注释,可以在前台页面(网页)以json字符串的形式传递后端获取的数据。微信小程序和后台的数据传递是以json消息的形式。所以这也是选择springboot框架开发小程序后端的主要原因之一。方便我们开发小程序的后端。
五、小程序发起网络请求小程序后端开发完成后,小程序发起网络请求。
以一个简单的按钮请求数据为例:
Wxml文件
& ltbutton bindtap = & # 39后段按钮1 & # 39;& gt单击启动请求
/** *页面初始数据 */ 数据:{ 列表:& # 39;', word:& # 39;', 消息:& # 39;' }, houduan button 1:function(){ var that = this; wx . request({ URL:& # 39;http://localhost:443/getUser & # 39;, 方法:& # 39;获取& # 39;, header:{ & # 39;内容类型& # 39;: '应用/JSON & # 39;//Default }, Success:function(RES){ console . log(RES . data)//打印到控制台 var list = RES . data . list; if(list = = null){ var toast text = & # 39;数据采集失败& # 39;; wx . show toast({ title:toast text, icon:& # 39;', 时长:2000 }); } else { that . setdata({ list:list }) } })主要调用的api是WX。
接下来,以搜索类型请求为例:
Wxml文件:
& lt输入类型= & # 34;正文& # 34;class = & # 34houduanTab _ input & # 34placeholder = & # 34请输入您要查询的内容& # 34;bindinput = & # 39houduanTab _ input & # 39& gt& lt/input & gt; & lt;button bindtap = & # 39后段按钮2 & # 39;& gt询问
//获取输入框的内容 houduantab _ input:function(e){ this . setdata({ word:e . detail . value }) }, /。 wx . request({ URL:& # 39;http://localhost:443/get word & # 39;, data:{ word:that . data . word }, method:& # 39;获取& # 39;, header:{ & # 39;内容类型& # 39;: '应用/JSON & # 39;//Default }, Success:function(RES){ console . log(RES . data)//打印到控制台 var message = RES . data . message; if(message = = null){ var toast text = & # 39;数据采集失败& # 39;; wx . show toast({ title:toast text, icon:& # 39;', 时长:2000 }); } else { that。setdata({ message:message }) } }) }至此,简单的微信完成。
现在可以启动后端项目,在微信开发工具上测试了。
示范效应:
至此,小程序的前端通信已经完成。
其实不是应用。购买域名后可以申请免费的ssl证书。证书是在以前的配置文件application.properties中配置的,只需将证书的pfx文件直接添加到后端项目中即可。
对于springboot项目,我建议直接在服务器上打jar部署,只在服务器上安装相应版本的jdk。项目部署命令:
我买的是阿里云的轻量级应用服务器部署的。比较划算。
Run命令:nohup Java-jar hello world . jar & nohup的意思是不要挂起服务,它的意思是常驻。除非重启云服务器,否则没办法。最后一个&意思是执行命令后生成日志文件nohup.out,当然也可以使用java -jar helloworld.jar。
八、面试题资料领取方式2021 MySQL数据库面试总结(50题带答案分析)
77 JVM系列面试总结(2万字分析)
春云面试分析(2021面试必备)
面试官:你了解Redis缓存吗?面对这11个面试问题,你是不是有很多问号?
2021年Java多线程与并发系列22个高频面试问题分析
2021年Java基本高频面试问题汇总(1.4W字详解)
全网Spring系列129个面试问题(附答案分析)
Java微服务85个面试问题(助2021面试)[看看这27个面试问题!(含答案和思维导图)
2021年常见Linux面试问题及答案分析,哪些你还不知道?
2021年常见Elasticsearch面试问题答案分析
18个卡夫卡高频面试问题中有哪些你还不知道?(含答案和思维导图)
2021年12道RabbitMQ高频面试题你都学会了吗?(含答案解析)
2021年你是怎么掌握Dubbo的?看看这30个高频面试问题!
如何获取面试问题:关注边肖+转发文章+私信【13】免费获取
重要的事情说三遍,转发+转发+转发,记得赞转发!!!









