自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MyBatis-Plus-自定义模板-生成代码

MyBatis-Plus代码生成器所需jar包:<!--逆向生成代码--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.3.1</version>

2021-07-31 18:49:29 1217 1

原创 代理和装饰设计模式

1.代理模式:为其他对象提供一种代理以控制对这个对象的访问。代理模式中的三个角色:1.抽象主题(subject):该角色是真实主题和代理主题的共同接口,以便于在任何可以使用真实主题的地方都可以使用代理主题。2.代理主题(proxy subject):代理类(委托类),该角色负责控制对真实主题的引用,在真实主题角色处理完毕的前后做预处理和后处理工作。3.真实主题(real subject):被代理的对象,业务逻辑的具体执行者。代理设计模式的代码体现:抽象主题:/** * 抽象主题 */p

2021-07-30 14:47:31 866

原创 字节流和字符流简单操作

常用的I/O流:1.字节流:/** * 输出字节流--写操作 * * @param filePath */ public static void fileOutputStreamTest(String filePath) { FileOutputStream fos = null; try { fos = new FileOutputStream(filePath); Str

2021-07-21 11:16:18 1188

原创 多线程的wait和nofify方法的使用

wait():让当前线程进入等待状态,同时,wait()也会让当前线程释放它所持有的锁。“直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法”,当前线程被唤醒(进入“就绪状态”)notify()和notifyAll():则是唤醒当前对象上的等待线程;notify()是唤醒单个线程,而notifyAll()是唤醒所有的线程。wait(long timeout): 让当前线程处于“等待(阻塞)状态”,“直到其他线程调用此对象的notify()方法或 notifyAll() 方法

2021-07-20 18:20:46 1432

原创 如何停止线程

代码实现,展现使用stop方法停止线程,出现数据不一致的情况:资源类:public class Book { private Long createTime; private Long updateTime; public Book() { this.createTime = 0l; this.updateTime = 0l; } public Long getCreateTime() { return

2021-07-20 17:38:18 993

原创 多线程实现简单抢票功能

1.多线程实现抢票:票,资源类public class Ticket { public Integer num; public Ticket(Integer num) { this.num = num; }}线程类具体的处理细节public class MyThread extends Thread { private Ticket ticket; public MyThread(Ticket ticket) { thi

2021-07-20 16:24:58 2554 1

原创 多线程实现分段数据处理和文件复制

使用多线程实现分段处理数据,多线程复制文件@Slf4jpublic class ThreadUtil { /** * 将数据分段使用多线程处理 * * @param dataList 源数据 * @param threadSize 每几条数据创建一个线程 * @param threadTaskFunction 函数式接口,里面是具体处理细节 * @return * @throws Exce

2021-07-20 15:34:55 1455

原创 Spring的createBean()流程源码解析(持续更新中)

承接上篇的getSingleton()方法,缓存中不存在对应bean的实例,开始创建对象createBean方法开始创建对象protected Object createBean(String beanName, RootBeanDefinition mbd, @Nullable Object[] args) throws BeanCreationException { if (logger.isDebugEnabled()) { logger.debug("Creating instan

2021-06-09 17:21:59 1191

原创 使用itext框架填充pdf模板

所需jar的pom坐标 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.10</version> </dependency> <dependency>

2021-06-09 16:38:07 1264

原创 xml与map的相互转换

import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationE

2021-06-08 17:56:40 5926

原创 Spring的getBean()流程源码解析

承接上篇Spring的bean加载流程,这里开始分析Spring的getBean(beanName)方法,该方法会触发容器对Bean实例化和依赖注入过程://调用抽象类AbstractBeanFactory的getBean()方法public Object getBean(String name) throws BeansException { //doGetBean才是真正向IoC容器获取被管理Bean的过程 return doGetBean(name, null, null, false)

2021-06-08 13:12:43 1442

原创 Spring的bean加载流程源码分析

创建Spring容器,并设置配置文件路径,这段代码实现了什么功能?ApplicationContext ac = new ClassPathXmlApplicationContext("application-context.xml");点击进入ClassPathXmlApplicationContext内部://这里是ClassPathXmlApplicationContext的构造函数public ClassPathXmlApplicationContext(String configLoca

2021-06-04 13:04:04 1172

原创 sql server数据迁移到mysql

第一种方式(适用单个表且数据量比较少):1.打开sql server要迁移的表2.在查询结果上操作:3.新建一个excel文件,选择第一行,粘贴:4.在mysql中创建好对应字段的表结构:5.使用Navicat连接mysql进行下面操作打开表,选择导入操作选择要导入的excel文件这里设置excle的列名和数据表中的字段对应关系然后,可以一直点击下一步,最后点击开始即可。...

2021-06-02 14:34:08 4732

原创 BigDecimal的保留指定位数、加减乘除、转换百分比

1.BigDecimal基本操作:BigDecimal num1 = new BigDecimal(“0.8234”);BigDecimal num2 = new BigDecimal(“0.5234”);//加法 add()函数System.out.println("num1 + num2 = "+num1.add(num2));//减法subtract()函数System.out.println("num1 - num2 = "+num1.subtract(num2));//乘法multi

2021-06-02 09:22:26 1973

原创 mysql日期转换

Mysql日期转换1.mysql常用的日期函数://获取当前日期(yyyy-MM-dd hh:mm:ss)SELECT NOW() FROM DUAL #2021-06-01 17:42:30//获取当前日期(yyyy-MM-dd)SELECT CURDATE() FROM DUAL #2021-06-01//获取当前日期(hh:mm:ss)SELECT CURTIME() FROM DUAL #17:42:30//获取当前日期的时间戳SELECT UNIX_TIMESTAMP(NO

2021-06-01 18:13:52 11161

原创 Java获取指定时间段内的日期

Java日期总结:1.获取每天的开始时间和结束时间 /** * 获取每天的开始时间 * @param date * @return */ public static Date getDayStartTime(Date date){ Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.set(Calendar.HOUR_OF_DAY, 0)

2021-05-31 11:50:31 2704

原创 Java实现商品sku属性组合

开发中实现商品模块时,会遇到商品sku组合问题,有两种解决方案,一种由前端实现sku属性组合然后传递到后台;第二种则由后台实现,这里就来记录一下,如何使用java的for循环实现sku商品属性组合: public static void getSku(List<List<String>> sourceList){ //获取sourceList集合中的第一组属性集合 List<List<String>> targetList =

2021-05-22 14:52:24 2871

原创 Spring的初始化和对象创建流程

Spring容器的初始化和对象创建流程(代码方面):如图:1.Spring容器初始化流程:文字说明:在ClassPathXmlApplicationContext的构造函数中:super(parent);//调用父级的构造方法,构造父类对象和初始化相关属性,供子类使用。setConfigLocations(configLocations);该方法会对资源路径实现相关处理:比如,若资源路径中含有Spring-${username}.xml,资源占位符时,该方法就会对资源路径实现替换和赋值操作

2021-05-21 18:34:51 2092

原创 Spring初始化和创建对象概念流程

Spring初始化和创建对象流程大致流程概念图:文字说明:Spring项目启动后,首先创建Spring容器,然后加载xml等配置文件、解析,将读取到的内容存放到BeanDefinition(bean的定义信息中);Spring容器在完成相关初始化和配置后,开始从Spirng容器中获取beanDefinitionNames(bean定义信息的名称集合),然后遍历beanName,去调用getBean()方法,触发容器对Bean实例化和依赖注入过程。在Spring中,实例化和初始化是分离的, 实例

2021-05-20 18:34:55 1357

原创 swagger接口文档出现的空文档问题

记一次使用swagger接口文档出现的空文档问题问题描述:上面显示的一些空文档下面的才是真正的正确文档:最终尝试发现问题:原因:**@Api(value = "ExamPaperController")**和方法上面的@ApiOperation(value = "ExamPaper条件分页查询",notes = "分页条件查询ExamPaper方法详情" ,**tags = {"ExamPaperController"}**)value 与 tags 对应不一致问题解决方案:方案1.将@

2021-05-18 11:25:23 2729

原创 Spring源码乱码问题--已解决

解决Spirng源码启动出现乱码问题问题描述:如图:1.在源码中添加中文注释,启动出现如下问题2.在打印数据时出现中文解决方法:

2021-05-11 13:04:40 3185 3

空空如也

空空如也

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

TA关注的人

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