基础篇
涂涂tutu.
知识源于积累。
展开
-
【Java Bean】实体类与XML之间的互相转换
最近有个需求,需要把 bean对象 转成 xml 文件,然后 xml 文件 转成对象 ( 生成 与 解析 ),废话不多说,直接上代码1. 注解// 1. 定义xml中的根属性@XmlRootElement(name="student") // 2. 需要解析什么访问权限的javaBean字段 == 如果是私有字段,类上必须加上此注解@XmlAccessorType(XmlAccessType.FIELD) // 3. 使用什么标签名包裹该类的全部属性@XmlRootElemen原创 2022-05-24 14:41:54 · 4408 阅读 · 1 评论 -
Spring 异步线程池用法总结
spring异步线程池的接口类,其实质是Java.util.concurrent.ExecutorSpring已经实现的异常线程池:1. SimpleAsyncTaskExecutor:不是真的线程池,这个类不重用线程,每次调用都会创建一个新的线程2. SyncTaskExecutor:这个类没有实现异步调用,只是一个同步操作。只适用于不需要多线程的地方3. ConcurrentTaskExecutor:Executor的适配类,不推荐使用。如果ThreadPoolTaskExecutor...原创 2021-08-24 22:31:22 · 1102 阅读 · 0 评论 -
Gson数据传输
在一次对接第三方系统数据的时候,双方采用的是Gson格式的数据传输,觉得挺有意思,现在记录一下json是一种数据格式,便于数据传输、存储、交换。gson是一种组件库,可以把java对象数据转换成json数据格式。public class TTson{ public static Gson buildGson(){ GsonBuilder builder = new GsonBuilder().serializeNulls(); r..原创 2021-08-18 23:03:54 · 227 阅读 · 0 评论 -
【记录】分片长传的实现
公司要求上传5g大的文件,之前采取设置后台文件上传时间,后面觉得此方案不行,故采取分片上传的方案来实现(前端可用webUploader插件):一. 先分片上传 /** * 分片上传 * * @param fileName 文件名称 * @param chunkNumber 当前片数 * @param file 文件 * @return */ public void uploadFile(HttpServletRequest request, Str原创 2021-08-16 22:43:57 · 124 阅读 · 0 评论 -
Spring默认定时@Scheduled不支持L、W、C关键字的解决办法
近日采用Spring默认定时@Scheduled,定时任务配置@Scheduled(cron = “0 15 10 L * ?”) 每个月的最后一天10:15”执行定时任务的时候,它在初始化Spring上下文时出现了错误: Caused by: java.lang.IllegalStateException: Encountered invalid @Scheduled method 'execute': For input string: "L" 查其原因是Spring默认..原创 2021-08-05 23:30:34 · 1954 阅读 · 0 评论 -
获取指定年的所有月份最后一天日期集合
java中取得当月最后一天的四种方法 第一种,使用Calendar的roll方法,在限制某个日期字段不改变的形式下,改变其他日期字段的值。 第二种,使用Calendar的getActualMaximum方法,获得指定日期字段的最大值。 第三种,使用Calendar的set和add方法,从下个月的第一天计算得到当前月的最后一天。 第四种,循环使用Calendar的add方法,加到本月的最后一天。一开始获取采用的是calendar来获取,但是发现Calendar的日期是从0到11来计算.原创 2021-08-05 23:16:20 · 692 阅读 · 0 评论 -
【踩坑记录】PageHelper分页后,对list操作会导致分页无效
public PageInfo<User> getTest(int pageNum, int pageSize) { //获取第pageNum页,pageSize条内容,默认查询总数count PageHelper.startPage(pageNum,pageSize); //紧跟着的第一个select方法会被分页 List<User> userList= dao.getUserList(); //获取分页信息 P.原创 2021-08-03 23:13:04 · 454 阅读 · 0 评论 -
【记录】树型数据结构的分页
近日工作中遇到了后台自行组装的数据格式,某导说要进行分页,只能进行如下操作,弊端啥数据量大的情况下第一次加载会有点慢。。。List<User> userList = dao.selecUserList(userDto);int cp =userDto.getPageNum();int ps =userDto.getPageSize();int totaCount = userList.size();int totalPage = (totaCount -1) /u...原创 2021-08-03 22:49:23 · 1334 阅读 · 0 评论 -
Jasypt加解密
今天在项目中用到Jasypt进行加密解密,在日常开发中为了数据安全,我们都会对数据库密码进行一系列的加密,Jasypt是一个通用的加解密库,它加密所需的salt(盐),以此做一次记录加解密流程如下:1.pom.xml引入坐标2.配置文件#加密的密钥jasypt.encryptor.password= test#数据配置项spring.datasource.username= userspring.datasource.password= ENC(密文)3.这里附上自己写的jasypt.原创 2021-06-28 23:04:06 · 1766 阅读 · 1 评论 -
Java8新特性Optional的踩坑日记
众所周知,Java8增加了新的特性Optional,避免了日常开发中再取属性的时候出现NPE错误,也就是大家所熟知的空指针异常NullPointException,用来代替判空操作,主要就是代替繁琐的 xxx!=null 写法,简化代码。例如:return Optional.ofNullable(school).map(School::getAdress).ofElse(null);用来代替:if(school != null){return school.getAdress();}els.原创 2021-04-19 22:54:59 · 671 阅读 · 0 评论 -
JDK自带注解的个人总结
Why is Annotation?什么是注解?注解(Annotation)也叫做元数据,是一种代码级别的说明。它是JDK1.5以后版本引入的一个特性,它可以声明在类/方法/参数/变量/包等前面,用来对这些元素进行说明,注释。注解的分类1.按照运行机制1.1 源码注解:注解只在源码中存在,编译成class文件就不存在了1.2 编译时注解:注解在源码和class文件中都会存在,例如JDK自带注解1.3 运行时注解:在运行阶段还起作用,甚至会影响运行逻辑的注解2.按照来源2.1 来自JDK自.原创 2020-12-28 11:04:54 · 373 阅读 · 0 评论 -
高并发下如何生成唯一订单号
公司做项目的时候,遇到个项目需求:如何在高并发的场景下生成唯一的订单号。方案一:如果没有并发,订单号只在一个线程内产生,那么由于程序是顺序执行的,不同订单的生成时间戳正常不同,因此用时间戳+随机数(或自增数)就可以区分各个订单。如果存在并发,且订单号是由一个进程中的多个线程产生的,那么只要把线程ID添加到序列号中就可以保证订单号唯一。如果存在并发,且订单号是由同一台主机中的多个进程产生的,那么只要把进程ID添加到序列号中就可以保证订单号唯一。如果存在并发,且订单号是由不同台主机产生的,那么MAC原创 2020-09-29 15:01:25 · 2544 阅读 · 0 评论 -
【HashMap】HashMap系列
前言谈起HashMap我们就不得不提及哈希表了,哈希(Hash)实际上是个人名,由于他提出哈希算法的概念,所以就以他的名字命名了。哈希表(hash table)也叫做散列表,是一种非常高效,复杂度为O(1)的数据结构,我们日常工作中常见的数据结构(数组。线性链表,二叉树,哈希表)等,哈希表不考虑哈希冲突的情况下,处理数据在哈希表中进行添加,删除,查找等操作效率是非常高的,应用场景非常丰富,很多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表。一. 什么是哈希表我们都知道原创 2020-09-24 18:11:26 · 201 阅读 · 0 评论 -
【插件锦集】你在撸代码的时候,会用到这些吗?
前言Eclipse/IDEA提供了一个可扩展插件的开发系统,这使得它们在运行系统之上可以实现各种功能。在我们日常开发中,合理的利用一些插件,可以大大提升我们的开发效率。以下只是本人在日常工作中的一些总结和常用插件的整理,希望能帮助到大家~一、LombokLombok是一个可以通过简单的注解形式来帮助我们简化消除一些臃肿JAVA代码的工具,通过使用对应的注解,可以在编译代码的时候生成对应的方法,使我们的代码看起来更加的整洁简练。比如实体类中的getter,setter之类的一系列方法。1.Lo原创 2020-09-17 18:20:46 · 657 阅读 · 0 评论 -
关于session的那些事儿
什么是Session?**Session是服务器为每个访问这个服务器的客户端用户创建的一个容器。**这个容器中存储的数据能够在多个request之间实现共享。而且,这个容器只属于当前这个用户,有一个唯一的id。Session技术就是在服务端存取会话的数据session的特点每个session有id,存取key-value数据有存活时间每个Session的JESSIONID不同,使每个浏览器访问自己的数据不受他人影响session图解Session如何存取数据?获取SessionHtt原创 2020-09-15 20:09:05 · 469 阅读 · 1 评论 -
【Java8】Map骚操作,你都懂了吗
总所周知,Java8最大的特性就说更多的面向函数,比如引入了Lambda等,可以更好的进行函数式编程。1.merge()merge()可以这么理解:它将新的值赋值到key(如果不存在)或更新给定的key值对应的value。源码如下: default V merge(K key,V value,BiFunction<? super V, ? super V, ? extends V> remappingFunction){ Object.requireNonNull(remappingFu原创 2020-08-20 20:47:59 · 468 阅读 · 0 评论 -
【基础篇】揭开String、StringBuilder以及StringBuffer的神秘面纱
String这个类是Java中使用的最频繁的类之一,据本仔的不完全统计,这个类每月的使用量可饶地球…呃,三四五六圈,今天刚好用到了这个类,就简单的做个总结吧,让我们一起走进科学,探索神秘的String、StringBuilder以及StringBuffer的三兄弟一、认识并了解String想要熟悉一个类,最好的办法就是动动你的小手,点击查看这个类的实现源代码,String类的实现在\jdk1.6.0_14\src\java\lang\String.java 文件中。public final c.原创 2020-06-30 23:23:50 · 318 阅读 · 0 评论 -
【基础篇】关于Java异常机制,看这篇就够了!!
Java常见异常架构图:一、异常分类1、Throwable:可抛出的,是异常的顶层父类,其他的异常或者错误都是Throwable的子类类型,只有是Throwable的体系类型,才可以使用异常的处理机制。2、Error:错误,是Throwable的子类,用于描述那些无法捕获和处理的错误情况,属于非常严重的错误,程序会停止运行。例如StackOverflowError3、Exception:异常,是Throwable的子类,用于描述那些可以捕获和处理的不正常情况,属于不太严重的错误。例如NullPoi原创 2020-06-05 20:40:08 · 875 阅读 · 2 评论 -
【基础篇】Eclipse中SVN的基本应用
## 以下是我在日常开发中经常用到的,希望能帮助到你们~~一、检出:Eclipse中选择从SVN检出项目,输入远程服务器的项目地址,拉取完整项目代码二、提交:是用本地文件覆盖远程服务器上面的文件,只有提交会导致服务器上发生变化三、更新:只是把服务器上最新版本下载到客户端,规则如下:1、如果你本地的某个文件没有修改过,而服务器上的这个文件别人已经提交过新版本,那么会用服务器上最新的文件覆盖你本地的文件;2、如果你本地的某个文件你修改过了还没有提交,服务器端的这个文件还没被别人改过,那么对你本地的原创 2020-06-04 18:09:05 · 1310 阅读 · 4 评论