- 博客(96)
- 收藏
- 关注
原创 解决Maven打包时报错“The packaging for this project did not assign a file to the build artifact“
我在打包时用的是下面红色框的Plugins插件,但是我的pom里面有没有引入这个插件,所以导致使用报错。如果使用maven本身的Lifecycle里面的install命令,即上面蓝框的命令就不会出错。今天在IDEA中打包Maven项目安装到本地仓库时报错。
2024-10-12 16:35:29 426
原创 Apache POI用法
Apache POI是用Java编写的免费开源的跨平台的Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能,其中使用最多的就是使用POI操作Excel文件。XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能。HSSF - 提供读写Microsoft Excel XLS格式档案的功能。HWPF - 提供读写Microsoft Word DOC格式档案的功能。
2024-09-10 13:10:01 841
原创 StringUtils的isEmpty和StringUtils的isBlank的区别
仅检查字符串是否为null或空字符串(“”)。:检查字符串是否为null、空字符串(“”)或仅包含空白字符。
2024-09-03 16:58:56 301
原创 SpringSecurity认证鉴权流程
认证成功后,Spring Security还会基于配置的权限规则来检查用户是否有权限访问请求的资源。这通常发生在请求被处理的阶段。
2024-08-19 10:39:26 882
原创 BeanUtil的常用方法总结:
BeanUtils 是 Spring 框架提供的一个工具类,用于操作 JavaBeans。它提供了一系列的方法来简化 JavaBeans 的操作,尤其是在复制对象属性时非常有用(日常crud开发少不了的工具)。以下是 BeanUtils 中一些常用的方法。这个方法用的频率很高,主要用于将一个 JavaBean 的属性值复制到另一个 JavaBean 中。如果两个 JavaBean 有相同的属性名,则可以轻松地复制属性值。在dto pojo vo等等之间的转换非常有用。
2024-08-08 15:02:54 424
原创 dubbo报错:not support none serializable class org.springframework.security.web.servletapi.HttpServlet3
Dubbo 报错提示 not support none serializable class 表示 Dubbo 在尝试序列化某个对象时遇到了问题。这里的问题是类没有实现序列化接口,因此无法被正确地序列化。在微服务架构中,服务提供者和服务消费者之间需要传输对象时,这些对象必须是可以序列化的,这样才能在网络上传输。
2024-08-02 10:30:56 320
原创 @RequestBody注解的原理
Spring 会尝试将解析得到的 JSON 对象的属性与方法参数中实体类的属性进行匹配。如果实体类的属性名称与 JSON 中的键匹配,那么对应的值就会被赋给实体类的属性。例如,如果 JSON 字符串中的值是 “123”,而实体类的属性类型是 int 或 Integer,那么 “123” 会被自动转换为整数值 123。只要实体类的属性名称与 JSON 中的键匹配,那么对应的值就会被赋给实体类的属性吗,如果json的value的数据类型与实体类的属性的数据类型不相同,只是名称可以匹配那么还可以映射啊?
2024-07-24 11:24:50 399
原创 通过Xftp向linux系统传文件,出现Permission is not allowed错误怎么办?
777后面跟的是目录名,比如你想往/usr/local/src这个目录下传文件,那么应该写成。这种形式,不能写成chomd 777 src。
2024-07-10 16:23:42 885 1
原创 MyBatis 中的动态 SQL 是什么? 如何使用动态 SQL?
通过使用动态 SQL,可以根据不同的条件生成不同的 SQL 语句,从而实现灵活的查询和操作。使用 choose元素: choose元素类似于 Java 中的 switch 语句,根据条件选择执行不同的 SQL 片段。使用 where元素:where元素可以自动去掉 SQL 语句中多余的 AND 或者 OR,从而简化 SQL 的书写。使用 foreach元素: foreach元素可以用来遍历集合或数组,并根据集合或数组中的元素动态生成 SQL 语句。
2024-04-14 16:16:40 673
原创 春招面试java小厂:Jvm的运行区域,知道安全区和安全点吗
JVM(Java Virtual Machine)是一种用于执行Java程序的虚拟机,它在运行时将内存划分为不同的区域,以提高程序的性能和安全性。其中包括方法区、虚拟机栈、本地方法栈、堆、程序计数器等。安全点和安全区域是JVM中的两个重要概念,它们用于垃圾回收(GC)过程。安全点是指在程序执行过程中的一些特定位置,在这些位置上,垃圾回收器可以暂停程序的执行,以便进行垃圾回收。安全区域是指在一段代码片段中,引用关系不会发生变化的区域。在这个区域内的任意地方开始垃圾回收都是安全的。
2024-03-29 16:07:03 182
原创 春招java面试:spring有哪些常见的配置文件
是用于配置 Spring MVC 的 DispatcherServlet 的配置文件,是用于配置 Web 应用程序的 Servlet 和 Filter 的配置文件,是用于配置 Spring Security 的安全策略的配置文件。除了刚刚提到的那些,还有。
2024-03-16 19:15:00 545
原创 Go什么时候发生阻塞?阻塞时调度器会怎么做。
用于原子、互斥量或通道操作导致goroutine阻塞,调度器将把当前阻塞的goroutine从本地运行队列LRQ换 出,并重新调度其它goroutine;由于网络请求和IO导致的阻塞, Go提供了网络轮询器(Netpoller)来处理,后台用epoll等技术实现IO多路复用。channel阻塞:当goroutine读写channel发生阻塞时,会调用gopark函数,该G脱离当前的M和P,调度器将 新的G放入当前M。系统调用:当某个G由于系统调用陷入内核态,该P就会脱离当前M,此时P会更新自己的状
2024-03-04 08:48:59 766 1
原创 什么是SSO
普通登录认证机制在登录认证成功后,服务器把用户的登录信息写入 session,并为该用户生成一个 cookie,返回 并写入测览器;当用户再次访问这个系统的时候,请求中会带上这个 cookie,服务端会根据这个 cookie 找到对应 的 session,通过session来判断这个用户是否已经登录。这大大简化了用户的登录过程,提供了更流畅的体验。允许用户在一次登录后访问多个关联的应用程序或服务,而无需 再次输入其凭据。普通的登录认证机制在多系统的环境下,在操作不同的系统时,需要多次登录,会变得很不方便。
2024-02-23 21:59:41 530 1
原创 Spring Boot自动装配原理
①、通过@Import(AutoConfigurationImportSelector.class),导入配置类,这里并不是单个配置类的导入②、AutoConfigurationImportSelector实现了ImportSelector类,重写了selectImports方法,用于实现选择性的批量配置类的装配③、通过Spring的SpringFactoryLoader机制,扫描classpath下的META/spring.factories文件,读取需要实现自动装配的配置类。
2024-02-20 23:26:28 2676
原创 接口幂等性
但是唯一索引的添加也是一个技术活,如果我们对一个单一的字段设置为唯一索引的话,如果你的这 个业务场景中以进行数据的真正删除的话那么这么设计是没有问题的,但是如果你的业务中要求你的数据不能真正的删除而是需要进行留档,用户的删除只是进行逻辑删除的话,我们设计的单一的字段为唯一索引的话,那么我们插入新数据的时候就会出现唯一索引冲突的问题了。所以成功设置了key的请求就是成功执行的那个请求,后面没有成功设置key的请求就是没有成功执行的请求,但是我们还是要给前端返回成功的结果,因为要保证幂等性。
2024-02-07 16:27:32 1069
原创 MybatisPlus分页,乐观锁插件使用
以后的开发过程中可能出现这种情况,查询语句是我们自定义的,我们需要再自己写的sql语句中,完成分页,该怎么做?这就是xml自定义分页。a>UserMapper中定义接口方法/*** 根据年龄查询用户列表,分页显示* @param page 分页对象,xml中可以从里面进行取值,传递参数 Page 即自动分页,必须放在第一位* @param age 年龄* @return*/Ib>UserMapper.xml中编写SQL--SQL片段,记录基础字段-->-->{age}
2024-01-29 20:33:45 1057
原创 HTTP与HTTPS的工作流程
客户端验证证书合法,然后生成一个随机值Random3,用公钥对Random3进行加密,生成Pre-Master Key,客户端以Client Key Exchange报文将Pre-Master Key发送到服务端,此后发送Change Cipher Spec报文表示此后数据传输进行加密传输;此时客户端需要对服务端发送的证书进行验证,通过操作系统内置的CA证书,将服务器发送的证书的数字签名进行解密,并将证书的公钥进行相同算法的HASH与解密的数字签名解密的内容进行对比,验证证书是否合法有效,是否被劫持更换;
2024-01-24 15:01:45 1756
原创 外键约束-学习笔记
不建外键约束,你的操作(创建表、删除表、添加、修改、删除)不受限制,要保证数据的 引用完整 性 ,只能依靠程序员的自觉 ,或者是 在Java程序中进行限定。一般情况下,表与表的关联都是提前设计好了的,因此,会在创建表的时候就把外键约束定义好。不 过,如果需要修改表的设计(比如添加新的字段,增加新的关联关系),但没有预先定义外键约束,那 么,就要用修改表的方式来补充定义。(5)当主表的记录被从表参照时,主表的记录将不允许删除,如果要删除数据,需要先删除从表中依赖该记录的数据,然后才可以删除主表的数据。
2024-01-10 00:01:47 1300
原创 学习笔记-MyBatis的工作原理。
Mybatis的工作原理读取MyBatis配置文件:mybatis-config.xml为MyBatis的全局配置文件,配置了MyBatis的运行环境等信息,例如数据库连接信息。加载映射文件。映射文件即SQL映射文件,该文件中配置了操作数据库的SQL语句,需要在MyBatis配置文件mybatis-config.xml中加载。mybatis-config.xml文件可以加载多个映射文件,每个文件对应数据库中的一张表。构造会话工厂:通过MyBatis的环境等配置信息构建会话工厂SqlSessionFa
2023-12-29 22:12:41 835
原创 rpc和http的区别,使⽤场景
HTTP:⼤部分是通过json来实现的,字节⼤⼩和序列化耗时都⽐thrift要更消耗性能。RPC:可以基于thrift实现⾼效的⼆进制传输。主要在于序列化和反序列化的耗时。
2023-12-16 23:14:31 1043
原创 redis数据淘汰策略:
○ 维护一个双向链表,用于顺序存储被访问过的key。在访问数据时,最新访问过的key将被移动到表头,即最近访问的key在表头,最少访问的key在表尾。就是当Redis内存使用达到设置的上限时, 此时需要使用redis数据淘汰机制来进行数据淘汰。(有针对key的 和 针对value数据的)○ 优点:比LRU算法节约内存 只对少量key进行取样(LRU算法需要把每一个key都存下来维护一个链表),却可以取得非常近似的效果。○ 给每个key维护一个时间戳,淘汰时随机采样5个key,从中淘汰掉最旧的key。
2023-12-10 22:53:16 880
原创 Python TypeError: not all arguments converted during string formatting 报错
原因:1 % 操作符只能直接用于字符串(‘123’),列表([1,2,3])、元组,因此需要一一匹配操作符。
2023-12-06 22:42:28 1156
原创 说说&和&&的区别。
&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str!= null&&!&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
2023-11-30 13:35:17 878
原创 面试:说一下深拷贝,浅拷贝,引用拷贝吧;Object类中的clone是哪种呢?
● 浅拷贝: 对基本数据类型进行值传递;:Object 的 clone 方法是一个浅拷贝,如果它拷贝的对象中有其他对象,那么其中的对象是不会得到彻底的拷贝。● 深拷贝:对基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容,此为深拷贝。深拷贝是彻底的拷贝,两对象中所有的成员都是独立的一份,而且,成员对象中的成员对象也是独立一份。● 引用拷贝: 是对引用地址的拷贝,说明引用地址一样,指向堆中的对象是同一个对象。浅拷贝中的某些成员变量可能是共享的,深拷贝如果不够彻底,就是浅拷贝。
2023-11-29 16:51:50 1171 1
原创 面试常问-如何判断链表有环、?
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。可以使用快慢指针法, 分别定义 fast 和 slow指针,从头结点出发,fast指针每次移动两个节点,slow指针每次移动一个节点,如果 fast 和 slow指针在途中相遇 ,说明这个链表有环。每次遍历完一个节点,将它的下一个节点指向初始节点,然后继续遍历: 如果下一节点为空,没有换 如果下一节点的下一指针为root,有环。解释:链表中有一个环,其尾部连接到第二个节点。解释:链表中有一个环,其尾部连接到第一个节点。
2023-11-27 20:17:09 1163
原创 对称加密与非对称加密的区别是什么?
顾名思义,非对称加密的加密密钥和解密密钥是不同的,涉及两个密钥,分别称为公开密钥(public key)和私有密钥(private key)。不足之处是,交易双方都使用同样密钥,所以对称加密的安全性就不仅仅取决于加密算法本身,更取决于密钥是否被安全的保管和传输,因此加密发送方如何把密钥安全地传递到解密接收方手中,才是对称加密面临的关键问题。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一密钥,这会使得发收信双方所拥有的钥匙数量呈几何级数增长,密钥管理成为用户的负担。
2023-11-26 15:19:27 1881
原创 面试:25匹马,5个赛道,选出前三,最优解
这个题很多人在没看过的情况下突然被面试官问及可能耗时较久,最近面试遇到了这个题,结合网上答案讲总结一下。
2023-11-25 20:13:44 2157
原创 一文解决Linux系统下安装并配置Java环境变量
下载完成后,将需要安装的jdk安装包放到Linux系统指定的文件夹下,并且命令进入该文件夹下。
2023-10-12 03:00:00 1029
原创 跨域问题-笔记
跨域指的是不同服务器之间不能相互访问各自的资源或者数据,这出于一个策略——“同源策略”,那么为什么要这么设计呢,这是因为,一些网站的数据可能涉及的用户的隐私,因此不属于当前服务器的网站是不能访问它的,就比如,我们登陆淘宝后,由不小心点进了其他的一个钓鱼网站,如果说不这么设置,那么钓鱼网站就可以获取到你的登陆账号和密码,进而可以达到使用你的账户购买东西的目的,因此跨域是出于安全的考虑而诞生的。当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域。
2023-10-11 22:07:52 945
原创 报错:java.sql.SQLSyntaxErrorException: Table ‘examsys.Teacher’ doesn’t exist
如果表名的大小写与数据库中实际的表名不匹配,会导致找不到表的错误。2. 验证数据库连接:确保应用程序连接的是正确的数据库,并且数据库服务器处于运行状态。数据库连接问题:连接到错误的数据库或服务器可能会导致无法找到表。请确保您的应用程序连接的是正确的数据库,并且数据库服务器处于运行状态。数据库权限问题:如果应用程序连接的数据库用户没有访问表的权限,也会导致找不到表的错误。3. 检查数据库权限:确保连接数据库的用户具有足够的权限来访问表。1. 检查表名拼写:确保表名的拼写与数据库中实际的表名一致,包括大小写。
2023-09-30 01:30:00 1085
原创 String常见面试题
/true ,比较地址值,都在常量池,相等//true,equals中,先判断两个对象的地址值,地址值相同,默认就是同一个对象,不会继续equalse中的具体值是否相等的判断了,直接会返回true。//false//true//true 地址值相同,都是常量,在常量池里面//true 地址值相同,默认同一个对象,值当然也是相等的。//false 不相等,s1是变量,编译的时候确定不了值,在内存中会创建值,s3在堆内存中,。
2023-09-29 20:45:30 949
原创 算法之双指针题型:
力扣题目链接双指针分为:快慢双指针:同一个起点,同向出发相向双指针:从两端出发,方向相反,终会相遇经典的双指针(快慢双指针) 代码随想录上面有动图,很清楚题目:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
2023-09-06 18:08:27 1286
原创 并发和并行的区别 以及什么是串行,还有同步和异步;阻塞非阻塞;还有进程、线程、协程一次说清。
并发:多个任务在同一个 CPU 核上,按细分的时间片轮流(交替)执行,从逻辑上来看那些任务是同时执行。并行:单位时间内,多个处理器或多核处理器同时处理多个任务,是真正意义上的“同时进行”。串行:有n个任务,由一个线程按顺序执行。由于任务、方法都在一个线程执行所以不存在线程不安全情况。同步:同步是指一个线程在执行某个请求的时候,如果该请求需要一段时间才能返回信息,那么这个进程会一直等待下去,直到收到返回信息才继续执行下去。
2023-08-23 23:52:59 1181
原创 内部类、访问权限符、代码块总结
内部类是类的五大成分之一:成员变量,方法,构造器,代码块,内部类概念:定义在一个类里面的类就是内部类作用:提供更好的封装性,体现出组件思想,间接解决类无法多继承引起的一系列问题分类:静态内部类、实例内部类(成员内部类)、局部内部类、匿名内部类(重点)
2023-08-14 09:58:59 1222
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人