Java
文章平均质量分 51
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
奋斗的新丁
奋斗着并不断成长的菜鸟新丁
展开
-
使用mybatisplus操作mysql给select加数据行的排它锁并释放锁
然后调用 selectOne() 方法执行查询操作,将查询结果保存在 User 对象中。同样地,要释放锁需要执行 commit 或 rollback 操作,这样会自动释放所有的锁。这里调用 updateById() 或 update() 方法执行业务操作,然后调用 commit() 方法提交事务,释放所有锁。如果操作出现异常,则调用 rollback() 方法回滚事务,同时也会释放所有锁。这样就可以使用 MyBatis-Plus 查询时加上数据行的排它锁,并在需要的时候释放锁。同样地,要释放锁需要执行。原创 2023-05-04 19:36:23 · 2401 阅读 · 1 评论 -
图片的base64字符串添加水印并转为byte数组输出
有需求将前端传过来的图片base64添加水印并保存到文件服务器中,所以写一个公共方法,该方法实现了水印文字居中,并且倾斜。原创 2023-04-13 09:40:48 · 588 阅读 · 0 评论 -
xxl-sso源码解读(基于Cookie)
讲解xxl-sso源码,帮助了解xxl-sso实现原理和对于跨域单点登录的处理方法原创 2022-06-17 20:14:48 · 1343 阅读 · 3 评论 -
java获得请求IP
public static String getRemoteIp(HttpServletRequest request) { String remoteAddr = request.getRemoteAddr(); String remoteIp = request.getHeader("X-Forwarded-For"); if (isBlank(remoteIp) || LOCAL_HOST_IP.equals(remoteIp)) { ...原创 2022-04-25 16:30:06 · 1671 阅读 · 2 评论 -
xxl-job(2.0.2)使用文档
依赖与配置文件引入依赖<!-- xxl-rpc-core --> <dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-rpc-core</artifactId> <version>${xxl-rpc.version}</version> </dependency> <!-- groovy原创 2021-12-02 17:59:43 · 971 阅读 · 0 评论 -
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的SID给程序配置新的数据库的时候,出现了以下错误ORA-12505, TNS:listener does not currently know of SID given in connect descriptor说明给到的sid有误,很有可能就是服务名和sid混淆使用。首先了解数据库url的写法有两种//监听sid服务,表示sid为orcldatabase.url=jdbc:oracle:thin:@171.x.原创 2021-10-26 15:39:39 · 272 阅读 · 0 评论 -
类加载连接的解析步骤中符号引用替换为直接引用是什么意思
首先看图,当一个Java类被编译成Class之后,假如这个类称为A,并且A中引用了B,那么在编译阶段A是不知道B有没有被编译的,而且此时B也一定没有被加载,所以A 肯定不知道B的实际地址,那么此时在A的class文件中,将使用一个字符串S来代表B的地址,S就被称为符号引用,在运行时,如果A发生了类加载到了解析阶段会发现B还未被加载,那么将会触发B的类加载,将B加载到虚拟机中,此时A中B的符号引用将会被替换为B的实际地址,这被称为直接引用。这样也能真正的调用B了。 但...原创 2021-09-26 09:00:52 · 2220 阅读 · 3 评论 -
阿里云视频点播上传视频时InvalidStorage.NotFound
使用javaSDK上传视频文件,按照官方文档最后会报错InvalidStorage.NotFoundThe StorageLocation does not exist.在官方文档中查看错误原因说是设置的存储地址不存在,登录点播控制台,选择配置管理>媒资管理配置>存储管理里查看确认。但是我设置默认存储地址后还是会报错这里解决办法就是在代码中手动设置再上传就可以了...原创 2021-07-14 22:51:56 · 2436 阅读 · 3 评论 -
springboot使用事务
在springboot的启动类或者某个@Configuration上加上@EnableTransactionManagent开启事务的支持在service中使用@Transactional就可以使用事务了,@Transactional添加在方法中,方法支持事务,如果将@Transactional添加在类上,则整个类的所有方法都默认支持事务注意:@Transactional默认回滚的是RuntimeExcaption,如果不是抛出的RuntimeException则不会被回滚,在sprin..原创 2021-07-11 22:00:28 · 837 阅读 · 0 评论 -
spring boot 文件上传大小限制
spring boot 文件上传是有默认的文件大小限制的,要是想更改可以在配置文件中spring.servlet.multipart.max-file-size = 100MB #设置单个文件的大小spring.servlet.multipart.max-request-size = 150MB #设置单次请求的文件的总大小如果是想要不限制文件上传的大小,那么就把两个值都设置为-1就可以了...原创 2021-06-30 16:09:31 · 7450 阅读 · 0 评论 -
搭建项目——统一日志处理
spring boot内部使用Logback作为日志实现的框架。Logback和log4j非常相似,如果你对log4j很熟悉,那对logback很快就会得心应手。logback相对于log4j的一些优点:https://blog.csdn.net/caisini_vc/article/details/48551287...原创 2021-06-11 08:53:01 · 159 阅读 · 0 评论 -
搭建项目——统一异常处理
我们想让异常结果也显示为统一的返回结果对象(可以看我的统一返回数据格式文章),并且统一处理系统的异常信息,那么需要统一异常处理。原创 2021-06-10 17:27:59 · 170 阅读 · 0 评论 -
搭建项目——统一返回数据格式
项目中我们会将响应封装成json返回,一般我们会将所有接口的数据格式统一, 使前端对数据的操作更一致、轻松。 一般情况下,统一返回数据格式没有固定的格式,只要能描述清楚返回的数据状态以及要返回的具体数 据就可以。但是一般会包含状态码、返回消息、数据这几部分内容...原创 2021-06-10 17:09:26 · 168 阅读 · 0 评论 -
springboot整合mybatis-plus(快速上手)
简介官网教程:简介 | MyBatis-Plus (baomidou.com)原创 2021-06-09 17:05:57 · 252 阅读 · 1 评论 -
spring AOP记录操作日志的demo
import com.alibaba.fastjson.JSON;import com.study.stuhealth.enums.StateEnums;import com.study.stuhealth.pojo.Log;import com.study.stuhealth.service.LogService;import com.study.stuhealth.utils.StringUtils;import com.study.stuhealth.utils.ThreadLocalCo.原创 2021-04-28 10:25:19 · 145 阅读 · 0 评论 -
垃圾收集器
Serial收集器Serial收集器是最基本,发展最悠久的收集器,在JDK1.3.1之前是虚拟机新生代垃圾回收的唯一选择。这个收集器是一个单线程的。它的单线程的意义并不仅仅说明它只会使用一个CPU或者一条收集线程去完成收集工作,最重要的是,它进行垃圾收集时,其他工作线程会暂停,直到收集结束。这项工作由虚拟机在后台自动发起和执行的,在用户不可见的情况下将所有工作线程全部停掉,这对于很多应用程序来说是不可容忍的。我们可以设想一下,我们的计算机在运行1个小时就要停止5分钟的时候,这是什么情况?对于这种设计,虚原创 2021-03-03 11:28:09 · 117 阅读 · 0 评论 -
jvm垃圾回收机制
JAVA的引用java中引用包括下面四种: 强引用 程序中普遍存在的类似“Object object=new Object()”这种类型的引用属于强引用。垃圾回收器永远不会回收被强引用所引用的对象。 软引用 用以描述有用但却并非必需的对象。对于软引用所引用的对象,在系统将要发生oom异常之前,将会对这些对象列进回收范围之中进行第二次回收。 弱引用 用于描述非必需的对象,强度较软引用弱。软引用关联的对象只能生存到下一次垃圾收集发生之前。无论当前内存是否足够,它都会在垃原创 2021-02-20 08:44:55 · 105 阅读 · 0 评论 -
java基础强化之JVM内存结构剖析
一、JVM概述1.1什么是JVMJava Virtual Machine:Java虚拟机,用来保证Java语言跨平台。Java虚拟机可以看做是一台抽象的计算机,如同真实的计算机那样,它有自己的指令集以及各种运行时内存区域Java虚拟机与Java语言并没有必然的联系,它只与特定的二进制文件格式(class文件格式所关联)Java虚拟机就是一个字节码翻译器,它将字节码文件翻译成各个系统对应的机器码,确保字节码文件能在各个系统正确运行1.2为什么要学习JVM想必大部分小伙伴是为了面试(哈哈!原创 2021-02-19 15:08:41 · 132 阅读 · 0 评论 -
单例模式
懒汉式public class Singleton { private static Singleton instance; private Singleton() { } public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instan原创 2021-02-19 14:00:05 · 85 阅读 · 2 评论 -
视频学习笔记------系统学习让你轻松定义 Java 类加载器
视频地址:https://www.bilibili.com/video/BV1vJ41177cw简介类加载就是将磁盘上的class文件加载到内存中。本课程详细分析了从编写一个类到编译、加载的整个过程。从讲解java虚拟机内置的三个类加载器开始,分别介绍了他们的作用,并重点讲解了类加载器的双亲委派机制。 针对JDK中提供的ClassLoader和URLClassLoader中的主要方法进行了细致的分析,明确了双亲委派模式的实现代码。另外使用案例对URLClassLoader的使用进行了详细说明。内原创 2021-02-19 10:28:11 · 174 阅读 · 1 评论 -
Excel导出功能(简单方便好用)
参考:https://blog.csdn.net/qq_36403693/article/details/103336784前端代码 exportAll() { clockinApi.exportExcel(this.page).then(res => { const blob = new Blob([res], { type: 'application/vnd.ms-excel' }) const elink = document.crea原创 2021-01-27 11:14:08 · 348 阅读 · 0 评论 -
java对象与Json字符串之间的转化(fastjson)
1. 首先引入jar包在pom.xml文件里加入下面依赖:<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.51</version></dependency>2. 创建一个Person类(方便下面使用)public class Perso原创 2021-01-11 15:54:17 · 286 阅读 · 1 评论 -
@DateTimeFormat 和 @JsonFormat 注解
1. 准备定义一个pojo,它有一个 java.util.Date 类型的属性 date。import java.util.Date; public class DateVo { private Date date; public void setDate(Date date){ this.date = date; } public Date getDate(){ return date; }}定义一个Contr原创 2020-12-16 20:04:14 · 369 阅读 · 0 评论 -
解决跨域问题(前端处理)
在vue中使用proxy进行跨域的原理是:将域名发送给本地的服务器(启动vue项目的服务,loclahost:8080),再由本地的服务器去请求真正的服务器。 1.在proxy中设置要访问的地址,并重写/api为空的字符串,因为我们真正请求的地址是没有带/api,这个重写很重要!!! 2.在创建axios实例的时候将baseURL设置为/api ,这时候我们的跨域就已经完成了。 3. 假如请求的真正地址为:http://48.96.217.56:8185/core/ge..原创 2020-12-10 22:01:38 · 2539 阅读 · 4 评论 -
shiro默认登录过期时间
shiro默认登录过期时间是30分钟可以设置//永不过期,在登陆最开始加上SecurityUtils.getSubject().getSession().setTimeout(-1000L);//其他时间单位毫秒SecurityUtils.getSubject().getSession().setTimeout(1800000);原创 2020-11-18 18:36:42 · 3781 阅读 · 0 评论 -
Spring缓存+Redis使用
注释介绍@Cacheable@Cacheable 的作用 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存@Cacheable 作用和配置方法参数 解释 example value 缓存的名称,在 spring 配置文件中定义,必须指定至少一个 例如: @Cacheable(value=”mycache”) @Cacheable(value={”cache1”,”cache2”} key 缓存的 key,可以为空,如果指定要按照.原创 2020-11-14 19:59:06 · 303 阅读 · 0 评论 -
Java 最常见 200+ 面试题全解析:面试必备(转载)
序言在本篇文章开始之前,我想先来回答一个问题:我为什么要写这样一篇关于面试的文章?原因有三个:第一,我想为每一个为梦想时刻准备着的“有心人”,尽一份自己的力量,提供一份高度精华的 Java 面试清单;第二,目前市面上的面试题不是答案不准确就是内容覆盖面太窄,所以提供一份经典而又准确的面试题是非常有必要的;第三,本文会对部分面试题提供详细解读和代码案例,让读者知其然并知其所以然,从而学到更多的知识。或许这份面试题还不足以囊括所有 Java 问题,但有了它,我相信你一定不会“败”的很惨,因为有了它,足以转载 2020-10-30 08:31:43 · 198 阅读 · 0 评论 -
处理跨域问题(后端处理)
@Configurationpublic class CorsAutoConfig { @Bean public CorsFilter corsFilter(){ UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource=new UrlBasedCorsConfigurationSource(); CorsConfiguration corsConfiguration=new CorsCon...原创 2020-10-29 18:16:33 · 179 阅读 · 0 评论 -
Excel导出
转载链接:https://blog.csdn.net/qq_36403693/article/details/103336784后端代码 @RequestMapping(value = "/export", method = RequestMethod.POST) public void export(HttpServletResponse response) throws Exception { Workbook workbook = logService.export()...转载 2020-10-29 17:49:49 · 144 阅读 · 0 评论 -
记录下shiro放行无效的问题
都知道shiro拦截校验是从上往下的,所以我们在put放行请求时最好用有序map(LinkedHashMap),如果你用HashMap就会出现你的规则会混乱,有可能最底下的跑到最上面去了。原创 2020-10-29 08:58:21 · 889 阅读 · 0 评论