java
文章平均质量分 61
小赵呢
一个很喜欢SpringBoot的开发者
展开
-
Redis缓存雪崩、缓存击穿、缓存穿透
用户的数据一般都是存储于数据库,数据库的数据是落在磁盘上的,磁盘的读写速度可以说是计算机里最慢的硬件了。当用户的请求,都访问数据库的话,请求数量一上来,数据库很容易就奔溃的了,所以为了避免用户直接访问数据库,会用 Redis 作为缓存层,因为 Redis 是内存数据库,我们可以将数据库的数据缓存在 Redis 里,相当于数据缓存在内存,内存的读写速度比硬盘快好几个数量级,这样大大提高了系统性能。引入了缓存层,就会有缓存异常的三个问题,分别是。原创 2023-03-01 22:15:58 · 1220 阅读 · 1 评论 -
重识JAVA基础-注解
注解如同标签,标记我们的类或者是方法。一般用来取代配置文件。原创 2022-09-03 17:26:40 · 99 阅读 · 0 评论 -
重识JAVA基础-反射
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.以上的总结就是什么是反射反射就是把java类中的各种成分映射成一个个的Java对象。原创 2022-09-03 16:58:25 · 130 阅读 · 0 评论 -
Java动态代理原理分析
如果$Proxy0就是jdk创建的动态代理对象我要增强foo方法,可以这样但是我们希望通过public static void main(String[] args)来控制增强,那么我们的代码改成了这样现在有一个问题这个只能增强foo这个方法,当要增强别的方法,就不能这么写了。于是我在代理类里面通过反射创建了存放当前方法的参数现在我们这个软件又有一个问题就是无法返回参数这时我们需要改变一下InvocationHandler的invoke方法让他返回Object,同时我们由于我们不能每次调用方法都去反原创 2022-07-06 16:28:14 · 609 阅读 · 0 评论 -
实现一个基于Java语言的简易关系型数据库
用来学习关系型数据库(如Mysql)的设计理念、核心骨架、基本算法。涉及的核心原理自平衡的排序二叉树: 我们的数据库采用平衡二叉树,来加快增删改查的速度序列化:因为要存储到磁盘空间上,对添加数据之后的二叉树进行序列化StartUpMain这个是启动类要,启动用的建表的逻辑:建立一个Entity类定义一个int id,作为查询的主键,定义一个map类型存放各个属性,定义一个String的Table.我们的数据库是一个比较简单的数据库,所有的存放类都是Entity的实例建立一个自平衡的二叉树,存储数据在这个过原创 2022-06-24 22:32:35 · 755 阅读 · 0 评论 -
SpringBoot整合优秀轮子
在java的庞大体系中,其实有很多不错的小工具,也就是我们平常说的:。如果在我们的日常工作当中,能够将这些轮子用户,再配合一下idea的快捷键,可以极大得提升我们的开发效率。今天我决定把一些压箱底的小工具,分享给大家,希望对你有所帮助。本文会分享17个我们日常工作中一定会用得到的小工具,主要内容如下:首先出场的是包下的类,该类主要用于操作集合或者返回集合,我个人非常喜欢用它。在工作中经常有对集合排序的需求。看看使用工具是如何实现升序和降序的:执行结果:1.2 获取最大或最小值有时候需要找出集合中的或者原创 2022-06-24 19:11:37 · 595 阅读 · 0 评论 -
基于SpringBoot的空巢老人家庭关怀系统
在这个项目中我主要负责编写调用巴法云API和百度API,并对他进行处理社会价值首先本产品符合当前万物互联的时代背景,家居设备可通过手机APP实现远程控制,推动了智慧家庭的发展。本产品安置家中,便于使用者及时发现家庭室内的情况,便于使用者及时查看家庭成员的身体健康指数,尤其是家里有老人的,可以更好的给予老人关怀,有效降低因摔倒无法及时被发现而导致意外的概率,加上当下空巢老人和独居老人的数量急剧增加,能在家中拥有一款便于检测血压血氧等基本健康指数数据且能传至儿女手机APP上面进行显示和保存的、能够实时监测原创 2022-06-07 11:22:02 · 435 阅读 · 0 评论 -
Spring关于IOC和AOP的原理解析
通过这个图片我们可以看出来,在ApplicationContext中有一个beanFactory在它中有singletonObjects,这里面存放了我们的所有bean接下来我们通过反射来获取到BeanFactory中的我们来看这段代码,先通过反射获取到了singletonObjects之后ApplicationContext的getBeanFactory()获取BeanFactory,之后singletonFactories成员变量调用get这个操作获取BeanFactory()的singletonFa原创 2022-06-02 18:44:26 · 216 阅读 · 0 评论 -
JAVA学习路线
javajava基础数据类型引用型基本型JDK8新特性lambda表达式函数式接口方法引用匿名内部类Function接口Stream接口java基础加强Junit反射注解网络编程B/SC/SIO流IO字符流ReaderwirterIO缓冲流BufferedWriterBufferedReaderIO转换流OutputStreamWriterInputStreamReaderIO字节流InputStreamOutputStreamFile类并发编程RunnableThread流程方法循环判断数组操作java面原创 2022-05-25 11:33:59 · 102 阅读 · 0 评论 -
深入理解计算机系统-笔记
hello.c的表示方法说明了一个基本思想:系统中的所有信息-包括磁盘文件、内存中的程序、内存中存放的用户数据以及传播到网上的数据,都是由一串比特表示的区分不同数据对象的唯一方法就是我们读取这些对象时的上下文。比如在不同的编码集中,一个同样的字节序列可能表示一个整数、浮点数、字符串、或者机械指令操作系统提供的抽象表示像hello这样的程序在现代系统上运行时,操作系统会提供一种假象,就好像系统上只有这个程序在运行。程序看上去是独占地使用处理器、主存和I/O设备。处理器看上去就像在不间断地一条接一条地执行原创 2022-05-24 19:35:58 · 156 阅读 · 0 评论 -
脚本语言和编程语言
脚本语言是为了缩短传统的编写-编译-链接-运行过程而创建的计算机编程语言。和传统的Java,c++等编程语言不同,脚本语言不需要编译器,它需要的是解释器。也就是说,脚本语言是解释执行的,例如有一款专用的软件,而这款专用的软件上面执行特定的操作才能和我的软件进行交互,而这个操作的集合就是解释器,进行的操作就是脚本语言,当我们将这个软件操作组织起来完成一个任务的时候,这就是在运用脚本语言进行编程。...原创 2022-05-23 20:05:50 · 730 阅读 · 0 评论 -
413 Request Entity Too Large
今天在上传图片的时候给我报错这个,于是查了一下才知道nginx我们可以看到请求的body的大小,在Content-Length后显示,Nginx默认的request body为1M,小于我们上传的大小解决方法找到自己主机的nginx.conf配置文件,打开在http{}中加入 client_max_body_size 10m;然后重启nginx/etc/init.d/nginx restart...原创 2022-05-22 20:21:13 · 143 阅读 · 0 评论 -
SpringBoot整合文件处理
文章目录文件操作1、压缩/解压压缩实战测试解析解压实战测试问题2、上传/下载文件下载服务类前端控制类测试文件上传服务类前端控制类HTML页面错误java客户端上传文件依赖新建客户端3、EasyExcel操作Excel4、SpringBatch`ItemReader``ItemWriter``ItemStream`读平面文件写平面文件文件操作1、压缩/解压压缩利用Java.util.zip包中的ZipOutputStream 实现文件的压缩ZipOutputStream (OutputStream原创 2022-05-17 20:55:55 · 699 阅读 · 0 评论 -
基于SpringBoot的websocket的多人聊天室项目
文章目录1、websocket什么是websocket?使用步骤1.引入依赖2.建立配置类3.业务层Web类HTML遇到的问题遇到的问题1、websocket什么是websocket?WebSocket协议是基于TCP的一种新的网络协议。它实现了客户端与服务器全双工通信,学过计算机网络都知道,既然是全双工,就说明了服务器可以主动发送信息给客户端。这与我们的推送技术或者是多人在线聊天的功能不谋而合。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yoWfMl8Z-1650原创 2022-04-24 17:50:07 · 2984 阅读 · 0 评论 -
图解IOC容器
IOC理论提出的观点大体是这样的:借助于“第三方”实现具有依赖关系的对象之间的解耦。去除掉IOC容器之后原创 2022-04-24 13:56:17 · 102 阅读 · 0 评论 -
Quartz&Task之间的对比
在工作的过程中接触到了定时处理的业务,发现项目用的是Quartz,因为之前学的是springboot全家桶,用到的是springTask,直接通过注解操作定时任务。@Scheduled(cron = "0/4 * * * * MON-SAT") //每4秒执行一次Quartz默认多线程异步执行单个任务时,在上一个调度未完成时,下一个调度时间到时,会另起一个线程开始新的调度。业务繁忙时,一个任务会有多个调度,可能导致数据处理异常。多个任务时,任务之间没有直接影响,多任务执行的快慢取决于CPU的性原创 2022-04-15 16:50:05 · 376 阅读 · 0 评论 -
2020年蓝桥杯javaB组
A小蓝要为一条街的住户制作门牌号。这条街一共有 20202020 位住户,门牌号从 11 到 20202020 编号。小蓝制作门牌的方法是先制作 00 到 99 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、71、0、1、7,即需要 11 个字符 00,22 个字符 11,11 个字符 77。请问要制作所有的 11 到 20202020 号门牌,总共需要多少个字符 22?...原创 2022-04-08 21:46:18 · 174 阅读 · 0 评论 -
2021年蓝桥杯javaB组
A已知大写字母 A 的 ASCII 码为 65,请问大写字母 L 的 ASCII 码是多少?import java.util.Scanner;// 1:无需package// 2: 类名必须Main, 不可修改public class Main { public static void main(String[] args) { System.out.println(65+'L'-'A'); }}B小蓝有很多数字卡片,每张卡片上都是数字 00 到 99。原创 2022-04-04 16:09:06 · 220 阅读 · 0 评论 -
springboot整合指标监控
文章目录指标监控1、SpringBoot Actuator1、简介2、1.x与2.x的不同3、如何使用4、可视化2、Actuator Endpoint1、最常使用的端点2、Health Endpoint3、Metrics Endpoint4、管理Endpoints1、开启与禁用Endpoints2、暴露Endpoints3、定制 Endpoint1、定制 Health 信息2、定制info信息1、编写配置文件2、编写InfoContributor3、定制Metrics信息1、SpringBoot支持自动适配原创 2022-03-31 20:50:39 · 1035 阅读 · 0 评论 -
springboot整合单元测试
单元测试Junit5测试1、JUnit5 的变化Spring Boot 2.2.0 版本开始引入 JUnit 5 作为单元测试默认库作为最新版本的JUnit框架,JUnit5与之前版本的Junit框架有很大的不同。由三个不同子项目的几个不同模块组成。JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit VintageJUnit Platform: Junit Platform是在JVM上启动测试框架的基础,不仅支持Junit自制的测试引擎,其他测试引擎原创 2022-03-31 20:40:40 · 748 阅读 · 0 评论 -
蓝桥杯-回溯算法
回溯算法迷宫算法回溯算法就是通过程序的递归直到输出结果最经典的回溯算法的应用就是小老鼠找迷宫public class maze { public static void main(String[] args) { //先创建一个二维数组,模拟迷宫 //地图 int[][] map = new int[8][7]; //使用1代表墙 //上下设为1 for (int i = 0; i <原创 2022-03-31 17:49:54 · 300 阅读 · 0 评论 -
蓝桥杯-弗洛伊德算法
弗洛伊德算法-这是一个求顶点到所有点的最短路径的算法这个算法的核心思路就是通过3层for循环,找出以k为中间结点,i到j最小值这个也很好理解//弗洛伊德算法public void floyd() { int len = 0;//变量保存距离 //对中间顶点的遍历,k就是中间顶点的下标 for (int k = 0; k < dis.length; k++) { //从i顶点出发 for (int i = 0; i < dis.len原创 2022-03-31 09:32:46 · 292 阅读 · 0 评论 -
蓝桥杯-骑士周游算法
骑士周游算法及其通过贪心算法进行的优化骑士周游算法就是一个回溯问题类似的还有找迷宫,和八皇后问题这是一个8*8的棋盘,马每次只能走这几个地方,下面来说一下我们的思路1.首先应该创造一个方法,判断在当前马的点可以跳到什么地方去,最多有8个点,把他们添加到一个list集合中。2.创建一个数组保存这个点是否被访问,添加一个标志位,当标志位位true时说明,我们的遍历完了添加一个step记录我们走的步数3.开始我们的遍历 1)首先把这个位设置为已经访问 2)获得这个点接下来可以走的点的list集原创 2022-03-31 16:04:22 · 1312 阅读 · 0 评论 -
蓝桥杯-普里姆算法
普里姆算法应该是贪心算法的一种,具体体现在普里姆算法每一次都是找还最小连通图的最小的一个import java.util.Arrays;//普里姆算法public class PrimDemo { public static void main(String[] args) { char[] data = new char[]{'A', 'B', 'C', 'D', 'E', 'F', 'G'}; int verxs = data.length;原创 2022-03-31 09:23:01 · 746 阅读 · 0 评论 -
蓝桥杯-贪心算法
贪心算法1.首先遍历存放这所有电台的list,取出每一个电台广播广播地点2.在遍历的过程中把每一个电台的广播地点放到临时变量tempList中去3.找出临时变量和set总广播电台的交集4.如果tempList的大小大于原来最大值的大小,就让最大值等于temp的索引5.遍历结束的时候,将maxkey保存,同时移除set总广播台关于maxkey的值,直到set为空为止//贪心算法//找到每一步的最多未覆盖的地区的电台public class BroadcastingStation {原创 2022-03-28 11:05:07 · 152 阅读 · 0 评论 -
蓝桥杯2020省赛B组java刷题
A:小蓝要为一条街的住户制作门牌号。这条街一共有 20202020 位住户,门牌号从 11 到 20202020 编号。小蓝制作门牌的方法是先制作 00 到 99 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、71、0、1、7,即需要 11 个字符 00,22 个字符 11,11 个字符 77。请问要制作所有的 11 到 20202020 号门牌,总共需要多少个字符 22?public class Main { public static原创 2022-03-26 09:32:11 · 696 阅读 · 0 评论 -
java数据结构-树
java数据结构树1.为什么需要树这种数据结构1)数组存储方式的分析优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低 [示意图]2)链式存储方式的分析优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入节点,链接到链表中即可, 删除效率也很好)。缺点:在进行检索时,效率仍然较低,比如(检索某个值,需要从头节点开始遍历) 【示意图】3)树存储方式的分析能提高数据存储原创 2022-03-21 15:10:14 · 495 阅读 · 0 评论 -
java中byte和Byte详解
写程序时,误把byte写作Byte,调试了许久,便将二者的区别及用法详细理解一遍1:byte和Byte详解byte是java的基本数据类型,存储整型数据,占据1个字节(8 bits),能够存储的数据范围是-128~+127。Byte是java.lang中的一个类,目的是为基本数据类型byte进行封装。2:二者关系:Byte是byte的包装类,就如同Integer和int的关系,一般情况包装类用于泛型或提供静态方法,用于基本类型或字符串之间转换,建议尽量不要用包装类和基本类型之间运算,因为这样运算原创 2022-03-18 10:58:46 · 7600 阅读 · 1 评论 -
从0到1为小仙女做一个记录积分的springboot小项目
从0到1为女朋友做一个记录积分的springboot小项目前言因为疫情的原因没有办法开学,于是我为女朋友设立了一个奖励她的机制,督促她好好学习,好好生活后来我琢磨这这积分,每天靠人记住也不是一个办法呀,于是就想着做一个springboot的小项目,部署到云端,帮助记一下,顺便复习一下springboot的知识项目技术由于项目比较简单,所以用到的技术比较简单数据库:mysql后端框架:spring-boot,mybatis,spring-mvc前端渲染引擎:thymeleaf前端网页制作:原创 2022-03-13 15:02:58 · 2578 阅读 · 0 评论 -
MongoDb操作
之前在操作MongoDB的时候,一不小心重启了MongoDB,数据清零了,现在我们来重新启动一下并进行配置首先use admindb.createUser({ user: "root", pwd: "123456", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ], mechanisms : ["SCRAM-SHA-1"] })之后use webFluxdb.createUser({原创 2022-03-12 23:32:39 · 184 阅读 · 0 评论 -
利用baidu云调用人体分析出现的问题
在人体分析当中,我在idea上运行这个程序可以返回我要的值但是一旦打成jar包,下面写死的方式可以运行,上面的方式就会报错,我用的是springboot整合的,后来我以为是,service的创建周期问题,于是我用mybatis尝试着在数据库中读出数据但是仍然报错...原创 2022-03-02 09:53:58 · 424 阅读 · 0 评论 -
@CrossOrigin解决跨域请求
在Controller中看到@CrossOrigin ,这是什么?有什么用?为什么要用?what?@CrossOrigin是用来处理跨域请求的注解先来说一下什么是跨域:(站在巨人的肩膀上)跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。所谓同源是指,域名,协议,端口均相同,不明白没关系,举个栗子:http://www.123.com/index.html 调用 http://www.123.com/server.PHP (非原创 2022-03-01 15:42:16 · 2902 阅读 · 0 评论 -
page分页器不分页
//创建一共page对象,传递当前页,每页记录数 Page<HospitalSet> page = new Page<>(current, limit);刚刚遇到分页器不分页的情况因为我们没导入分页器插件只需要这样@Configurationpublic class PageConfig { @Bean public PaginationInterceptor paginationInterceptor() { return ....原创 2022-02-24 23:54:35 · 1513 阅读 · 2 评论 -
JSON parse error: Unexpected character (‘}‘ (code 125)): was expecting double-quote to start field n
1.测试数据 ,postman 里面message出现这样的报错JSON parse error: Unexpected character (’}’ (code 125)): was expecting double-quote to start field name; nested exception is com.fasterxml.jackson.core.JsonParseException: Unexpected character (’}’ (code 125)): was expecti.原创 2022-02-24 23:44:46 · 5763 阅读 · 2 评论 -
springboot整合请求分析
请求初识restTemplate怎么用?SpringBoot项目SpringBoot项目中,只需要引入spring-boot-starter-web依赖就可以了,其实spring-boot-starter-web依赖也是SpringBoot项目必备的一个依赖。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web原创 2022-02-21 22:24:15 · 816 阅读 · 0 评论 -
springboot整合事务缓存
文章目录事务AOP控制事务管理添加位置实例事务的隔离级别缓存Cache常用注解实例引入依赖@EnableCaching开启缓存使用缓存注解整合redis实现缓存引入配置文件操作原理调用API实现缓存事务AOP控制承接上一篇路线首先我们的的事务控制是基于AOP的那么什么是AOP呢,之前我们在spring的学习中已经写到过了AOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发原创 2022-02-21 22:17:21 · 681 阅读 · 0 评论 -
springboot整合访问数据
06、数据访问1、SQL1、数据源的自动配置-HikariDataSource1、导入JDBC场景 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc</artifactId> </dependency>原创 2022-02-19 14:01:21 · 475 阅读 · 0 评论 -
java数据结构-栈
栈1、栈的定义栈(Stack):是只允许在一端进行插入或删除的线性表。首先栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作。栈顶(Top):线性表允许进行插入删除的那一端。栈底(Bottom):固定的,不允许进行插入和删除的另一端。空栈:不含任何元素的空表。栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构2、栈的常见基本操作InitStack(&S):初始化一个空栈S。StackEmpty(S):判断一个栈是否为空,若栈为空则返回t原创 2022-02-18 12:12:59 · 6179 阅读 · 0 评论 -
springboot整合响应编程
WebFlux在响应式编程中主要是基于spring5与spring mvc相同Spring WebFlux提供了一个基于注解的编程模型,@Controller和@RestController组件使用注解来表示请求映射、请求输入、处理异常等等。带注释的控制器具有灵活的方法签名,无需扩展基类或实现特定的接口。定义特性Spring Web MVCSpringWebFlux应用控制器注解声明@Controller相同应用REST控制器注解声明@RestControll原创 2022-02-09 22:18:19 · 888 阅读 · 1 评论 -
Cannot autogenerate id of type java.lang.Integer for entity of type com.example.demo17webflux.Bean.U
本身想在mongo中添加一个实体数据 @Autowired private MongoTemplate mongoTemplate; public void insert(User user) { mongoTemplate.save(user); } 实体定义public class User { @Id private Integer id; }这里因为自己定义的实体属性有id,和mongo冲突,把自己定义的id换个原创 2022-02-09 17:39:08 · 244 阅读 · 0 评论