- 博客(56)
- 资源 (2)
- 收藏
- 关注
原创 Centos7 安装Redis6.2.6 gcc报错问题解决
输入vim /etc/resolv.conf。安装完后继续执行make 编译redis即可。执行:make MALLOC=libc 编译。若还是报错 可执行以下命令。
2024-07-12 16:10:10
377
原创 easyexcel导出报错 java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader
我的是easyexcel 2.2.7版本 对应poi三个依赖4.1.2,替换后问题解决。这是因为poi依赖不一致导致的,将poi各个依赖换成一直就行。
2023-12-07 12:38:53
1719
原创 springboot集成mogoDB报错 com.mongodb.MongoSecurityException: Exception authenticating
这是因为账号权限不够,不能新增,正确的做法应该是在这个库下面新建一个账号,授予他增删查改的权限,SQL如下。
2023-11-28 14:27:27
745
原创 python scrapy爬取网站数据(一)
scrapy中文文档scrapy是用python实现的一个框架,用于爬取网站数据,使用了twisted异步网络框架,可以加快下载的速度。scrapy的架构图,可以看到主要包括scheduler、Downloader、Spiders、pipline、ScrapyEngine和中间件。Schduler:调度器,负责接受引擎发送过来的request,并按照一定的方式进行整理排列、入队,当引擎需要时,交还给引擎。
2023-07-07 15:00:52
454
原创 Please set spring.main.web-application-type=reactive or remove spring-boot-starter-web dependency.
SpringCloud Gateway网关冲突
2023-03-09 17:03:40
175
原创 jenkins (No such file or directory) and ‘parent.relativePath‘ points at no local POM @ line 5,
jenkins发布spring boot项目
2022-08-31 14:10:14
1167
原创 国密算法报错:java.lang.NoClassDefFoundError: org/bouncycastle/asn1/gm/GMNamedCurves
国密算法报错:java.lang.NoClassDefFoundError: org/bouncycastle/asn1/gm/GMNamedCurves问题原因包冲突问题,bcprov-jdk16不再更新了,请使用bcprov-jdk15on或者jdk15to18maven依赖 <!--国密--> <dependency> <groupId>org.bouncycastle</groupId> <artifac
2022-05-16 10:09:22
8888
原创 java.util.ConcurrentModificationException
本地代码增强for循环删除元素报错ArrayList源码iterator源码报错异常modcount:修改次数expectedModCount:期望修改次数分析在集合中进行操作时,当modCount != expectedModCount时会抛出修改异常。通过源码可以知道,集合在增加,删除元素时都会修改modCount的值,当在集合中删除时,modCount+1,而expectedModCount未改变,而在集合删除完之后,迭代器指向下一个对象(即调用next()方法),会检测出不
2022-02-11 17:27:20
246
3
原创 Redis入门知识
redis介绍最后欢迎的NoSQL数据库之一, 它是个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。定义redis是一个key-value储存系统。支持存储的value类型相对更多,包括string、list、set、zset(有序集合)和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。为了保证效率,数据
2021-12-28 17:23:00
476
原创 Java暴力反射copy对象
/** * 创建一个新的类 并赋给属性名相同类型相同的属性值 * @param o1 目标对象 * @param o2Class 赋值对象 * @throws IllegalAccessException */ public static <T> T createObject(Object o1, Class<T> o2Class) throws IllegalAccessException, InstantiationException { T o2 =
2021-12-21 10:27:44
169
原创 JAVA读取CSV文件,封装成excel数据
使用hutool工具包ArrayList<Object> list = new ArrayList<>(); // 获取字符编码 Charset charset = CharsetDetector.detect(file.getInputStream()); // 获取csv文件读取器 CsvReader csvReader = CsvUtil.getRe
2021-12-14 09:37:39
475
原创 SpringBoot中使用Cors开启跨域
SpringBoot之Cors跨域跨域主要是针对js和ajax的,使资源在【协议+主机名+端口号】不同的情况下也能相互访问实现跨域有两种方式1.JSONP 常见的前端跨域解决方案,但局限性大,只支持GET请求2.Cors 支持多种请求,可完全替代JSON,是一种全局配置,需要实现WebMvcConfigurer接口代码演示//跨域处理 (全局配置)@Overridepublic void addCorsMappings(CorsRegistry registry) { registr
2021-12-11 12:04:11
676
原创 SpringBoot中拦截器功能的实现
Spring Boot拦截器介绍最常用的场景:登录拦截、权限校验、防止重复提交等实现方式有两种:1:实现Spring的HandlerInterceptor接口2:继承实现了HandlerInterceptor接口的类,HandlerInterceptorAdapter代码演示@Componentpublic class LoginInterceptor implements HandlerInterceptor { @Override public boolean preHan
2021-12-11 12:02:08
490
原创 Java操作word导出、多个word合并
导入maven<!--word导出--> <dependency> <groupId>com.deepoove</groupId> <artifactId>poi-tl</artifactId> <version>1.10.0</version> </dependency><!--word合并--&
2021-12-10 16:47:48
1458
原创 反射——对象之间的复制
@Test void test11() throws Exception { Emp emp = new Emp(); emp.setId("1"); emp.setName("张三"); emp.setSex("man"); User user = new User(); // 将emp复制到user copy(emp,user); System.out.p...
2021-11-24 10:46:10
795
原创 Spring Boot MVC自动配置原理
源码分析 WebMvcAutoConfiguration 类在WebMvcAutoConfiguration找到viewResolver()ContentNegotiatingViewResolver()内容协商视图解析器,自动配置了viewResolver(),点击查看源码@Nullable //说明参数可为空public View resolveViewName(String viewName, Locale locale) throws Exception { Reques
2021-11-20 14:00:21
431
原创 Spring Boot 模板引擎
模板引擎前端展示的是html页面,在SpringBoot之前,需要把它们转成jsp页面,jsp的好处就是当我们查出一些数据转发到jsp页面后,可以用jsp轻松实现数据的显示及交互SpringBoot是以jar包的方式,且用的是嵌入式的tomcat,所以不支持jspThymeleafSpringBoot推荐使用的模板引擎,只需要导入依赖,在html加上命名空间,开箱即用,可以完全代替jsp,甚至功能更强大,即使在没有网络的环境下也能使用浏览器打开,实现了动静分离。添加依赖<dependenc
2021-11-20 13:39:13
479
原创 excel导入校验
导入excel public void uploadExcel(MultipartFile file, String dataId) { // 校验后缀 String filename = file.getOriginalFilename(); if (filename != null) { String extension = filename.substring(filename.lastIndexOf(".") + 1);
2021-11-14 19:57:06
1532
原创 Spring Boot 自动装配
自动装配原理一个springBoot项目,只要添加相关的依赖,无需配置,启动main方法就行,并且可以对全局变量文件application.properties或application.yml对项目进行设置springBoot还定义了一套接口规范:Spring Boot在启动时,会扫描jar外部引用jar包中的META-INF/spring. factories文件,将文件中的配置信息加载到spring容器中,并执行定义中的各项操作@SpringBootApplication@SpringBootA
2021-11-13 12:22:46
419
原创 Spring Boot 源码分析
什么是springboot一个javaweb的开发框架,集成了大量的第三方库,为spring开发者提供更便捷的开发,其核心思想”约定大于配置“,开箱即用,提供了很多默认配置简化项目配置,用少数的代码迅速开发web应用。核心功能:<!-- 父依赖 SpringBoot版本控制中心,所有导入的依赖版本都在这里 --> <parent> <groupId>org.springframework.boot</groupId> <artifactI
2021-10-28 11:44:12
212
原创 Mybatis入门笔记
Mybatis什么是MybaitsMybatis是一款持久层框架Mybatis避免了几乎所有的JDBC代码和手动设置参数及获取结果集的过程Mybatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的实体类映射成数据库中的记录持久化将程序数据在持久状态和瞬时状态间转换的机制把数据保存到可永久保存的存储设备中。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件、xml数据文件中。持久层完成持久化工作的代码块(dao层 数据访问对象),用来操作数据库Myba
2021-10-24 21:55:12
1857
原创 SpringMVC笔记
幂等、put和post介绍幂等(idempotent):一个方法重复执行多次,产生的效果是一样的。put是幂等、post不是幂等的put方法,将client的资源放在请求URL上,对与服务器创建还是更新,由服务器返回的HTTP code来区别post是用来提交数据的,提交的数据在http请求的正文里,目的在于提交数据并用于服务器端的存储,而不允许用户多次更改数据PUT操作是幂等的。所谓幂等是指不管进行多少次操作,结果都一样。比如我用PUT修改一篇文章,然后在做同样的操作,每次操作后的结果并没有不同
2021-10-24 21:39:44
86
原创 java生成二维码(带logo)
利用hutool工具实现java二维码生成官网链接:https://www.hutool.cn/添加依赖<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.14</version> </depend
2021-10-22 10:40:35
734
原创 Spring注解介绍
Spring常用注解Spring常用注解Spring的核心功能是IOC,就是将Bean初始化加载到容器中·,可以使用xml配置文件或者Spring注解来实现Spring注解方式减少了配置文件内容,使其便于管理,提高了开发效率组件类注解@Component:标注一个普通的Spring Bean类。@Repository:标注一个DAO组件类@Service:标注一个业务逻辑组件类@Controller:标注一个控制器组件类@Component可以代替@Repository、 @Service
2021-10-16 11:56:23
157
原创 Java Web学习笔记
过滤器和拦截器的区别:过滤器:客户端与web资源之间的请求和响应都通过过滤器进行过滤,可通过配置过滤器解决跨域请求,也可以禁止访问某IP地址拦截器:可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式区别过滤器依赖servlet,过滤器基于函数回调,拦截器基于Java反射机制过滤器可对所有请求起作用,拦截器只对action起作用过滤器只能在容器初始化时调用一次,拦截器在action声明周期中可
2021-09-24 17:26:30
87
原创 SpringCloud快速入门2021版(上)
SpringCloud011.认识微服务随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢?1.0.学习目标了解微服务架构的优缺点1.1.单体架构单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。单体架构的优缺点如下:优点:架构简单部署成本低缺点:耦合度高(维护困难、升级困难)1.2.分布式架构分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。
2021-09-18 17:17:31
563
1
原创 Java多线程基础知识总结
Java多线程基础知识总结在Java中关键字synchronized可以保证在同一个时刻,只有一个线程可以执行某个方法或某个代码块,且synchronized可保证一个线程的变化被其它线程所看到(保证可见性,完全可以替代volatile)线程的五种状态初始(NEW):新创建了一个线程对象,但还没有调用start()方法。运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的sta
2021-09-16 11:49:58
219
原创 ThreadLocal、守护线程简介
ThreadLocal(为了解决多线程中相同变量的访问冲突问题)ThreadLocal是线程安全的,本质是一个内部的静态map,不提供遍历和查询接口,每个线程只能获取自己线程的valueThreadLocal基本方法get()获取当前线程中保存的变量副本set()设置当前线程中变量的副本remove()移除当前线程中变量的副本initialValue() 是一个protected方法,一般是用来在使用时进行重写的,它是一个延迟加载方法Synchronized是通过线程等待,牺牲时间来解决访问冲
2021-09-16 11:38:39
238
转载 Java8——lambda表达式
1.什么是Lambda? 我们知道,对于一个Java变量,我们可以赋给其一个“值”。 如果你想把“一块代码”赋给一个Java变量,应该怎么做呢? 比如,我想把右边那块代码,赋给一个叫做aBlockOfCode的Java变量: 在Java 8之前,这个是做不到的。但是Java 8问世之后,利用Lambda特性,就可以做到了。推荐:JDK8新特性之Lambda表达式。 ...
2021-09-08 11:54:22
182
原创 Java中的线程池
线程池作用:1.降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗2.提高系统响应速度,当有任务到达时,通过复用已在存在的线程,无需等待新线程的创建便能立即执行3.方便线程并发数的管控4.提供能强大的功能,延时定时线程池线程池的执行流程线程池主要方法( ThreadPoolExecutor)corePoolSize 线程基本大小maximumPoolSize 线程池最大大小keepAliveTime 线程存活时间workQueue 任务队列threadFactor
2021-09-02 15:18:45
94
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人