![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
创新实训
文章平均质量分 72
小旁友~
这个作者很懒,什么都没留下…
展开
-
项目实训14
项目实训171. 背景在微信小程序上线的时候又发现,小程序在审核的时候表示:发送的请求只能是https加密后的请求,所以,原先的http请求需要全面转化为https请求。2. 过程1、注册域名可以让腾讯云帮忙代理购买域名 域名注册页面,登录该页面就可以选购想要的域名,我们项目申请了sdu-guke.com的域名,和项目的作用也比较搭配具体操作可参考文档https://cloud.tencent.com/document/product/242/95952、申请SSL证书SSL证书是一种加原创 2022-05-24 15:09:10 · 206 阅读 · 0 评论 -
项目实训16
项目实训151. 背景由于本项目有属于小程序部分的前端项目,但是由于小程序所属为个人,所以小程序不能获取到用户的openid【准确滴说是能够获取到,但是微信认为这样不安全,在上线的时候会驳回】所以只能根据小程序登录所生成的code来通过后端发起http请求,从微信的服务器上获取用户的openid。2. 流程由前端小程序通过微信登录,获取用户登录凭证code,并调用后端接口,将code传送给后端,后端在拿到code之后,通过已知的小程序的appId等信息,向微信的服务器发送http请求,从而获取到该用原创 2022-05-24 20:00:00 · 275 阅读 · 0 评论 -
项目实训15
项目实训141. 背景为了使项目更好地记录日志及debug【主要是为了方便debug】,所以项目使用了log4j2进行日志的记录。2. 介绍常用的日志框架:java.util.logging:是JDK在1.4版本中引入的Java原生日志框架Log4j:Apache的一个开源项目,可以控制日志信息输送的目的地是控制台、文件、GUI组件等,可以控制每一条日志的输出格式,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。虽然已经停止维护了,但目前绝大部分企业都是用的log4j。Lo原创 2022-05-24 19:30:00 · 227 阅读 · 0 评论 -
项目实训13
项目实训131. 背景本项目中后端使用了两个基本的数据库进行数据的存储,分别是mongodb和mysql,两个数据库均存于云端服务器。本篇文章主要讲一下数据库的设计2. mysql的设计mysql分了三个主要的表,分别是用户user表,源图片source表以及上传图片upload表。为了便于统计表,所以每个表都设计了AUTO_INCREMENT的id字段。user表中的openid是绑定在小程序上的用户唯一标识,其他的就是一些从微信接口获取到的基本信息。source表主要是存储源图片的位置,源图片经原创 2022-05-23 13:51:47 · 185 阅读 · 0 评论 -
项目实训12
项目实训121. 背景由于本项目算法部分为使用python编写,所以需要在springboot中调用外部的python程序进行计算本项目算法评分模块。2. 实现业务流程:前端从后端获取推荐的图片,前端用户在进行描绘之后上传描绘后的灰度图片至后端,后端存储图片并调用python算法模块对该图片进行评分,并将评分返回给前端,并更新后端的中心图片。由于项目本地开发和部署之后的服务器环境的配置和图片保存的地方也不相同,所以使用被两个property文件进行配置# 本地python.command=/U原创 2022-05-21 22:59:30 · 147 阅读 · 0 评论 -
项目实训11
项目实训111. 背景由于项目中有需要上传图片的需求,所以在此记录一下上传图片的流程和做法2. 做法本需求的流程是,前端向后端上传图片,后端接受图片,并返回图片的打分。@UserLoginToken @ResponseBody @PostMapping("/upload") public Result uploadPicture(@RequestParam("file") MultipartFile file,原创 2022-05-21 15:35:26 · 113 阅读 · 0 评论 -
项目实训10
项目实训101.背景由于项目需要对数据进行校验,所以用到了jsr303进行便捷的验证关于JSRJSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。关于 JSR-303JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,H原创 2022-05-19 13:00:00 · 115 阅读 · 0 评论 -
项目实训9
项目实训91. 背景本项目持久层实现采用的是mybatis框架MyBatis 是一个半自动化的 ORM 框架,所谓半自动化是指 MyBatis 只支持将数据库查出的数据映射到 POJO 实体类上,而实体到数据库的映射则需要我们自己编写 SQL 语句实现,相较于Hibernate 这种完全自动化的框架,Mybatis 更加灵活,我们可以根据自身的需求编写 sql 语句来实现复杂的数据库操作。2. 使用首先引入依赖<!--引入 mybatis-spring-boot-starter 的依赖原创 2022-05-18 17:20:13 · 236 阅读 · 0 评论 -
项目实训8
项目实训81. 背景在开发SpringBoot程序的过程中,有可能与其他业务系统进行对接开发,有的时候为了开发的便捷性以及间接性,会需要开发一些自定义的注解,来实现一些业务。比如我们之前博客提到的实现mongodb数据库的自增id以及token的验证下面就来说一下在SpringBoot里开发自定义注解。2. 过程首先添加依赖:<dependency> <groupId>org.springframework.boot</groupId> <ar原创 2022-05-18 17:09:56 · 108 阅读 · 0 评论 -
项目实训7
项目实训71. 背景由于本项目中除了使用了mysql数据库,还使用了mongo数据库,但是在一些情况下,mongo数据库无法实现自增的id,所以打算借助java的监听器实现表中字段的自增由于MongoDB本身并不维护自增ID,因此只能利用MongoDB的原子性通过findAndModify自增1来实现,思路就是2. 实现过程导入依赖 <dependency> <groupId>org.springframework.boot&原创 2022-05-16 12:45:00 · 164 阅读 · 0 评论 -
项目实训6
项目实训61. token的作用为什么使用Token验证:所谓的Token,其实就是服务端生成的一串加密字符串、以作客户端进行请求的一个“令牌”。当用户第一次使用账号密码成功进行登录后,服务器便生成一个Token及Token失效时间并将此返回给客户端,若成功登陆,以后客户端只需在有效时间内带上这个Token前来请求数据即可,无需再次带上用户名和密码。Token就为我们免去了每次打开应用都要输入账号跟密码的过程。为什么要使用Token?为什么要使用Token?这个问题其实很好回答——因为它能解决问原创 2022-05-15 09:00:00 · 106 阅读 · 0 评论 -
项目实训5
项目实训51. 背景由于项目需要制定比较统一的返回接口,所以项目中设置了统一的异常返回处理以及统一的返回结果处理。在实际开发中,如果不处理统一处理异常,那么前端在调用后端提供的接口,就会处理各种的异常结构,对于前端来说那可谓是一场灾难,这对前后端的协作也不友好。比如后端路径:/api/v1/index/user?id=222,如果前端未传入ID,那么SpringBoot就会报如下异常:{"timestamp":"2021-03-30T15:22:46.139+00:00","status":400,原创 2022-05-14 15:05:51 · 125 阅读 · 0 评论 -
项目实训四
项目实训41. 背景由于骨刻文项目存在许多骨刻文的静态图片,为了前端能够快速获取到相应的图片,后端打算再部署一个nginx静态服务器,用来存取在项目中客户上传的各种图片。Nginx作为静态资源web服务时,通过接收客户端的静态资源请求,然后到静态文件存储位置获取对应的资源并返回给客户端,流程如下图所示:2. 过程由于团队所使用服务器为centos云服务器,所以在相关服务器上部署nginx一、配置 EPEL源sudo yum install -y epel-releasesudo yum -原创 2022-04-08 10:39:57 · 700 阅读 · 0 评论 -
项目实训3
项目实训3本篇主要讲在web页面小程序扫码登录流程1. 背景由于众包算法的系统是为了让更多的人通过描绘图像而获取更多的原始数据,所以在手机端的功能流程不能做的太复杂,否则用户会直接被过于复杂的流程劝退,于是,经过小组的讨论,本项目决定依托于微信小程序进行用户信息的存储。原本是打算使用用户的手机号码作为用户的唯一标识来存储用户信息,但是经过微信小程序开发文档的查阅,发现个人开发者并不能直接获取到用户的手机号,即使用户已经通过微信进行授权登录了,所以也没办法,只能另寻他法。最后我们确定下来的是使用基于原创 2022-03-22 20:15:34 · 303 阅读 · 0 评论 -
项目实训2
一些异常情况处理原创 2022-03-21 16:59:26 · 2518 阅读 · 0 评论 -
创新实训1
项目实训11. 背景建立数据库连接耗时耗费资源,一个数据库服务器能够同时建立的连接数也是有限的,在大型的Web应用中,可能同时会有成百上千的访问数据库的请求,如果Web应用程序为每一个客户请求分配一个数据库连接,将导致性能的急剧下降。数据库连接池的意义在于,能够重复利用数据库连接(有点类似线程池的部分意义),提高对请求的响应时间和服务器的性能。连接池中提前预先建立了多个数据库连接对象,然后将连接对象保存到连接池中,当客户请求到来时,直接从池中取出一个连接对象为客户服务,当请求完成之后,客户程序调用c原创 2022-03-13 12:42:00 · 96 阅读 · 0 评论