自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java处理ppt方案详解

需要系统中展示的ppt案例有一个动态展示的效果,也就是要有动画的交互,要求支持浏览器直接打开预览。

2024-02-02 10:04:05 1208

原创 使用poi将pptx文件转为图片详解

前端需要上传pptx文件,后端保存为图片,并将图片地址保存数据库,最后大屏展示时显示之前上传的pptx的图片。需求看上去是简单的,简单聊一下,不管是使用vue的elementui还是传统的layui都有很好的实现组件,这里我们重点不在前端,所以不去细说,感兴趣的同学可以了解一下。

2023-12-26 15:04:45 1381 1

原创 在spring boot项目引入mybatis plus后的的案例实践

主要就是先继承一个ServiceImpl,然后实现一个IService,就完成了,当然了,如果说是项目分层比较严格的,可以把接口和实现分开写,就是你的接口去继承IService,然后你的实现去继承自己的接口,中间有一个中间人的意思,这个也是程序设计的原则之一、依赖倒置原则。当我在尝试使用较早一些的稳定版本的时候,发现了mybatis和mybatis plus包出现了冲突的情况,然后切换了高版本的,问题解决。

2023-12-20 16:05:00 1578

原创 垃圾收费站

编码方式:x-www-form-urlencoded将表单内的数据转换为键值对,如name=java&age=23,而form-data则将表单数据处理为一条消息,以标签为单元,用分隔符分开,既可以上传键值对,也可以上传文件。// 输出图片文件路径。反复调试了一下,确定是前端传完,后端接收时就出现的问题,猜想会不会是form-data这个传参方式不对,改成了x-www-form-urlencoded,就不会有了。访问的时候出现了问题,后端接收到的数组多出了一层中括号,也就是被两层中括号包裹,

2023-10-26 11:21:44 516

原创 设计模式详解之单例模式

单例详解

2023-10-25 14:21:07 558

原创 实际项目中如何进行问题排查

这个功能真的很方便,比起重启带来的代价,真的是不可比的。比如,重启时可能导致负载重分配,选主等等问题,就不是你能控制的了。如上,是直接更改线上代码的方式,但是一般好像是编译不成功的。场景:我找到了问题所在,能否线上直接修改测试,而不需要在本地改了代码后,重新打包部署,然后重启观察效果?场景:我新修改的内容在方法内部,而上一个步骤只能看到方法,这时候可以反编译看下源码。场景:我新写了一个类或者一个方法,我想知道新写的代码是否被部署了?场景:我想看下我新加的方法在线运行的参数和返回值?

2023-10-19 15:59:48 105

原创 JQuery、JSON、AJAX、XML、IO流、多线程、反射核心知识点详解

JQuery、JSON、AJAX、XML、IO流、多线程、反射随笔,查漏补缺用

2023-10-11 16:38:09 1119

原创 javaweb知识点总览(*代表重点掌握)

一份涵盖javaweb所有知识点的笔记,建议查漏补缺,收藏

2023-10-11 16:31:12 243

原创 常用的git指令

git的常用指令

2023-10-11 16:20:38 173

原创 oracle入门笔记四

oracle入门笔记四

2023-10-11 16:18:46 478

原创 oracle入门笔记三

oracle入门笔记三

2023-10-11 16:18:10 271

原创 oracle入门笔记二

oracle入门笔记二

2023-10-11 16:17:06 245

原创 oracle入门笔记一

oracle笔记一

2023-10-11 16:13:07 338

原创 服务器上部署python脚本

8../configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl –with-openssl-9.rpath=auto 标粗的这个一定别漏了。1.wget https://www.openssl.org/source/openssl-1.1.1n.tar.gz --no-check-certificate 下载openssl1.1.1。2.tar -zxf openssl-1.1.1n.tar.gz 解压。

2023-10-09 14:46:46 1069

原创 Spring Cloud详解

微服务架构的提出者:马丁福勒简而言之,微服务架构样式[1]是一种将单个应用程序开发为一组小服务的方法,每个小服务都在自己的进程中运行并与轻量级机制(通常是HTTP资源API)进行通信。这些服务围绕业务功能构建,并且可以由全自动部署机制独立部署。这些服务的集中管理几乎没有,它可以用不同的编程语言编写并使用不同的数据存储技术。1、 微服务架构只是一个样式,一个风格。2、 将一个完成的项目,拆分成多个模块去分别开发。3、 每一个模块都是单独的运行在自己的容器中。4、 每一个模块都是需要相互通讯的。

2023-08-29 09:35:09 6695 1

原创 异步servlet

先来说说什么是非异步 Servlet。在 Servlet3.0 之前,Servlet 采用 Thread-Per-Request 的方式处理 Http 请求,即每一次请求都是由某一个线程从头到尾负责处理。如果一个请求需要进行 IO 操作,比如访问数据库、调用第三方服务接口等,那么其所对应的线程将同步地等待 IO 操作完成, 而 IO 操作是非常慢的,所以此时的线程并不能及时地释放回线程池以供后续使用,如果并发量很大的话,那肯定会造性能问题。

2023-08-29 09:13:29 270

原创 nacos服务器启动报错集合

开启鉴权之后,你可以自定义用于生成JWT令牌的密钥,application.properties中的配置信息为: 解决办法:查看数据库连接配置即可

2023-08-28 15:47:23 1244

原创 本地镜像管理

用户可以通过命令查看本地所有镜像,如下:仓库名称,仓库一般用来存放同一类型的镜像。仓库的名称由其创建者指定。如果没有指定则为。一般来说,仓库名称有如下几种不同的形式。[namespace\ubuntu]:这种仓库名称由命名空间和实际的仓库名组成,中间通过隔开。

2023-08-25 09:41:15 125

原创 容器的基本操作

docker中的容器就是一个轻量级的虚拟机,是镜像运行起来的一个状态,本文就先来看看容器的基本操作。

2023-08-25 09:30:13 217

原创 docker和虚拟机的区别

docker 解决了哪些痛点:简化环境管理传统的软件开发与发布环境复杂,配置繁琐,经常有读者在微信上问:我的代码开发环境可以运行,一旦部署到服务器上就运行不了了。这个问题很常见,也确实很烦人,但是问题总要解决,开发环境、测试环境、生产环境,每个环节都有可能出现这样那样的问题,如果能够在各个环境中实现一键部署,就会方便很多,例如一键安装 linux 、一键安装 mysql、一键安装 nginx 等,docker 彻底解决了这个问题。虚拟化更加轻量级。

2023-08-25 09:23:10 91

原创 linux入门详解

在Linux操作系统出现之前,还有一个操作系统叫做Minix,Minix操作系统是由Andrew的大学教授研发出来的,当时大学教授是为了给学生上课,买了一套Unix操作系统,参考Unix自己写了一个操作系统,并且命名为Minix。同时将Minix开源,供学校内部的研究和教学,到了2000年,Andrew将Minix操作系统完全对外开源。Minix由于完全对外开源之后,在互联网上迅速的传播,但是大家在使用时,发展Minix不时很完美,内部存在各种各样问题。

2023-08-25 09:18:45 108

原创 Spring Boot简介

SpringBoot是由Pivotal团队研发的,SpringBoot并不是一门新技术,只是将之前常用的Spring,SpringMVC,data-jpa等常用的框架封装到了一起,帮助你隐藏这些框架的整合细节,实现敏捷开发。SpringBoot就是一个工具集。SpringBoot项目不需要模板化的配置。SpringBoot中整合第三方框架时,只需要导入相应的starter依赖包,就自动整合了。

2023-08-25 09:04:12 90

原创 Mybatis-Plus详解

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。官网:https://mybatis.plus/ 或 https://mp.baomidou.com/[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dob6W9Zf-1692866307335)(Pictures/1556243079102.png)]文档地址:https://mybatis.plus/guide/源码地址:htt

2023-08-24 16:42:07 267

原创 Spring MVC详解

/set getpublic String addUser(@RequestBody User user){//@RequestBody将请求体中的json数据转换为java对象@JsonSerialize(using = MySerializer.class) // 使用MySerializer输出某属性//在输出此属性时,使用MySerializer输出....get/set则输出json时:{"id":xx,"name":"xxx","salary":10000.13}

2023-08-24 16:24:25 1770

原创 Spring IOC详解

这个注解表示当前类是一个配置类,那么当前类中,所有添加了 @Bean 注解的方法都会被注册到 Spring 容器中,如果有其他方法调用到一个添加了 @Bean 注解的方法,那么不会立马执行对应的方法,而是先去 Spring 容器中查看是否有对应的对象,如果有,则直接从容器中获取即可,如果容器中没有的话,才回去执行对应的方法。默认情况下,如果我们向 Spring 容器注入一个 Bean 的时候,不指定构造方法,那么默认使用的构造方法就是无参构造方法,所以如果你的类里边没有无参构造方法,就会出错。

2023-08-24 16:17:23 240

原创 Spring AOP详解

注意,这个地方虽然我们用 CalculatorImpl 类型接收的 Spring 容器中的 Bean,但实际上返回的对象并不是 CalculatorImpl 本身,而是它的子类的实例,此时使用的动态代理是 CGLIB动态代理。在项目运行的时候,在不改变已有代码的情况下,自动的向方法中添加新的功能。通过修改该属性,可以在有接口的情况下,也是用 CGLIB 动态代理。此时,由于被代理的对象有接口,所以就会使用 JDK 动态代理。AOP 的本质实际上就是动态代理。

2023-08-24 16:15:56 371

原创 Spring详解

*** 定义bean后处理器* 作用:在bean的创建之后,进行再加工*//*** 在bean的init方法之前执行* @param bean 原始的bean对象* @return*/System.out.println("后处理器 在init之前执行~~~"+bean.getClass());/*** 在bean的init方法之后执行* @param bean postProcessBeforeInitialization返回的bean。

2023-08-24 16:13:05 548

原创 Maven详解

AntMavenGradleMaven这个单词来自于意第绪语(犹太语),意为知识的积累.Maven是一个基于项目对象模型(POM)的概念的纯java开发的开源的项目管理工具。主要用来管理java项目,进行依赖管理(jar包依赖管理)和项目构建(项目编译、打包、测试、部署)。此外还能分模块开发,提高开发效率。Maven生命周期定义了各个构建环节的执行顺序,有了这个清单,Maven就可以自动化的执行构建命令了。Clean Lifecycle在进行真正的构建之前进行一些清理工作。

2023-08-24 16:04:02 962

原创 JSP详解

JSTL:全称Java Server Pages Standard Tag LibraryJSP标准标签库(JSTL)是一个JSP标签集合。

2023-08-24 15:53:16 247

原创 jQuery详解

jQuery是一个快速、简洁的JavaScript代码库。jQuery设计的宗旨是“Write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript操作方式,优化HTML文档操作、事件处理、动画设计和Ajax交互。CDN的全称是Content Delivery Network,即内容分发网络, 使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。

2023-08-24 15:47:52 2979

原创 servlet详解

浏览器能够解析的文件:HTML、CSS、JS,图片、文本文档等网页模板:JSP、Freemarker、Thymeleaf…对于 jsp、freemarker 这样的模板文件,浏览器无法展示出来注意:修改端口号需要重新启动Tomcat才能生效2.6 项目部署及访问静态资源2.6.1 创建项目2.6.2 URL访问资源经验:URL主要有4部分组成:协议、主机、端口、资源路径URL组成2.6.3 Tomcat响应流程图请求响应流程图

2023-08-24 15:04:55 186

原创 JDBC详解

JDBC(Java Database Connectivity) Java 连接数据库的规范(标准),可以使用 Java 语言连接数据库完成 CRUD 操作。用户输入的数据中有 SQL 关键字或语法并且参与了 SQL 语句的编译,导致 SQL 语句编译后的条件含义为 true,一直得到正确的结果。这种现象称为 SQL 注入。代表用户完成的一个业务功能,可以由一个或多个DAO的调用组成。(软件所提供的一个功能都叫业务)。service 层核心思想命名:XXXView职责:收集用户的数据和需求、展示数据。

2023-08-23 10:33:03 375

原创 JUC--CompletableFuture

比如主线程让一个子线程去执行任务,子线程可能比较耗时,启动子线程开始执行任务后,主线程就去做其他事情了,忙其他事情或者先执行完,过了一会才去获取子任务的执行结果或变更任务状态。Future接口(FutureTask实现类)定义了操作异步任务执行一些方法,如获取异步任务的执行结果,取消任务带带执行,判断任务是否被取消,判断任务执行是否完毕等。CompletableFuture通用:它是Future的功能增强版,减少阻塞和轮询,可以传入回调对象,当异步任务完成或者发生异常时,自动调用回调对象的回调方法。

2023-07-05 13:32:49 208

原创 JUC--多线程-用户线程-守护线程

管程:Monitor(监视器),也就是我们平时所说的锁,其实是一种同步机制,他的义务是保证(同一时间)只有一个线程可以访问被保护的的数据和代码。并发:在同一实体上的多个事件,是在一台处理器上“同时”处理多个任务,同一时刻,其实是只有一个事件在发生。并行:在不同实体上的多个事件,是在多台处理器上同时处理多个任务,同一时刻,大家真的都在做事情,各做各的。进程:简单的说,在系统中运行一个应用程序就是一个进程,每一个进程都有它自己的内存空间和系统资源。锁:synchronized。

2023-07-04 15:45:29 118

原创 Spring Security--多个过滤器链和多个用户表

可以看到,当请求到达FilterChainProxy之后,FilterChainProxy 会根据请求的路径,将请求转发到不同的Spring Security Filters 上面去,不同的Spring Security Filters 对应了不同的过滤器,也就是不同的请求将经过不同的过滤器。注意的是,规则一定要统一,一条执行链的规则,如/web/**,下面一切的接口都加/web/**,包括登录的接口。上图,我直接在内存中写了个用户,模拟不同表的用户,下面是数据库的用户登录。

2023-06-14 12:33:25 1673

原创 Spring Security--获取登录成功的用户信息

在用户登录成功后,自动将用户信息存入到SecurityContextHolder中。3.下一个请求来的时候,还是会经过SecurityContextPersistenceFilter 过滤器,,此时系统还是会从Httpsession 中读取出登录成功的用户信息,并将之存入SecurityContextHolder 中。2.在登录请求处理完毕后,响应数据给前端时,也会经过SecurityContextPersistenceFilter 过滤器,此时,会将用户信息存入Httpsession中。

2023-06-13 16:16:42 1331

原创 Spring Security--会话管理

在服务器,Spring Security维护了一个会话注册表,所有的登录上来的用户,都会注册到这个注册表中,本质上是一个map集合,map是用户对象,value保存了用户所有的会话对象,Map。如图,在这个层级还可以配置一些会话的其他策略,比如:超过了一个了怎么办,是把上一个踢掉还是怎么办,就是说这个会话策略里还有其他配置,你目前处于这个层级,是会话配置的层级。同样的,回到这一级又可以配其他策略,比如session的策略,就是在这一级。不同浏览器之间也是不同的会话。

2023-06-13 14:27:55 765

原创 Spring Security--自动登录

rememberMe还有一个key属性,当key设置了值的时候,即使服务端重启了也不用重新登录。分三部分:用户名:时间戳:加密字符串(根据用户名+用户密码+时间戳+key加密的字符串)因为有的接口可以支持rememberMe认证,有的接口不支持,用上图的方式做区别。我们记住登录后,关掉浏览器再打开,访问一下接口,可以访问,说明记住登录成功了。然后发送请求时加上:remember-me字段。value值可以为,ture,1,on。//禁止给url编码。//读取当前用户信息。base64解密完是。

2023-06-12 16:43:07 697 1

原创 Spring Security--密码加密

第二个matches方法:密码比对的方法,rawPassword是明文密码,encodedPassword是加密后的密码,你把这来个参数传进来,它会自动帮你比对,然后放回一个boolean值。可以设置密码的强度 4-31的数字,数字越大,密码强度越高,所需要的时间就越久 可以防止有人频繁去试密码,我们比对的时间会更长。项目的话,我们是继续写的,此时项目是已经实现了数据库的用户名,密码登录,且用的是自己的登录页面。对象,这里是把所有的加密方式都写出来了,匹配你的密码的加密方式,默认是”bcrypt“

2023-06-12 15:24:03 1476

原创 Spring Security--连接数据库+自定义登录页面+前后端json交互

书接上一篇,在实际的开发中,我们的账号密码不可能是这样写在配置文件中的,应该是要来自于数据库。接着上一篇的项目,我们继续,在原有的依赖的基础上新增,mysql驱动依赖和mybatis依赖。添加一条数据,在security中,你的密码默认是加密的,不加密在密码前加(noop)如果是boot2.x版本,5.x的security会出现一个。user实现UserDetails 接口,重写里面的方法。现在我们要用这个账号密码去登录,我们一步一步来操作一下。输入账号,密码登录,运行成功。然后来一个mapper,

2023-06-09 14:01:42 511

空空如也

空空如也

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

TA关注的人

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