因为本次需求的最终目的是做一个微信小程序,所以先提前了解一下
看了下微信小程序的官网,基本的开发都是前端开发,因为本次开发中我负责的是后端
暂时不深入了解,但是有一个是后端需要注意的,就是微信小程序只能使用https请求
下面是官网的截图

因为域名等问题还没确定,所以暂时先本地生成一个ssl证书
注:本地生成的证书只能是测试时使用,小程序的前后端调用需要填写具体的域名,所以
后续肯定是要去阿里云、腾讯云等这样的平台去申请一个证书
在虚拟机里执行
安装openssl

yum install openssl openssl-devel -y

生成一个RSA密钥

openssl genrsa -out server.key 2048

生成一个证书请求

openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=dd.test/OU=wechatstore_bak/CN=wechatstore.com"

后面有一些参数,可自定义填写,
C:国家
ST:省
L:城市
O:机构
OU:部门
CN:域名
签发证书

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

格式转化,可自选:

openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out server.p12
openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out server.pkcs12
keytool -importkeystore -srckeystore server.pkcs12 -destkeystore server.jks -srcstoretype pkcs12 -deststoretype jks

这些命令执行时会提示输入密码,输入的密码需要记住,后面有用
执行之后会发现在当前目录生成了很多的文件,其中我这里选的是pkcs12类型,所以将server.pkcs12下载下来
将这个文件放入service_customer对应的resources目录下
然后我们在application.properties更改server的配置,之前我们只配置了端口后,在此基础上更改:

server.port=18080
server.ssl.key-store=classpath:server.pkcs12
server.ssl.key-store-password=xxx
server.ssl.key-store-type=pkcs12

xxx为之前的密码
然后我们重启应用
可以看到启动信息已经改为了https

我们再访问一下swagger页面,发现也需要用https才能访问了

接下来说一下异常处理
常见的异常处理有三类
1.全局异常处理
2.特定异常处理
3.自定义异常处理
我们在common里建如下的两个类

GlobalExceptionHandler的代码如下:

package com.dd.wechatstore.exception;import com.dd.wechatstore.model.result.Result;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;//aop 不改变原来代码的情况下,增强代码的功能
@ControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(Exception.class)@ResponseBodypublic Result error(Exception e){e.printStackTrace();return Result.fail().message("执行了全局异常处理");}@ExceptionHandler(ArithmeticException.class)@ResponseBodypublic Result error(ArithmeticException e){e.printStackTrace();return Result.fail().message("执行了特定异常处理");}@ExceptionHandler(MyException.class)@ResponseBodypublic Result error(MyException e){e.printStackTrace();return Result.fail().message(e.getMsg()).code(e.getCode());}}

MyException的代码如下:

package com.dd.wechatstore.exception;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;//AllArgsConstructor 和 NoArgsConstructor时全参和无参构造器的意思
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MyException extends RuntimeException{private Integer code;private String msg;}

测试异常的方式比较简单,这里不做展示,简单说一下注意事项:
1.出现异常时首先会在GlobalExceptionHandler 匹配具体的异常,如果匹配不到具体的异常时会
走Exception.class
2.自定义异常一般在代码里使用try-catch的方式进行使用,将自定义异常在catch里进行抛出

打包

首先我们的工程选择的是多module的形式,所以打包时需要注意一下
首先去掉最外层pom.xml的如下内容

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

因为我们的model和common模块是辅助的作用,不需要主类进行运行
然后把这段内容放入service_customer对应的pom.xml里
然后我们要把本地的内容上传至本地的maven库
在父项目的目录cmd进入,执行mvn install
然后在model的目录cmd进入,执行mvn install
然后在service_utils的目录cmd进入,执行mvn install
然后就可以打包了,因为要根据依赖情况逐步打包,我们借助一下idea工具
按截图的顺序配置好

然后就可以点运行了
运行时会依次执行三个打包
然后我们获取最后一个打的包上传到服务器,这里我先上传到虚拟机做测试

检查一下虚拟机的java版本
然后 java -jar service_customer-0.0.1-SNAPSHOT.jar
发现可以正常启动

然后将访问swagger的网址的ip换成虚拟机的ip可以正常访问

微信小程序后端注意点 | https配置 | 全局、特定、自定义异常处理 | 多module打包上传服务器测试相关推荐

  1. 关于开发微信小程序后端linux使用xampp配置https

    关于开发微信小程序后端linux使用xampp配置https 背景 由于最近开发微信小程序,前后端交互需要使用https协议,故需要配置https服务 服务器环境 服务器系统 ubuntu 环境 xa ...

  2. Django搭建服务器,和微信小程序通信,验证码存入redis,用户信息存入mysql以及图片上传

    写在前面:整体是实现小程序的登录和注册,并接收验证码进行校验. 一.创建项目 django-admin startproject wxTest 二.注册app,进入到wxTest目录中 python ...

  3. 【微信小程序】图片选择、转码、压缩、预览、上传,file与base64

    0 前言 微信小程序中,上传图片,如标题,涉及图片选择.图片转码.图片压缩.图片预览.图片上传等 1 图片选择 需要使用微信提供的wx.chooseMedia chooseImage() {var t ...

  4. 微信小程序云函数构建npm,找不到node_modules以及后续出现上传所有文件,并没有上传node_modules的文件问题

    最近研究下微信小程序云函数,在构建npm的时候困扰了很久,总是提示找逼到node_modules,之前一直也没接触过nodejs,不想购买服务器,选择尝试下云开发. 出现这个错误在网上找了很多,都没找 ...

  5. 如何部署微信小程序,并且利用Nginx配置https访问

    1. 前后端代码的部署 首先要完成项目在服务器上面的部署,对于后端服务的部署,只需要把项目打成jar包,然后执行就可以了,对于前端服务,我们把前端打包后的代码放到对应位置,然后配置nginx配置文件, ...

  6. 微信小程序后端java服务商分账实现

    微信小程序后端java服务商分账实现 最近公司申请微信服务商,需要给第三方提供支付.分账功能. 商户调用服务商统一支付 首先,服务商小程序支付,基本与普通商户小程序支付一致 支付使用服务商统一下单接口 ...

  7. chatgpt智能问答微信小程序+后端源码+视频搭建教程

    chatgpt智能问答微信小程序+后端源码+视频搭建教程,这是一套微信小程序,后端是thinkphp框架为接口的,后端是前后端分离用elmentUI的源码框架. 小狐狸GPT付费体验系统是一款基于Th ...

  8. 用 Django 开发微信小程序后端实现用户登录

    本文将介绍采用 Django 开发微信小程序后端,通过将用户模块进行重构,并采用JWT来进行用户认证,来解决以下问题: 微信小程序不支持 Cookie,因此不能采用 Django 默认的 Sessio ...

  9. 微信小程序后端框架|微信公众号后端框架(C# WebAPI)

    微信小程序后端框架|微信公众号后端框架(C# WebAPI) 微信小程序 简称小程序,英文名Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的 ...

最新文章

  1. 《OpenCV3编程入门》学习笔记7 图像变换(一)基于OpenCV的边缘检测
  2. linux 无线网络配置工具wpa_supplicant与wireless-tools
  3. 滚动条滚动加载图片或则请求的实现方法
  4. mysql 多表备份_mysql备份与恢复多库多表备份
  5. 随机森林分类器_建立您的第一个随机森林分类器
  6. php通知多有人,PHP通知抑制;只有某些情况/方法
  7. 动手学pytorch之tensor数据(一)
  8. Java多线程基本概念
  9. NX二次开发-BlockUI对话框嵌套MFC对话框制作进度条
  10. 电脑有英伟达独显,有了英伟达显卡驱动还要英特尔显卡驱动吗?
  11. 只能用于文本与图像数据?No!看TabTransformer对结构化业务数据精准建模 ⛵
  12. 读文献——《Deep Residual Learning for Image Recognition》
  13. 区块链服务BaaS的总体架构与详细设计
  14. opencv函数测试对话框
  15. 学ios 需要学html5me,针对iOS平台移植Flash内容的指导教程(1)
  16. Oracle中序列的操作以及使用前对序列的初始化
  17. 计算机网络维护日记,计算机网络维护实习日记.doc
  18. 彩色图片亮度放大后 色彩不失真的方法
  19. TPS5430DDAR型号芯片的学习
  20. 【君思智慧园区】智慧物流园区解决方案,如何规划与建设智慧物流?

热门文章

  1. 解决Eureka注册服务中实例info信息无法动态显示$project.artifactId$的问题
  2. 微信小程序 |从零实现酷炫纸质翻页效果
  3. 淘宝购买记录截图生成,制作淘宝我的已付款网页
  4. 用python写的代码输入助手小程序(附源码)
  5. 三年级上册计算机计划书,三年级学习计划书
  6. 图像形状特征(三)--链码及形状数
  7. ROS图像格式和opencv图像格式的转换cv2_to_imgmsg和imgmsg_to_cv2
  8. Unity触摸屏幕 拖拽物体 旋转物体 放大缩小物体 单击 双击 长按
  9. Android 角标适配
  10. java基于ssm开发的美妆商城化妆品电商系统有论文