一款微信小程序开发「前端+后端(Java)」附完整源码,确实香啊
一、前言
现在微信小程序越来越火了,相信不少人都通过各种途径学习过微信小程序或者尝试开发,作者就是曾经由于兴趣了解开发过微信小程序,所以现在用这篇文章记录我之前开发的一些经验和一些心得吧。
二、主要内容
- springboot后端架构构建
- 小程序项目构建
- 小程序api调用
- 后台resetful接口编写
- 小程序调用后台接口
- 免费的https申请
- linux下部署上线
三、微信小程序项目构建
这些基础的东西我就不过多介绍,大家在刚开始开发的时候一般都没有自己的服务器及域名,所以大家在本地编写的时候,在“详细”下的“项目设置”里面将“不校验域名安全性”勾选。
至于微信小程序的组件,即前端页面的开发希望大家耐住寂寞认真在微信开发平台上。
组件:
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依赖
在配置文件src/main/resources/下创建application.properties文件可以修改一些配置参数等。
在实际项目中可能涉及数据库,还要整合mybatis,在文章中,我仅仅做测试就不做使用数据库的测试。
首先创建springboot的入口程序:app.class下面贴上代码:
启动项目时直接右击run即可。
在写一个测试的controller进行微信小程序与java后端实现通信,controller代码如下:
至此简易的后端框架及测试基本完成。
说明:@RestController与@Controller注解的区别@RestController相当于两个注解,它能实现将后端得到的数据在前端页面(网页)中以json串的形式传递。而微信小程序与后台之间的数据传递就是以json报文的形式传递。所以这就是选择springboot框架开发小程序后端的主要原因之一。可以方面我们进行小程序的后端开发。
五、小程序发起网络请求
在完成了小程序的后端开发,下面进行小程序端发起网络请求。
下面以一个简单的按钮请求数据为例:
wxml文件
js文件
接下来以搜索类型的请求为例:
wxml文件:
js文件:变量的定义见上一个js文件
至此已经完成了简易的微信小程序端与java后端进行通信。
现在可以在启动后端项目在微信开发工具上进行测试。
演示效果:
微信图片_20220630212825.gif
所以至此已经完成了小程序的前后端通信。
六、ps申请
其实也不算什么申请,在购买域名之后可以申请免费的ssl证书,在前面的配置文件application.properties中有证书的配置,将证书的pfx文件直接添加到后端项目下即可。
七、购买服务器部署后端api代码
对于springboot项目,本人建议打jar,直接在服务器上部署即可,在服务器上只需要安装对应版本的jdk即可。项目部署命令:
我购买的是阿里云的轻量级应用服务器部署的。比较划算吧。
nohup的意思不挂服务器,常驻的意思,除非云服务器重启,那就没法了;最后一个&表示执行命令后要生成日志文件nohup.out,当然还可以使用java -jar helloworld.jar。
1、 绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?绝对路径: 如/etc/init.d当前目录和上层目录: ./ ../主目录: ~/切换目录: cd
查看当前进程: psps -l 列出与本次登录有关的进程信息; ps -aux 查询内存中进程信息; ps -aux | grep * 查询*进程的详细信息; top 查看内存中进程的动态信息; kill -9 pid 杀死进程。
vi 文件名 #编辑方式查看,可修改cat 文件名 #显示全部文件内容more 文件名 #分页显示文件内容less 文件名 #与 more 相似,更好的是可以往前翻页tail 文件名 #仅查看尾部,还可以指定行数head 文件名 #仅查看头部,还可以指定行数
列出文件列表:ls【参数 -a -l】创建目录和移除目录:mkdir rmdir用于显示文件后几行内容:tail,例如: tail -n 1000:显示最后1000行打包:tar -xvf打包并压缩:tar -zcvf查找字符串:grep显示当前所在目录:pwd创建空文件:touch编辑器:vim vi
Linux查看日志的命令有多种: tail、cat、tac、head、echo等,本文只介绍几种常用的方法。1、tail最常用的一种查看方式命令格式: tail[必要参数][选择参数][文件]-f 循环读取 -q 不显示处理信息 -v 显示详细的处理信息 -c<数目> 显示的字节数 -n<行数> 显示行数 -q, –quiet, –silent 从不输出给出文件名的首部 -s, –sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒例如:
tail -n 10 test.log 查询日志尾部最后10行的日志;tail -n +10 test.log 查询10行之后的所有日志;tail -fn 10 test.log 循环实时查看最后1000行记录(最常用的)一般还会配合着grep搜索用,例如 :tail -fn 1000 test.log | grep \’关键字\’如果一次性查询的数据量太大,可以进行翻页查看,例如:tail -n 4700 aa.log |more -1000 可以进行多屏显示(ctrl + f 或者 空格键可以快捷键)2、head跟tail是相反的head是看前多少行日志head -n 10 test.log 查询日志文件中的头10行日志;head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;head其他参数参考tail3、catcat 是由第一行到最后一行连续显示在屏幕上一次显示整个文件 :
cat > filename将几个文件合并为一个文件:
cat -n textfile1 > textfile2清空一个日志文件:$cat : >textfile2注意:> 意思是创建,>>是追加。千万不要弄混了。cat其他参数参考tail4、moremore命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。more命令从前向后读取文件,因此在启动时就加载整个文件。该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:–More–(XX%)more的语法:more 文件名
Enter 向下n行,需要定义,默认为1行Ctrl f 向下滚动一屏空格键 向下滚动一屏Ctrl b 返回上一屏= 输出当前行的行号:f 输出文件名和当前行的行号v 调用vi编辑器!命令 调用Shell,并执行命令q退出more5、sed这个命令可以查找日志文件特定的一段 , 根据时间的一个范围查询,可以按照行号和时间范围查询按照行号
sed -n \’5,10p\’ filename 这样你就可以只查看文件的第5行到第10行。按照时间段sed -n \’/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p\’ test.log6、lessless命令在查询日志时,一般流程是这样的less log.logshift + G 命令到文件尾部 然后输入 ?加上你要搜索的关键字例如 ?1213按 n 向上查找关键字shift+n 反向查找关键字less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且 less 在查看之前不会加载整个文件。less log2013.log 查看文件ps -ef | less ps查看进程信息并通过less分页显示history | less 查看命令历史使用记录并通过less分页显示less log2013.log log2014.log 浏览多个文件常用命令参数:less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且 less 在查看之前不会加载整个文件。
less log2013.log 查看文件ps -ef | less ps查看进程信息并通过less分页显示history | less 查看命令使用记录并通过less分页显示less log2013.log log2014.log 浏览多个文件常用命令参数:-b <缓冲区大小> 设置缓冲区的大小-g 只标志最后搜索的关键词-i 忽略搜索时的大小写-m 显示类似more命令的百分比-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来-Q 不使用警告音-s 显示连续空行为一行/字符串:向下搜索\”字符串\”的功能?字符串:向上搜索\”字符串\”的功能n:重复前一个搜索(与 / 或 ? 有关)N:反向重复前一个搜索(与 / 或 ? 有关)b 向后翻一页h 显示帮助界面q 退出less 命令一般本人查日志配合应用的其他命令history // 所有的历史记录history | grep XXX // 历史记录中包含某些指令的记录history | more // 分页查看记录history -c // 清空所有的历史记录!! 重复执行上一个命令查询出来记录后选中 : !323
强烈推荐10套开源微信小程序免费源码
1.头像加口罩
个人开发者如何通过小程序变现?
最简单、粗暴的就是做流量主,通过小程序中的插入的广告变现!门槛极低,变现难度对于个人开发者几乎没有!
那些小程序工具抖音去水印、头像制作、星座类的,微信搜索指数就能看出来,有非常巨大的流量入口,垂直工具虽然使用频率不是非常高,但是流量大的“足以发挥想象”啊!
头像加口罩小程序-基于uniapp使用vue快速实现。充分利用的流量运营思维包括取名截流,公众号文章引流,广告放置策略优化,逐步获得10w +用户,获取广告收入4K +。核心代码开发时间为两个周末。
2.小程序营销组件
一套简单,易用,业务化的商城营销组件库,让开发变得更简单。包括:大转盘、红包雨、九宫格翻牌、、微信小程序分享(转发好友/分享图)、标签滚动导航。
3.Qrcode
微信小程序生成二维码工具。工具类的小程序!
4.Github小程序客户端
目前颜值最高的GitHub小程序客户端。Gitter – 高颜值GitHub小程序客户端诞生记
本仓库是Gitter小程序对应的开源仓库,旨在分享微信小程序的开发经验。
该项目采用 Taro 框架 + Taro UI 进行开发,小程序内数据均来自于 GitHub Api v3
5.v2ex
V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。数据接口来源:https://github.com/samuel1112/v2er
6.Github今日榜单
Min Cli:小程序开发框架,类VUE;MinUI:小程序UI组件库;es6-promise:提供承诺支持;wx-promise-request:小程序初始化网络请求;wemark:小程序Markdown渲染库;材质图标:提供图标支持;纱|| Npm:包管理;Webpack,Babel:打包构建;ES6:JS语法;更少:CSS初步语言;GitHub API,QueryList:提供数据支持
7.2048小游戏
基于网络版2048游戏开发的微信小程序版2048,仅作交流学习用。
8.学之思在线考试系统
学之思在线考试系统是一款 java + vue 的前后端分离的考试系统。主要优点是开发、部署简单快捷、界面设计友好、代码结构清晰。目前支持web端和微信小程序,能覆盖到pc机和手机等设备。
后台系统:
spring-boot 2.1.6.RELEASE
spring-boot-security 用户登录验证
undertow web容器
postgresql/mysql 优秀的开源数据库
redis 缓存,提升系统性能
mybatis 数据库中间件
hikari 速度最快的数据库连接池
七牛云存储 目前10G内免费
前台系统:
Vue.js 采用新版,使用了vue-cli3搭建的系统,减少大量配置文件
element-ui 最流行的vue组件,采用的最新版
vue-element-admin 最新版,对该系统做了大量精简,只保留了部分样式和控件
echarts 图表统计
ueditor 填空题扩展插件
9.租房平台类微信小程序
基于微信小程序云开发的租房平台类微信小程序,带完整的管理员后台。快速完成微信小程序前后端的搭建,后台完全使用微信小程序云开发,不依赖服务器,无需购买服务器即可使用。
10. 仿网易云音乐APP的微信小程序
已经实现以下功能:
用户、歌单、FM、播放、评论、MV、专辑、歌手、登录、歌曲红心、FM trash、收藏单曲至歌单、收听记录、歌单歌曲推荐、迷你播放条、电台、节目、搜索
想开发app、小程序却没有完整源码?来看看全部的完整源码吧
首先 源代码是原创是知识产权是属于你的版权
第二点 可以进行二次开发进行 增加功能 系统优化 完善或丰富 现有系统功能如果没有源代码系统无法修改
第三点 不受开发公司限制 可以占据主动权 如果开发方 在后期对运维或增加功能方面 报价远超市场价 可以拿你的源代码找一家有实力性价比更高的公司 同时也可以让其他公司进行后期的系统维护和升级而不会因此造成整套软件重写所以大家在找开发公司的同时要注意是否会提供源代码这个问题
第四点 源代码用途:
生成目标代码,即计算机可以识别的代码。
对软件进行说bai明,即对软件的编写进行说明。为数不少的初学者,甚至少数有经验的程序员都忽视软件说明的编写,因为这部分虽然不会在生成的程序中直接显示,也不参与编译。但是说明对软件的学习、分享、维护和软件复用都有巨大的好处。因此,书写软件说明在业界被认为是能创造优秀程序的良好习惯,一些公司也硬性规定必须书写。
需要指出的是,源代码的修改不能改变已经生成的目标代码。如果需要对目标代码做出相应的修改,必须重新编译。
第五点 源代码好处:
1、可以在源代码的基础上进行二次开发,完善或丰富现有系统功能。
2、参考学习。通过分析源代码,可以学习开发、了解开发者的思路,学习开发者如何通过巧妙的方式、算法解决业务问题,阅读源代码是提高开发水平的快捷方式。
3、拥有源代码,可以占据主动权。如果开发方在后期对运维或增加功能方面,报价远超市场价,委托方有源代码的话,可以考虑更换开发方,而不会因此造成整套软件重写。
爱炎科技公司从2015年成立至今,为各行各业的客户定制开发APP多达300多个,其中行业涉及:直播APP、短视频APP、在线教育APP、智能硬件APP、社交电商APP、在线医疗APP、O2O社区APP等。以及大量的微信小程序模板;民宿类小程序、医疗美容类小程序、社交小程序等等。然而在运营过程中,很多的APP及客户悄然消失了,导致好多APP、小程序虽然开发完成却无力运营,源码大量闲置。
详情如下图:
APP源码列表
小程序源码列表
其中:社区生鲜APP主要功能为:生鲜电商+配送管理+门店管理+销售管理
社区生鲜APP源码
智慧校车APP主要功能为:校园管理+支付+校车+路线+班级等
校车APP源码
仿趣头条APP主要功能为:资讯+直播+视频+消息+支付+自媒体平台
仿趣头条APP源码
在线医疗APP主要功能为:在线问诊+药方+消息+患者管理+医生管理
在线医疗APP源码
早教课程APP的主要功能为:电子绘本+儿歌+视频+等级+朋友圈+社交
早教app源码
定制装修APP的主要功能为:用户端+企业端+在线预约+装修过程管理
土巴兔app源码
相亲交友APP的主要功能为:陌生人交友+相亲+直播+守护等
直播相亲app源码
仿抖音短视频APP源码功能主要为:短视频+直播+消息+直播带货+礼物系统
仿抖音app源码
小程序源码案例:
民宿小程序的主要功能:在线预约民宿+入驻+支付+民宿管理;
民宿小程序源码
会所服务小程序的主要功能为:高端会所点餐+存酒+预约+呼叫服务
会所管理小程序源码
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。