自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 函数式编程

lambda表达式是Jdk中的一个语法糖,可以对某些匿名内部类的写法进行简化,主要是关注对数据进行的操作。只有一个抽象方法的接口称为函数式接口,只有函数式接口的实现可以使用Lambda表达式;@FunctionInterface标识只用于验证当前接口是是否是函数式接口。

2024-03-31 23:23:45 787

原创 EasyExcel动态列导出

3、添加自定义单元格拦截策略(实现com.alibaba.excel.write.handler.WriteHandler接口)和数据类型转换策略(实现com.alibaba.excel.converters.Converter接口);4、创建Excel的Sheet页,设置第一步获取的列宽;2、根据需要导出的列获取Excel中的行数据;注解,最终生成需要显示的列名和每列的列宽;1、根据需要导出的列找到返回类对象属性的。可选择某几种属性进行导出。动态列导出

2024-02-11 18:28:43 1362

原创 itextpdf使用:使用PdfReader添加图片水印

【代码】itextpdf使用:使用PdfReader添加图片水印。

2024-02-09 14:51:16 933

原创 Spring 面向切面编程(AOP)

一般的后端开发流程是纵向开发,就是controller(控制层)->service(业务层)->mapper(数据持久层),Spring采用动态代理技术可以在程序的运行过程中对每一层进行增强,也就是面向切面编程(Aspect Oriented Programming)可以使用 (MethodSignature) ProceedingJoinPoint.getSignature() 获取方法参数使用 ProceedingJoinPoint.getArgs() 方法获取参数值

2023-12-11 01:13:57 888

原创 代理模式介绍(静态代理、jdk动态代理、cglib代理)

为其他对象提供一种代理以控制对这个对象的访问;1、代理模式的优点:(1)职责清晰:真实角色负责处理实际的业务逻辑,不用关心非本职的事务,通过代理完成附加的事务;(2)高扩展性:不同的需求可能会有不同的真实角色,只要实现了接口,代理类就可以完全在不做任何修改的情况下代理各种真实主题角色;2、静态代理模式的缺点:(1)若抽象主题角色增加功能,会影响代理类;(2)不同的功能需求可能会有不同的代理类;:方法拦截器类;:增强类;:方法代理类。

2023-12-03 21:11:14 1024

原创 模板方法模式

定义一个操作中算法的框架,将一些步骤延迟到子类中。使得子类可以不改变一个算法的机构即可重定义该算法的某些特定步骤。1、模板方法模式的优点(1)封装不变的部分,扩展可变部分。不变的部分封装到父类中实现,而可变的部门则可以通过继承进行扩展;(2)提取公共代码,便于维护;(3)行为由父类控制,子类实现,子类可以通过扩展增加相应的功能,符合开闭原则;

2023-11-29 22:02:23 698

原创 zip4j压缩使用总结

使用zip4j压缩文件并设置压缩包密码addFiles, addStream,ZipOutputStream使用net.lingala.zip4j.exception.ZipException: file name is empty for external streamnet.lingala.zip4j.exception.ZipException: input file is null

2023-11-22 22:14:43 1562

原创 抽象工厂模式

2. 定义(1)为创建一组相关或相互依赖的对象提供一个接口,无须指定它们的具体类;(2)抽象工厂模式是工厂方法模式的进一步抽象,抽象工厂方法模式针对的是一族产品,如果产品族中只有一种产品,则抽象工厂模式退化为工厂方法模式;3. 抽象工厂模式涉及到的角色(1)抽象工厂角色:抽象工厂模式的核心,与应用系统无关,任何创建对象的工厂必须实现这个接口;(2)具体工厂角色:实现了抽象工厂接口,含有选择合适产品对象的逻辑,受到应用程序调用以创建产品对象;(3)抽象产品角色:定义产品的共性;(4)具体产品角

2023-11-21 22:47:36 357

原创 EasyExcel导出替换列中的变量

可以在实体类中的列自定义变量,生成excel时实现列的动态变化

2023-11-12 22:47:21 259

原创 工厂方法模式介绍

定义一个创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。工厂方法涉及的角色有:1 .抽象工厂角色:工厂方法模式的核心,与应用系统无关,任何创建对象的工厂类必须实现这个接口。2. 具体工厂角色:实现了抽象工厂接口,被应用程序调用以创建产品对象。3. 抽象产品角色:定义产品的共性,实现对产品抽象的定义。4. 具体产品角色:实现抽象产品角色所声明的接口。(1)提高扩展性:在增加产品类的情况下,只要适当调整具体的工厂类或扩展一个工厂类,就可以适应变化。

2023-08-23 23:10:27 605

原创 接口和抽象类的区别

接口和抽象类的区别

2023-08-05 16:35:01 79

原创 springBean生命周期解析

SpringBean实例化、初始化

2023-08-05 10:12:13 629

原创 策略设计模式

针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换,使算法可以在不影响到客户端的情况下发生改变;环境角色(上下文角色):屏蔽高层模块对策略的直接访问,持有一个策略类的引用;抽象策略角色:对策略、算法进行抽象,通常定义每个策略或算法必须具有的方法和属性;具体策略角色:实现抽象策略中的具体操作,有具体的算法;(1)策略模式使用继承的方法可以把公共的代码移到父类中,避免代码重复;(2)避免算法的使用者和算法本身混合到一起,便于扩展;

2023-06-05 19:18:49 78 1

原创 单例设计模式

1、确保一个类只有一个实例,可以用在建立目录、数据库连接等需要单线程操作的场合,用于实现对系统资源的控制;2、单例类的构造方法是私有的,避免外部使用构造方法创建实例;3、单例类不能被继承,因为其构造函数是私有的;(1)减少了内存开支,由于单例类的实例没有被频繁创建、销毁;(2)减少了系统的性能开销,可以应用于读取配置、产生其它依赖对象,让其在应用启动期间保存在内存中;(3)避免对资源的多重占用;(4)可以优化和共享资源访问,例如数据表的映射处理;

2023-06-04 17:35:42 37

原创 jdk动态代理

需要实现InvocationHandler接口/*** @description: 代理调用处理器target = t;if(args!

2023-05-14 13:51:17 72

原创 easyexcel复杂表格生成

easyexcel复杂表格生成,同一列同时包含图片和字符串数据,多行子数据拆分

2023-02-02 21:42:39 1124 1

原创 内部类记录

java内部类记录

2023-01-20 21:55:07 47

原创 stream表达式常用总结

分组:groupingByMap<String, List<FormDefinitionHis>> typeMap = formDefinitionHisList .stream().collect( Collectors.groupingBy(FormDefinitionHis::getFormTypeId) );

2023-01-19 19:49:45 218

转载 shell定时任务

#crond定时方式的配置vim /etc/crontab #在最后一行加上定时任务的配置#每分钟执行一次*/1 * * * * root /usr/local/shell/test.sh#修改crontab的配置后需要重启crontab,使配置生效/bin/systemctl restart crond.service#检测cron定时服务是否自启用systemctl is-enabled crond.service#enable表示已启用自启动#disable标识未启用自启动#启动

2022-04-07 16:48:24 414

原创 linux常用命令

1、查看占用空间du -h -x --max-depth=1可查看到当前文件夹下每个文件或文件夹的存储空间2、拷贝1、跨服务器拷贝scp test.txt [email protected]:/usr/local2、重命名mv test.txt test1.txt3、拷贝一份相同的文件cp test.txt test1.txt...

2022-04-06 11:05:27 870

原创 vue-cli使用

1、安装node.js(1)下载地址:https://nodejs.org/zh-cn/download/(2)打开cmd命令窗口,输入node –v,npm –v查看是否能打印版本信息2、vue-cli安装(1)卸载旧版本的npm:npm uninstall vue-cli -g(2)安装淘宝镜像:npm install -g cnpm -registry=https://registry.npm.taobao.org(3)查看cnpm版本:cnpm -v3、创建vue项目(1)进入工作空

2021-05-26 22:09:23 187

原创 java反射

一、根据方法名及类对象进行操作 public <T> Object grabData(T proxyObject, String methodName, Map<String, Object> paramMap) { Object o = null; try { //加载class文件到jvm中并进行初始化 Class cls = Class.forName(proxyObject.getClass().get

2021-05-02 18:48:49 80

原创 文件下载-java

public static void downLoadFile(HttpServletRequest request,HttpServletResponse response,String fullPath) throws IOException { OutputStream outp = response.getOutputStream(); File file = new File(fullPath); if (file.exists()) { //设置请求以及响应的内容类型以及编码方

2020-09-25 22:19:51 99

原创 获取项目路径的方式

获取项目路径:this.getClass().getClassLoader().getResource("").getPath()

2020-09-23 21:58:58 70

原创 POI导出word单元格合并

1、跨列合并 //合并单元格 for (int cellIndex = 2; cellIndex <= 3; cellIndex++) { XWPFTableCell cellMerge = row.getCell(cellIndex); if ( cellIndex == 2 ) { // The first merged cell is set with

2020-06-26 16:51:13 3777 1

原创 JDBC Realm使用及返回身份验证信息

一、JDBC Realm使用1、导入jar包:c3p0-0.9.1.2.jar、junit-4.10.jar、log4j-1.2.17.jar、mysql-connector-java-5.1.37-bin.jar、shiro-core-1.4.0.jar、slf4j-api-1.6.1.jar、slf4j-log4j12-1.6.1.jar我这里使用的是c3p0连接池2、查看org.apa...

2020-02-18 12:27:53 275

原创 SSM开发之mybatis整合

mybatis下载地址:https://github.com/mybatis/mybatis-3/mybatis用到jar包:myBatis-3.4.1.jar、mysql-connector-java-5.1.37-bin.jar、log4j.jarmybatis整合Spring用到的jar包:mybatis-spring-1.3.0.jar一、...

2020-02-10 12:25:12 136

原创 SSM开发之Spring整合

Spring用到的jar包有:spring-beans-4.0.0.RELEASE.jar、spring-context-4.0.0.RELEASE.jar、spring-core-4.0.0.RELEASE.jar、spring-expression-4.0.0.RELEASE.jar、commons-logging-1.1.3.jar、com.springsource.net.sf.cglib...

2020-02-07 22:47:27 89

原创 SSM开发之SpringMVC整合

SpringMVC用到的jar包有spring-aop-4.0.0.RELEASE.jar、spring-beans-4.0.0.RELEASE.jar、spring-context-4.0.0.RELEASE.jar、spring-core-4.0.0.RELEASE.jar、spring-expression-4.0.0.RELEASE.jar、commons-logging-1.1.3.ja...

2020-02-05 17:16:07 209

原创 SSM开发之jquery整合

SSM开发之jquery整合一、jquery下载和使用1、进入jquery官网(https://jquery.com),点击下载jquery,如下图:2、将下载好的文件拷贝到项目中,如下图:3、在jsp文件中引用<script type="text/javascript" src="<%=basePath%>/jquery/jquery-3.4.1.js">&...

2020-02-01 17:45:42 1175

原创 SSM开发之bootstrap整合

一、下载bootstrap1.进入bootstrap官网,地址为https://www.bootcss.com,如下图2.选择bootstrap进行下载,我这里下载的是bootstrap3,如下图二、bootstrap使用1.解压压缩包,粘到项目中,如下图2.在jsp中引用bootstrap的js和css<%@ page language="java" contentTyp...

2020-01-29 11:49:25 830

原创 SSM整合相关地址使用

mybatis源码包下载mybatis源码包下载https://github.com/mybatis/mybatis-3

2020-01-28 17:47:29 255

转载 使用JsonObject需要的jar包

原文链接JSONObject所必需的6个jar包:commons-beanutils-1.7.0.jarcommons-collections-3.1.jarcommons-lang-2.5.jarcommons-logging.jarezmorph-1.0.3.jarjson-lib-2.1-jdk15.jar下载地址:http://mvnrepository.com...

2019-09-09 23:04:14 1260

原创 jdbc使用

jdbc使用package com.rocket.framework.practice.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;import java.util.UUID;public c...

2019-08-31 16:45:58 77

原创 遍历Map的方式

随便往map里面加点儿数public static Map<String, Object> addMap() { Map<String, Object> map = new HashMap<String, Object>(); for(int i=1; i<=15; i++) { map.put("第" + i + "个数", i); ...

2019-08-31 11:42:06 89

原创 java序列化及反序列化

java序列化(一)java序列化的官方概念:将对象转换为一串二进制字节数组,可以保存到磁盘或传输网络,磁盘或网络接收者在对象的属类的模板来反序列化类的对象,达到对象持久化的目的。(二)序列化的步骤1、实现java序列化的接口(java.io.Serializable)package com.rocket.framework.practice.serialize;import jav...

2019-08-25 22:27:43 148

转载 Mapped Statements collection does not contain value for

https://blog.csdn.net/weixin_37685640/article/details/79422875

2019-04-13 08:46:35 107

原创 jquery各种监听事件

按钮点击事件:$('id').on('click', function() {});下拉框option改变事件:$('id').change(function() {});鼠标滑动事件$('id').mousemove(function() {});datetimepicker(事件控件)改变时间事件$('id').datetimepicker({ langu...

2019-04-03 15:04:00 16674

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除