后端开发学习
个人学习及实战记录:Java springboot spring mybatis redis
lzf2284466
白纸一张,仍需努力~
展开
-
SpringBoot 异常错误:(mybatis)argument type mismatch
报错产生原因,类型不匹配,仔细核对了下,发现以下错误:resultMap TaskListEntity 中 task 引用的类型是TaskEntity,而javaBean TaskListEntity 中 task 引用的类型是Task,两者不匹配,所以报类型不匹配!结果:此类问题,需要大家仔细审查,除了排查基本类型,也要看看对象类型是否有问题!...原创 2020-08-21 08:48:23 · 1358 阅读 · 0 评论 -
session/token 简单认识
session:用户数据存储到服务器session中,用户每次登录,服务器都会检查浏览器是否有JESSION原创 2020-08-18 22:15:18 · 469 阅读 · 0 评论 -
SpringBoot 热部署、项目发布
SpringBoot 热部署概述1、场景:本地调试、线上发布都要重启服务器,重启服务器浪费了大量的开发、调式时间2、优点:3、热部署与热加载4、原理解析SpringBoot热部署实现1、使用Spring loaded实现:2、使用spring-boot-devtools概述1、场景:本地调试、线上发布都要重启服务器,重启服务器浪费了大量的开发、调式时间PS:思考如何做到发布新程序不需要重启服务器?2、优点:(1)本地、线上都适用(2)无需重启服务器提高开发、调式效率;提高发布、运维效率,降原创 2020-08-16 23:14:54 · 348 阅读 · 0 评论 -
spring security 退出登录处理
1、如何退出登录2、spring security 默认退出处理逻辑(1)使session失效(2)清楚与当前用户相关的remember-me记录(3)清楚当前的SecurityContext3、与退出相关配置(1)logout().logoutUrl(SecurityConstants.DEFAULT_LOGOUT_URL) //默认登出请求(2)logout().logoutSuccessUrl(“xxx”) //登录成功后跳转地址,与logoutSuccessHandler互斥,只可配原创 2020-08-16 13:40:47 · 879 阅读 · 0 评论 -
springboot session管理
1、session超时处理(1)配置:在yml或properties文件加入server.session.timeout① 设置10秒未超时:TomcatEmbeddedServletContainerFactory类,查看设置session的方法configureSession(),里边做了判断,会自动将秒数转为分钟,最少1分钟② session失效提示配置:在浏览器配置文件(BrowserSecurityConfig)中设置 sessionManagement().invalidSess原创 2020-08-16 12:25:40 · 868 阅读 · 0 评论 -
springboot get方式传入参数乱码、返回数据乱码问题解决
1、get方式传入参数,由于是在url后边,默认编码为iso-8859-1,故后端拿到为乱码,需要转为utf-8编码:new String(xxx.getBytes(“iso-8859-1”),“utf-8”)2、返回前端数据乱码,需要指定@requestMapping参数produces = {“application/json;charset=UTF-8”}以上处理方式针对都是单个参数、单个方法,若遇到乱码问题,实在没有解决办法可以考虑使用,本人由于使用了公司已有框架,且开发进度较急,所以没时间去细原创 2020-08-10 18:04:31 · 4703 阅读 · 0 评论 -
spring security 浏览器第三方登录
spring security 浏览器第三方登录OAuth 协议1、概要简介2、四种授权模式3、spring social基本原理4、使用spring social实现第三方登录5、QQ第三方登录实现OAuth 协议1、概要简介服务器提供商不提供账号密码的情况下,通过发放令牌,让第三方应用可以进行认证、授权并访问资源(1)采用账号密码登录第三方弊端① 应用可以访问用户在微信上的所有数据② 用户只有修改密码,才能收回权限③ 密码泄露的可能性大大提高(2)采用令牌登录(OAuth协议)2原创 2020-08-09 23:16:19 · 1701 阅读 · 0 评论 -
springboot 使用多线程提升Restful服务性能
1、使用Runnable异步处理Rest服务:副线程必须由主线程调用(主副线程之间是有联系的)package com.mall.web.controller;import java.util.concurrent.Callable;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.web.bind.annotation.GetMapping;import org.springfr原创 2020-07-06 21:25:17 · 784 阅读 · 0 评论 -
lombok @Data注解不生效
最近在做文件上传功能封装时,第二遍踩坑,@Data注解加上后,Bean类怎么都拿不到getter方法,反反复复检查后,才发现自己犯了一个十分基础的错误:我的文件上传功能是静态方法,我既然在静态方法里调用非静态的变量,所以一直获取不到,十分基础的知识,既然在这里遇到了。结论:检查是否在静态方法调用了非静态的变量...原创 2020-07-06 19:51:52 · 3052 阅读 · 0 评论 -
springboot 拦截Restful服务三种方式(filter、interceptor、aspect)
1、将过滤器加入项目的方式:(1)采用@Component 注解,实现过滤器bean注入(2)针对第三方过滤器,即无@Component 注解,需要在@Configuration配置文件进行注册:package com.mall.config;import java.util.ArrayList;import java.util.List;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.原创 2020-07-05 12:24:14 · 950 阅读 · 0 评论 -
springboot 服务异常处理
PS:sts快速查看类:ctrl + shift + T服务异常处理(1)默认处理:BasicErrorController类若以上请求头accept参数包含text/html,出错则走以下方法@RequestMapping(produces = "text/html")public ModelAndView errorHtml(HttpServletRequest request, HttpServletResponse response) { HttpStatus status =原创 2020-07-04 11:13:57 · 468 阅读 · 0 评论 -
Restful API 简单认识
可通过正则表达式控制需要传入值的类型对于日期类型参数处理,由于后端会对接不同类型的前端,如浏览器、APP、小程序等,返回的格式都不统一,故建议以时间戳格式进行传递,前端根据实际需求进行转换使用。自定义错误信息PS:sts快速查看类:ctrl + shift + T服务异常处理(1)默认处理:BasicErrorController类若以上请求头accept参数包含text/html,出错则走以下方法@RequestMapping(produces = "text/html"...原创 2020-07-03 23:24:12 · 112 阅读 · 0 评论 -
maven pom、jar、war区别
maven中的三种工程:1.pom工程:用在父级工程或聚合工程中。用来做jar包的版本控制。2.war工程:将会打包成war,发布在服务器上的工程。如网站或服务。3.jar工程:将会打包成jar用作jar包使用。...转载 2020-07-02 22:05:32 · 146 阅读 · 0 评论 -
spring boot 运行错误:There is no PasswordEncoder mapped for the id null
问题错误原因:存储的密码方式与预期的不相符,如下图:出现此错误原因:由于demo项目进行了框架升级,数据库数据没有改变,而程序验证方式不同,密码的存储及解密方式也不同,因此造成了此原因!...原创 2020-06-22 01:08:54 · 263 阅读 · 0 评论 -
spring boot 启动报错: No qualifying bean of type cn.hutool.core.lang.Snowflake available
spring boot 启动错误:Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘idUtil’: Unsatisfied dependency expressed through field ‘sno原创 2020-06-18 09:31:55 · 2400 阅读 · 1 评论 -
spring boot 启动报错:No qualifying bean of type org.springframework.security.oauth2.provider.token.Toke
spring boot启动报错: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘authorizationServerConfig’: Unsatisfied dependency expressed原创 2020-06-18 09:22:13 · 12232 阅读 · 0 评论 -
Spring Boot 启动报错: Unable to connect to Redis server: localhost/127.0.0.1
最近在研究学习spring boot聚合框架,自己动手配置过程中遇到如下问题:org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379;Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.原创 2020-06-18 09:11:43 · 20001 阅读 · 1 评论 -
spring boot Swagger访问404解决方案
踩坑教训:由于自己使用的是GitHub项目,报404错误,找了半天,发现是配置文件问题,这里要给大家一个结论:GitHub项目配置文件并不是100%正确的!<!--Swagger-UI API文档生产工具--><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7原创 2020-06-07 16:27:57 · 576 阅读 · 0 评论 -
spring boot java -jar启动的项目并于后台运行
新建xx.bat执行文件,加入以下代码,然后执行即可@echo offD:cd D:\spring_webstart javaw -Dfile.encoding=utf-8 -jar tag-pro.war exit原创 2020-06-04 20:33:30 · 639 阅读 · 1 评论 -
spring boot java -jar部署后返回数据乱码、日志记录乱码解放方法
1、与程序无关,运行jar包时指定编码方式:java -Dfile.encoding=utf-8 -jar XXX.jarPS:日志文件依旧乱码原因,需要将之前创建的日志文件删除,让程序重新生成文件即可解决原创 2020-06-04 19:44:49 · 842 阅读 · 0 评论 -
spring boot logging日志配置注意事项
在application.ym增加以下内容,注意file与level是同级logging: level: root: INFO #日志配置DEBUG,INFO,WARN,ERROR com.macro.mall: DEBUG file: D:\\spring_web\\logs\\tagPro_log.log #配置日志生成路径原创 2020-06-04 10:08:44 · 442 阅读 · 0 评论 -
spring boot 部署启动: xx.war包没有主清单属性
在pom.xml最后面加入以下代码:<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins></build>...原创 2020-06-03 21:42:52 · 815 阅读 · 0 评论 -
Spring Boot 全局统一日期格式化
在application.yml配置文件中加入spring: jackson: #参数意义: #JsonInclude.Include.ALWAYS 默认 #JsonInclude.Include.NON_DEFAULT 属性为默认值不序列化 #JsonInclude.Include.NON_EMPTY 属性为 空(””) 或者为 NULL 都不序列化 #JsonInclude.Include.NON_NULL 属性为N原创 2020-06-03 21:27:13 · 738 阅读 · 0 评论 -
数据缓存技术 数据库缓存VS程序缓存
数据库(查询)缓存1、数据库性能:(1)mysql每秒可以处理5000次读取,或者3000次写入(2)响应时间通常在10ms以内,但是并发量达到1万的时候,要保证10ms以内的响应速度,任务数据库都做不到2、数据库缓存:(1)mysql缓存是KV(key-value)结构的,保存在内存中,key是执行过的sql语句,value是查询的结果(2)如果执行删除、修改、新增操作,或者修改表结构,都会造成(表)缓存情况3、数据库查询过程:执行sql语句,MySQL先查询缓存。命中数据,就从缓存中提取原创 2020-05-27 22:23:22 · 281 阅读 · 0 评论 -
数据库 悲观锁、乐观锁机制原理--结合应用场景
最近在慕课网上学习课程,了解到了乐观锁的概念、应用场景及实现原理,趁热打铁,做个笔记,加深印象~市面上的电商系统越来越多,而电商系统都离不开的一点那就是购买商品,这里先简单介绍一下购买商品的简单业务逻辑,首先的下订单,支付成功,商品减库存,试想一下,若电商系统搞活动,20部华为mate 40打5折,大家疯狂抢购,若以上业务逻辑不错修改,购买人数为200的时候时侯,原本只卖20部的,现在变成了200部,库存为-180,出现了超售现象,这样的活动办了还不如不办~以上有什么解决办法呢,乐观锁的作用出现了.原创 2020-05-27 01:48:04 · 223 阅读 · 0 评论 -
数据库设计:物理删除VS逻辑删除
物理删除VS逻辑删除物理删除概念代价应用场景逻辑删除结论物理删除概念1、就是用DELETE、TRUNCATE、DROP语句删除数据2、物理删除是把数据从硬盘中删除,释放存储空间,缩小表体积,对性能提升有帮助代价1、物理删除是真的删除,数据恢复难度大2、物理删除会造成主键不连续,导致分页查询数据慢应用场景1、核心业务表的数据不适合做物理删除,只做状态变更。2、随着业务表数据增长,如何既不删除数据,有缩小表体积,可以把记录转移到历史记录表逻辑删除1、即在表中添加一个字段(is_delet原创 2020-05-26 10:59:28 · 2260 阅读 · 0 评论 -
数据库设计:表主键用uuid还是数字
这里写目录标题UUID概念使用场景优点缺点自增长主键优点分布式式主键自动增长实现结论UUID概念UUID: 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名称重复问题。mysql查询uuidS原创 2020-05-26 10:45:50 · 2467 阅读 · 0 评论 -
application.properties和application.yml文件的区别
application.properties和application.yml文件的区别关于区别案例关于一般上来说,当我们创建一个SpringBoot项目时,IDE会默认帮我们创建一个application.properties配置文件。有些朋友习惯把.properties文件改成.yml文件。那么这两种文件类型有什么区别呢?区别1.内容格式比较:.properties文件,通过.来连接,通过=来赋值,结构上,没有分层的感觉,但比较直接。.yml文件,通过:来分层,结构上,有比较明显的层次感,最后转载 2020-05-21 23:53:00 · 340 阅读 · 0 评论