自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 ShardingSphere分库分表实战

MYSQL分库分表

2022-09-07 17:29:53 610 1

原创 Spring中AOP——日志增强处理

Aop日志增强处理-简洁明了

2022-08-01 14:23:39 536

原创 Java中树形(层次)结构数据库MySql设计方案(类似目录)

Java目录(层次)结构在数据库中如何去设计

2022-07-27 11:42:53 2085 1

原创 Java模拟并发带来的线程安全问题和解决方案(加锁)

线程安全,锁,分布式锁

2022-07-08 15:02:36 979

原创 Navicat自动生成SQL神器

背景:在阿里巴巴开发手册中是不建议进行select * 操作的,但是在一些业务中,我们需要select大量的字段,如果这个时候人工行为一个一个字段的去写,容易出错,可以使用navicat提供的工具,可视化操作生成SQL语句,根据自己下的需求小改一下。...

2022-04-29 09:11:01 2593

原创 使用EasyExcel实现Excel数据的导入导出

优雅的使用EasyExcel实现Excel数据的导入步骤:1.导入Excel依赖2.编写对应的Excel实体类(使用EasyExcel提供的注解)3.编写controller依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version&gt

2022-03-19 19:35:52 1842 2

原创 利用反射动态构造wrapper条件

续上篇说到的反射:链接,这篇文章主要讲解的是实战。目标: 利用反射动态的构造wrapper查询条件实现思路:1.首先定义一个注解,在Dto传输层对象属性上加上该注解2.利用反射获取实体类注解上的Field属性以及value,然后来构造wrapper下面一次创建了这个3个类UserDto //传输层对象QueryAnnotation //注解类 自定义ObjectToWrapperUtils //转换wrapper工具类 有对应注解说明实体类:package com.exa

2022-03-13 20:19:26 618

原创 前后端交互--时间格式处理

背景:现在前后端交互都是通过json格式来进行数据交互,在遇到时间转化的时候,会出现后端返回的是正常时间格式,但是到了前端却变成了时间戳这个问题(用的是fastJson),可以通过一个注解来帮忙处理这个问题。@JSONField(format = “yyyy-MM-dd HH:mm:ss”),在对应实体类上date类型加上对应注解,就可以规避掉这个问题拓展:@DateTimeFormat(pattern = “yyyy-MM-dd”)用来接收前端传递的字符串类型的时间,自动转换为Date类型(

2022-02-17 14:12:28 1960

原创 mybatis_plus拼接sql语句(使用mysql内置函数)

mysql有许多内置的函数提供给我们使用,如果使用mybatis_plus,我们不需要自己去xml文件中实现sql语句,但是又想用到mysql提供的内置函数,此时mybatis_plus提供了可以拼接sql语句的函数。TO_DAYS(ctime) mysql提供的内置函数查询当天的数据,也可以查询前1天的数据等等 @Test void contextLoads2() { EntityWrapper<User> userEntityWrapper = new

2022-02-14 14:08:02 6646

原创 springcloud(3)---Hystrix断路器使用

熔断和降级概念区分:服务熔断一般是某个服务(下游服务)故障引起(调用的微服务出现故障,预期定义一个方法来进行回应,而不是进行超时等待,针对的可能只是另外一个微服务某个接口),而服务降级一般是从整体负荷考虑(可以理解为直接把另外一个服务停掉,任何请求都无法到达另外一个微服务,预期定义一个返回方法);如果错误,欢迎及时纠正!!!1. 导入依赖2. 编写配置文件3. 主启动类加上注解支持4. 业务处理依赖 <dependency> <groupId&g

2022-02-09 21:37:09 594 1

原创 springcloud(2)---feign调用以及新版本ribbon处理

上篇文章讲到了eureka服务注册中心的搭建,这篇文章主要讲解如何进行feign调用,以及记录新版本springcloud(2021.0.0版本)中feign依赖的选择以及ribbon问题。依旧是三步走:1.导入依赖2.编写配置文件3.主启动类加上注解支持4.业务处理1. 导入依赖注意:新版本使用的是openfeign,同时摒弃掉了ribbon,改用了loadbalancer,所以需要在eureka-client依赖中剔除ribbion,同时加入loadbalancer依赖 <de

2022-02-08 22:35:29 1709

原创 springcoud(1)----eureka服务注册中心搭建

1.导入 依赖建议直接使用idea导入依赖2.编写yml文件server: port: 9001eureka: instance: ip-address: true # 以ip形式进行注册 lease-expiration-duration-in-seconds: 90 # 至少90s发送一次心跳给我 lease-renewal-interval-in-seconds: 30 # 设置30s就发送一次心跳 client: registe

2022-02-03 21:11:20 208

原创 阿里云STMP实现邮件发送

前置条件:邮件推送 是一款简单高效的电子邮件发送服务,它构建在可靠稳定的阿里云基础之上,帮助您快速、精准地实现事务邮件、通知邮件和批量邮件的发送。1.域名2.stmp邮件发送地址以及密码具体怎么获取可以参考阿里开发者社区,写得很详细。传送门工具类:package com.cz.untils;import lombok.extern.slf4j.Slf4j;import javax.mail.*;import javax.mail.internet.InternetAddress;

2022-01-21 17:12:04 1552

原创 java如何获取当前登录的用户(通过token)

只需要使用一个方法,即可获取token,解析出来是哪个用户即可 //获取当前登录用户的token 可以通过这个 public static HttpServletRequest getHttpServletRequest() { return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); }//拿到token进行解析,拿到当前登录用户信息 返回即可

2022-01-18 17:47:59 7249 6

原创 利用反射获取注解值以及实体类值

如何定义注解?注解的基本代码package com.example.boot_test.annotaion;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target; /** * @Date 2022/1/17 21:32 * @Descrip

2022-01-17 23:45:45 452 1

原创 优雅的生成curl命令,自动生成参数

使用postman可以快速生成对应接口的curl,非常方便

2022-01-14 17:05:50 1498

原创 java.util.ConcurrentModificationException(并发修改异常)

List中进行remove操作报并发修改异常1.为什么会出现下面这个问题?从上面的异常信息就可以看出,抛出的异常是并发修改异常,根据报错信息点进去查看源码这里俩个值比较关键:modCount: 修改次数expectedModCount: 期望修改的次数当我们对list集合进行remove操作的时候 ,modCountd 值会进行加一上面的例子当中,我们使用的是for循环进行遍历,增强for循环他的底层使用的是迭代器,在进行remove的时候,expectedModCount的值并不会

2021-12-25 15:38:27 208

原创 Linux管理工具之宝塔

宝塔

2021-12-19 21:44:53 687

原创 Mybatis_Plus用法(二)

一: 导入依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>2.2.0</version></dependency>二.Dao层需要加上@Mapper注解package com.cz.dao;i

2021-12-04 16:54:05 1263

原创 字符串反转

字符串反转public class test { public static void main(String[] args) { System.out.println(new test().reverse("hello")); System.out.println(new test().reverseAppend("hello")); } public String reverse(String str){ StringBu

2021-11-18 11:01:46 197

原创 XXL-JOB分布式定时框架

什么是xxl-job?官网文档:https://www.xuxueli.com/xxl-job/XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。该项目是开源的,直接使用gitee拉取下来即可https://github.com/xuxueli/xxl-job http://gitee.com/xuxueli0323/xxl-job 项目结构目录...

2021-09-06 19:53:41 405

原创 什么是网关?有什么用?

今天这篇博客主要是记录一下在工作中所遇到的关于网关的问题前景:我们公司所在的项目是在内网中进行的,当我同时插上公司网线以及连接上wifi的时候,发现内网的请求全部都走不通了,无法请求,原因就在于:我对内网的请求都走了wifi的网关,才会出现无法访问这个情况,应该让他转发到我网线对应的这个网关来。到底什么是网关?简单来说,就是不同网段,是无法直接进行通信的,得通过网关这个中间人来传达信息。只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信网关(Gateway)又称网间连

2021-09-06 14:29:04 1308

原创 mybatis中#和$的区别,sql注入问题

mybatis中#和$的区别推荐能使用#就不要使用 $#{ }1.相当于JDBC中的PreparedStatement ,是经过预编译的,安全2.会为参数自动拼接引号3.执行sql效果select * from user where uid="1" and username="cathy"${ }1.相当于JDBC中的Statement ,未经过预编译,非安全,存在sql注入危险2.并不会给参数自动拼接引号3.执行sql效果select * from user where uid

2021-08-26 15:20:01 188

原创 springboot实现一个简单的定时任务

代码比较简单,但是需要看得懂日期规则,在实际业务中根据自己的需求去进行扩展,同个道理package com.cz.config;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.annotation.EnableScheduling;import org.springframework.scheduling.annotation.Scheduled;/

2021-08-24 15:07:38 133

原创 springboot整合阿里云Oss文件服务器实现上传下载

1.登录阿里云官网获取四样东西阿里云官网:https://oss.console.aliyun.com/ //不明白具体怎么操作的百度 endpoint accessKeyId accessKeySecret bucket2.代码实现2.1 导入依赖 <dependency> <groupId>org.springframework.boot</groupId>

2021-08-23 19:20:37 550

原创 五分钟入门入门JWT

JWT入门级教程传统的session实现方式1.随着平台用户增多,存储在服务器上面的session的越多,会占用服务器资源,用户量大,会导致频繁出发GC(可以设置过期时间)2.限制了扩展性,session是保存在服务器上面的,那对于分布式服务,就意味着他只能从这台机器中获取。(当然你可以用redis存储session,但是会导致服务器开销,用token的话 可以完美解决这个问题)3.session是基于cookie来确定用户的身份的,但cookie容易被截取,跨站请求的伪造攻击(攻击者盗用了你的身

2021-08-19 16:27:13 141

原创 后端如何接受前端传过来的Json数据

后端如何接受前端传过来的Json数据这里只讲解一些最常用的,最好用的方式对于参数较少的,我们可以使用@RequestParam @RequestMapping("/testJson2") @ResponseBody public String testJson2(@RequestParam String username,@RequestParam String password){ System.out.println(username);//hahah

2021-07-10 15:23:20 6187

原创 Https协议和Http协议

1.什么是Https协议和Http协议Https全称就是Hyper Text Transfer Protocol over SecureSocket LayerHttp是一种在因特网上传输数据的协议,当我们在上网时,大多数都是使用Http协议,但这个协议它是不安全的。而 Https协议是安全的。2.Http不安全的原因1.使用明文进传输,没有加密功能2.不会验证通信双方的身份信息。任何客户端都可以去访问服务器(不知道你是哪里来的)3.无法证明报文的完整性,可能存在被篡改的危险。(使用数字签名

2021-05-28 11:07:19 195

原创 HashMap和HashTable区别

1.同步问题HashMap它不是线程安全的 。HashTable是线程安全的 他给每个方法上都加了synchronize关键字 所以效率会比较低2.继承的父类不同HashMap继承的父类是 AbstractMapHashTable继承的父类是 Dictinary3.键值区别HashMap 他的key和value都可以是null值;而HashTable的 key和value不能为空值,空值,直接就抛除异常了左边是HashMap 右边是HashTable4.初始容量和初始化方

2021-05-12 22:57:13 73

原创 类加载机制

类加载机制其实主要分为5个过程,就是1.加载 2.验证 3.准备 4.解析 5.初始化加载: 就是将我们的class文件转化为二进制流,将字节流所代表的静态存储结构转换为方法区的运行时数据结构。验证: 确保这个类的信息是正确的准备: 准备阶段是正式为类的静态变量分配内存并设置类变量初始值的阶段,这些内存都将在方法区中分配。其中需要注意的是这时候进行内存分配的仅包括类变量(static),而不包括实例变量,实例变量会在对象实例化时随着对象一块分配在 Java 堆中。解析:解析阶段是

2021-05-12 17:33:55 44

原创 同步&异步&阻塞&非阻塞

1.到底什么是同步&异步&阻塞&非阻塞?同步异步关注的是消息通信机制例子:一个人要烧开一壶水,有很多种方式这个人开火烧水,还得这个人本人监督着直到水烧开,这是同步 (等待完还是由你来处理,同个人)这个人把水放在水上烧,水烧开后不一定由这个人处理,这叫**异步 **(水最终不一定是你来处理,一般异步的都是非阻塞的,不同人)阻塞非阻塞关注的是等待消息时的状态例子:这个人在等水烧开的过程中什么事情都不干,就等着水烧开,这叫阻塞如果这个人还去做其他的事情,这叫做非阻塞

2021-04-26 15:42:41 68

原创 springboot邮件发送--文本发送

1.导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>2.编写配置文件获取授权码的链接(QQ邮箱)https://www.how234.com/enmyrrbjjb.html#

2021-04-20 22:16:51 129 1

原创 springboot整合multiPartFile实现文件上传

简单的文件上传1.引入我们的multiPartFile依赖 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version> </dependency>

2021-04-20 16:37:07 913

原创 springboot整合shiro出现subject.getPrincipal(); 为null的解决方案

出现这个问题的主要原因就是你在进行登录认证的时候,没有把实体类信息封装返回。代码如下,将实体类user返回就行了 return new SimpleAuthenticationInfo(user, userToken.getPassword(), "");

2021-04-19 09:29:32 2670 4

原创 Layui表格重载传参的问题

在项目中的用到了layui的数据表格,需要实现一个重载功能,类似这样的搜索功能官方代码 //执行重载 table.reload('testReload', { page: { curr: 1 //重新从第 1 页开始 } ,where: { key{

2021-03-17 17:32:53 1259

原创 Idea导入eclipse中的web项目访问总是出现404解决方案

首先一个最主要的地方 主要就是错在这里打开我们的项目配置结构导入项目时 它默认选择的是web目录下的 一定要把它改成webcontent目录下的当然idea导入web项目 还需要配置tomcat 这些基本的这里就不在多说 还有一点就是导入web项目添加一下框架支持 不然那个artifact会识别不了 右键 添加框架支持 然后添加web支持就行了最后一点就是web项目导入到idea中 它是不会自动去加载那个servlet包的 需要自己手动去添加...

2021-03-14 18:08:51 1176

原创 经典面试题:为什么重写equals就必须重写hashCode?

我们先来看看原生的(Object)中的equals和hashcode方法是什么样的 hashcode:是根据内存地址的值换算出来的一个值 equals: 是根据对象内存地址值来进行比较的为什么需要重写equals和hashCode方法?在我们的业务系统中判断对象时有时候需要的不是一种严格意义上的相等,而是一种业务上的对象相等。在这种情况下,原生的equals方法就不能满足我们的需求了。例子:我现在有一个需求 要比较俩个学生的是否相等;但是在业务上 我想要的是 如果他们的名字相

2021-02-05 15:06:22 402

原创 Layui分页前后端代码实现

前端layui中需要开启page属性page: true 开启分页limit:8 就是你每个页面需要显示的条数 //表格 table.render({ elem: '#test' ,url:'http://localhost:8080/data' ,toolbar: '#toolbarDemo' //开启头部工具栏,并为其绑定左侧模板 ,defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图

2020-12-23 23:39:16 1241 1

原创 springboot整合thyemleaf,PageHelper实现分页

springboot整合thyemleaf,PageHelper实现分页第一步 导入依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.2</version> &l

2020-12-17 19:21:04 257

原创 前后端分离项目解决跨域问题

针对springboot项目我们只需要在配置类中实现以下代码 就能解决跨域问题@Configurationpublic class CorsConfig extends WebMvcConfigurationSupport { @Override protected void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigi.

2020-12-16 18:49:44 137

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除