- 博客(62)
- 资源 (10)
- 收藏
- 关注
原创 程序包javax.validation不存在的报错处理
已经在common中导入了spring-boot-starter-validation的依赖,右侧maven可以看到确实存在2.3.2.RELEASE版本,但是product项目中的版本为2.7.1,版本不一致。问题其他依赖了common的项目中spring-boot-starter-validation的版本都是2.7.1的!可以看到2.7.1版本的已经被忽略了,版本统一到2.3.2.RELEASE。解决方案尝试了clean后再启动不管用……...
2022-07-27 18:17:25
6374
3
原创 使用JWT生成与解析Token
Jwt全称是:json web token。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证。token的用处:当用户第一次登陆后,用户名密码验证成功后,服务器会生成一个token,把token返回到客户端,一般token都是储存在浏览器的localStorage 或 cookies中,存在localStorage的token需要通过js,将token添加到http请求头中,下次再访问服务器,就不需要用户名密码了,只要带上toke
2022-04-20 21:45:10
6354
原创 通过实现参数解析器HandlerMethodArgumentResolver接口来自定义注解
HandlerMethodArgumentResolver类似于拦截器,是一个参数解析器,我们可以通过写一个类实现HandlerMethodArgumentResolver接口来实现对Controller层中方法参数的修改自定义解析器需要实现HandlerMethodArgumentResolver接口,HandlerMethodArgumentResolver接口包含两个接口函数:当supportsParameter返回True时,才会调用resolveArgument。实例:声明自定义的注解(
2022-04-20 17:16:14
419
1
原创 HashMap和ConcurrentHashMap在jdk1.7和1.8下结构和put、get实现方法小结
HashMapHashMap 底层是基于 数组 + 链表 组成的,不过在 jdk1.7 和 1.8 中具体实现稍有不同。jdk1.7中的结构:1.7中的实现:这是 HashMap 中比较核心的几个成员变量;看看分别是什么意思?初始化桶大小,因为底层是数组,所以这是数组默认的大小。桶最大值。默认的负载因子(0.75)table 真正存放数据的数组。Map 存放数量的大小。桶大小,可在初始化时显式指定。负载因子,可在初始化时显式指定。给定的默认容量为 16,负载因子为 0.75。
2022-04-19 19:49:38
540
原创 ObjectMapper.readTree()和JsonNode.get()的结合使用
渐次反序列化该方法可以只将用户感兴趣的Json串信息值提取出来。主要利用ObjectMapper提供的readTree和Jackson提供的JsonNode类来实现。String test = "{"results":[{"objectID":357,"geoPoints":[{"x":504604.59802246094,"y":305569.9150390625}]},{"objectID":358,"geoPoints":[{"x":504602.2680053711,"y":305554
2022-03-31 22:04:04
2818
原创 <template slot-scope=“scope“>含义
slot-scope=“scope” 的scope是el 生成的一个对象,里面不仅包含了那一行的数据row, 还包含了一些其他有用的属性。通过scope.row.data,我们就可以读取到每一行中的data。
2022-03-31 11:40:53
2679
原创 数据库的事务隔离级别
当多个事务同时操作一条数据时会产生一些问题,此时可以通过设置隔离级别来解决。存在的问题如下:脏读:一个事务读取到了另一个事务中尚未提交的数据不可重复读:一个事务中两次读取的数据内容不一致,要求的是一个事务中多次读取时数据是一致的,这是事务update时引发的问题幻读:一个事务中两次读取的数据的数量不一致,要求在一个事务多次读取的数据的数量是一致的,这是insert或delete时引发的问题四种隔离级别:读未提交 read uncommitted 不可解决上述问题读已提交 read commit
2022-03-16 17:35:37
748
1
原创 MyBatis中的TypeHandler类型转换器说明和使用
TypeHandler是类型转换器,在mybatis中用于实现java类型和JDBC类型的相互转换。java类型->jdbc类型:mybatis使用prepareStatement来进行参数设置的时候,需要通过typeHandler将传入的java参数设置成合适的jdbc类型参数,这个过程实际上是通过调用PrepareStatement不同的set方法实现的;jdbc类型->java类型:在获取结果返回之后,也需要将返回的结果转换成我们需要的java类型,这时候是通过调用ResultSet对
2022-03-15 17:34:07
1270
原创 Mysql中groupBy的含义和使用
<select id="statGoods" resultType="map"> select substr(add_time,1, 10) as day, count(distinct order_id) as orders, sum(number) as products, sum(number*price) as amount from litemall_order_goods group by substr(add_time,1,
2022-03-14 21:38:50
910
原创 @RequiresPermissions注解的使用
@RequiresPermissions是shiro的常用注解,用于获取权限实例:@RequiresPermissions{“xxx1:xxx2:xxx3”} 执行这个方法会判断用户有没有相应的权限 会在某个地方进行配置,比如controller层其xxx1/xxx2/xxx3的url路径访问相应资源就可以正常访问。...
2022-03-12 21:42:27
13832
原创 Mybatis逆向工程的基本使用步骤以及generatorConfig.xml的配置说明
Mybatis逆向工程生成mapper、domain和*.xml的方法先在pom.xml中导入mybatis-generator的坐标,并直接指定generatorConfig.xml的位置在generatorConfig.xml中配置mapper、domain和*.xml的位置,并指定要进行逆向工程的数据表直接在maven的插件中点击generator-mybatis进行生成查看生成的mapper、domain和*.xml...
2022-03-02 21:21:02
1965
原创 springboot中yml文件的一些属性以及标签 dependencies和dependencyManagement的区别
使用springboot自带的压缩设置server: compression: enabled: true min-response-size: 2048 mime-types: application/javascript,text/css,application/json,application/xml,text/html,text/xml,text/plainenabled:表示是否开启压缩,默认false,true:开启,false:不开启min-respon.
2022-03-02 21:13:28
1146
原创 记录部署开源项目Litemall商城的步骤及遇到的问题和解决方法
1. 在Navicat中导入给定的sql文件,建立起对应的数据库可直接在Navicat中直接右键运行sql文件,但是遇到了两个问题:①提示文件sql语句中有语法错误:Error:your MySQL server version for the right syntax to use near ')'at line 1,提示的位置是进行用户创建时发生错误解决方法是打开sql文件复制sql语句注释掉直接运行 drop database if exists litemall; -- drop user
2022-03-01 20:35:45
3747
1
原创 部署项目时的报错Syntax Error: Error: Node Sass version 7.0.1 is incompatible with ^4.0.0
部署项目具体步骤:开源项目部署Litemall商城在本地启动前端商城页面时,最后一步cnpm run dev后报了版本不兼容的问题:Syntax Error: Error: Node Sass version 7.0.1 is incompatible with ^4.0.0搞了好久,终于在Node Sass 7.0.1 版与 ^4.0.0 不兼容这篇文章中找到了思路,文中提供了三个步骤:1、npm uninstall node-sass;2、npm i -D sass;3、npm run d
2022-03-01 20:04:46
2762
原创 SpringBoot整合Redis的步骤
导坐标配置Redis相关配置信息使用RedisTemplate提供的API使用下方的StringRedisTemplate更常用,因为这样的操作和直接在Redis客户端操作是等价的
2022-02-27 11:12:38
546
原创 SpringBoot的中使用Bean的属性校验
bean的属性校验 <!--1.导入JSR303规范--> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> </dependency> <!--2.使用hibernate框架提供的校验器做实现
2022-02-26 19:48:51
320
原创 SpringBoot热部署相关知识
加入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId></dependency>Build Project(手动部署)自动部署设置里选上Build Project automatically快捷键Ctrl+Alt+Shift+/后点Registry.
2022-02-26 16:28:21
172
原创 SpringBoot的多环境开发以及常见配置方法
多环境开发yaml版——多环境全都写在单个配置文件内spring: profiles: active: pro #设置为应用生产环境 ---#生产环境spring: config: activate: on-profile: proserver: port: 80 ---#开发环境spring: config: activate: on-profile: devserver: port: 81 ---#测试环境spring: config:
2022-02-26 11:11:03
811
原创 Ubuntu运行打包好的jar项目程序包
直接运行的方法和在windows一样,直接使用即可(一般不用,会占用控制台)java -jar soringboot_08_ssmp-0.0.1-SNAPSHOT.jarUbuntu后台运行jar程序包(常用):nohup java -jar soringboot_08_ssmp-0.0.1-SNAPSHOT.jar > server.log 2>&1关闭此程序的方法时找到对应的进程pid然后杀死即可:找pid:ps -ef | grep "java -jar"杀进程:k
2022-02-25 20:17:47
2462
原创 windows端口被占用的处理方法
查询端口netstat -ano查询指定端口(可以找到pid)netstat -ano | findstr “端口号”根据进程PID查询进程名称tasklist | findstr “进程PID号”根据PID杀死任务(常用)taskkill -f -pid “进程PID号”根据进程名称杀死任务(名称可能重复)taskkill -f -t -im “进程名称”...
2022-02-25 16:29:45
662
原创 Mybatis-plus的分页功能
主要分为两步:配置分页拦截器首先要定义一个配置类(需要注解@Configuration),在其中再写对应的Mp拦截器(需要注解@Bean),在Mp拦截其中添加具体的分页拦截器即可。@Configurationpublic class MpConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor(){ //定义Mp拦截器 MybatisPlusInterceptor in
2022-02-23 11:05:44
793
原创 springboot——yaml的数据读取
最常用的yaml的数据读取分为三步:在yml中定义数据定义相应的类,需要注解@Component加入到Spring容器中和注解@ConfigurationProperties指定要封装的数据调用时直接使用注解@Aurowire进行注入
2022-02-22 12:18:15
1066
原创 restful风格小结——@RestController、 @ResponseBody、@GetMapping、
restful风格@RestController相当于@ResponseBody + @Controller合在一起的作用。返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面。@ResponseBody——@ResponseBody这个注解通常使用在控制层(controller)的方法上。将方法的返回值,以特定的格式写入到response的body区域,进而将数据返
2022-02-22 11:47:33
1135
原创 SpringBoot的pom.xml中parent和starter的区别
starter:是一个依赖包,定义了当前项目使用的所有依赖坐标,以达到减少依赖配置的目的。在dependency标签下,本质是依赖。parent:所有SpringBoot项目要继承的项目,定义了若干个坐标版本号进行依赖管理,以达到减少依赖冲突的目的。在parent标签下并不是依赖。...
2022-02-21 17:28:15
488
原创 Mybatis-plus使用Active Record
ActiveRecord也属于ORM(对象关系映射)层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简洁易懂。ActiveRecord的主要思想是:每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field;ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD;;Activ
2022-02-18 17:56:02
657
原创 MyBatis-plus的基本使用方法-Mapper直接继承BaseMapper
MyBatis-plus的基本使用方法编写User实体对象:(这里使用依赖lombok进行了进化bean操作)package cn.itcast.simple.pojo;import com.baomidou.mybatisplus.annotation.TableName;import com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl;import lombok.AllArgsConstructor;import lo
2022-02-18 17:50:16
10740
1
原创 maven项目编写相应的配置文件——sqlMapConfig.xml、AccountMapper.xml、applicationContext.xml、spring-mvc.xml、web.xml
配置sqlMapConfig核心配置文件和Mapper映射文件sqlMapConfig.xml:配置数据库的环境定义别名加载映射文件<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><!--核心文件,主要.
2022-02-13 23:24:24
1087
原创 MyBatis的多表查询和封装操作
目标:查询user表里所有的用户时也要将order表里的每个用户的所有订单信息与相应的用户信息进行封装(一个用户可能有多个order信息,这里的是一对多的关系)首先在user表里添加order集合,用于封装查询到的订单信息在UserMapper.xml中编写对应接口findAll()中的sql语句一对一:resultMap标签一对多/多对多:resultMap+collection标签在对数据进行额外封装时使用到resultMap进行封装:根据User对象(共四个变量)进行封装,分为
2022-02-11 17:08:38
1552
原创 分页助手PageHelper的使用
导入Page Helper坐标需要导入两个坐标:pagehelper和jsqlparser在核心配置文件中配置核心文件测试分页数据的获取
2022-02-10 13:38:46
255
原创 MyBatis基础开发和代理开发方式
添加MyBatis的坐标在pom.xml文件中加坐标<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.32</version></dependency><dependency> <groupId>org.mybatis..
2022-02-08 19:16:52
976
原创 Spring的事务控制——编程式事务控制和声明式事务控制
编程式事务控制相关对象三大控制对象:平台事务管理器事务定义事务状态平台事务管理器需要自己指定,事务定义也得指定各种参数(隔离级别、传播行为、超时时间、是否只读)数据库事务的四大隔离级别:读未提交、读已提交、可重复读、串行化基于xml的声明式事务控制基于注解的声明式事务控制...
2022-02-03 21:17:18
498
原创 Spring的AOP技术小结——基于xml和基于注解的两种方式
AOP简介重点概念:Pointcut(切入点):被增强的方法Advice(通知/增强):封装增强业务逻辑的方法Aspect(切面):切点+通知Weaving(织入):将切点与通知结合的过程基于xml的AOP开发:步骤如下:1、导入AOP的相关坐标:aspectjweaver2、创建目标接口和目标类,即切点(被增强的方法)3、创建切面类(内部由增强方法即通知)4、在applicationContext.xml中配置目标对象和切面对象5、在applicationConte
2022-02-02 21:47:16
1136
原创 SpringMVC异常处理的两种方法
SpringMVC异常处理的两种方法配置简单异常处理器SimpleMappingExceptionResolver在spring-mvc.xml中配置SimpleMappingExceptionResolver,如图所示,只是将各个异常映射到指定的jsp页面自定义异常处理创建异常处理器类,实现HandlerExceptionResolver在类中自定义所做操作,设置ModelAndView最后跳转页面只需在spring-mvc.xml中配置一下自定义的异常处理器...
2022-02-01 16:26:39
291
原创 spring项目需要配置的内容
applicationContext.xml主要是进行jdbcTemplate的配置,需要引入的文件有jdbc.properties,进行文件内容的抽取<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml
2022-01-27 17:01:05
241
原创 正则化的基本思路
正则化的目的:防止过拟合,使得拟合后的曲线尽可能的平滑(smooth)实现正则化的方法:在Loss Function后加上wi的平方和即正则项。原因:输入xi变化时权重wi越小则输出受到的影响就越小。
2022-01-18 19:31:51
496
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人