java

一小时迅速入门Mybatis之Prepared Statement与符号的使用

2021-09-13
目录 一.用一用 PreparedStatement 二.用一用 Statement 三.Mybatis #{} ${} 的使用 四.ResultMap ResultType的区别 引入Mysql的Jar包以及表结构前几篇已经有了这里就不赘述了 一.用一用 PreparedStatement import java.math.BigDecimal; import java.sql.*; /** * @author 发现更多精彩 关注公众号:木子的昼夜编程 * 一个生活在互联网底层,做着增删改查的

深层剖析java应用开发中MyBayis缓存

2021-09-13
目录 什么是 MyBatis 缓存 MyBatis 缓存分类 1.⼀级缓存:SqlSession 级别,默认开启,并且不能关闭.(默认开启) 2.二级缓存:Mapper 级别,默认关闭,可以开启. 二级缓存如何使用 1.MyBatis 自带的二级缓存 1.1config.xml 配置开启⼆级缓存 1.2Mapper.xml 中配置⼆级缓存 1.3实体类实现序列化接口 2.ehcache 二级缓存(第三方) 2.1pom.xml 添加相关依赖 2.2添加 ehcache.xml 2.3config

在Java Spring框架中使用的设计模式有哪些

2021-09-13
目录 1 简单工厂模式 2 工厂方法模式 3 单例模式 4 代理模式 好处 静态代理 动态代理 1 简单工厂模式 当A对象需要调用B对象的方法时,我们需要在A中new一个B的实例,我们把这种方式叫作硬编码耦合,缺点是一旦需求发生变化,比如需要使用C类来代替B时,就要改写A类的方法. 假如应用中有上千个类以硬编码的方式耦合了B,改就很头疼. 于是有了简单工厂模式,又叫静态工厂方法,就是由一个工厂类根据传入参数,动态决定应该创建哪个产品类. Spring中的BeanFactory就是简单工厂模式的体

Java设计模式之java装饰者模式详解

2021-09-13
目录 介绍 角色 示例代码 星巴克咖啡的例子 方案一 方案二 :将调料内置到Drink类中 方案三:装饰者模式 代码演示 装饰者模式的简化 透明性的要求 半透明的装饰模式 装饰模式的优点 装饰模式的缺点 装饰模式注意事项 适用场景 设计模式在JAVA I/O库中的应用 透明和半透明的装饰模式的区别 参考文章 总结 介绍 装饰者模式(Decorator Pattern):动态地给一个对象增加一些额外的职责,增加对象功能来说,装饰模式比生成子类实现更为灵活.装饰模式是一种对象结构型模式. 在装饰者模

如何获取所有spring管理的bean

2021-09-13
目录 获取所有spring管理的bean IOC容器 使用ListableBeanFactory接口 使用Spring Boot Actuator 小结一下 spring管理bean的原理 使用spring时,获取spring注入的bean是这样 那下面我们模拟spring管理bean这个的过程 小结一下 获取所有spring管理的bean 本文我们探索使用不同的方式获取spring容器中所有bean. IOC容器 bean是基于spring应用的基础,所有bean都驻留在ioc容器中,由容器负

java设计模式责任链模式原理案例详解

2021-09-13
目录 引言 责任链模式定义 类图 角色 核心 示例代码 1.对请求处理者的抽象 2.对请求处理者的抽象 3.责任链的创建 责任链实现请假案例 案例类图 可扩展性 纯与不纯的责任链模式 纯的责任链模式 不纯的责任链模式 责任链模式主要优点 职责链模式的主要缺点 适用场景 模拟实现Tomcat中的过滤器机制 运行过程如下 分析Tomcat 过滤器中的责任链模式 引言 以请假流程为例,一般公司普通员工的请假流程简化如下: 普通员工发起一个请假申请,当请假天数小于3天时只需要得到主管批准即可:当请假天数

Java中双重检查锁(double checked locking)的正确实现

2021-09-13
目录 前言 加锁 双重检查锁 错误的双重检查锁 隐患 正确的双重检查锁 总结 前言 在实现单例模式时,如果未考虑多线程的情况,就容易写出下面的错误代码: public class Singleton { private static Singleton uniqueSingleton; private Singleton() { } public Singleton getInstance() { if (null == uniqueSingleton) { uniqueSingleton =

Spring技巧之如何动态读取配置文件

2021-09-13
目录 Spring 动态读取配置文件 需求背景 方案一 方案二 方案三 动态读取配置文件中的信息 1.首先是写一个配置文件,方便动态加载 1.利用类加载器等读取配置文件 Spring 动态读取配置文件 需求背景 最近碰到的需求大概是这样,我们要在一个现有的项目基础上进行二次开发,但又不愿意碰原有项目里的代码.所以采用了Maven依赖的方式--新建一个Maven项目作为主要开发环境,将原有项目作为Maven依赖(war形式)引入进来.这样在新建的扩展项目中打包出来的war将会是合并两个项目的所有代

详解Java关于JDK中时间日期的API

2021-09-13
目录 JDK 8中关于日期和时间的API测试 JDK 8 之前日期和时间的API测试 //1.System类中的currentTimeMillis() public void test1(){ long time = System.currentTimeMillis(); //返回当前时间与1970年1月1日0时0分0秒之间以毫秒为时间为单位的时间差. //称为时间戳 System.out.println(time);//1628416744054 } /* java.util.Date类 |-

Java设计模式之java观察者模式详解

2021-09-13
目录 引言 介绍 角色 原理类图 微信订阅号的案例 总结 优点 缺点 适用场景 观察者模式的典型应用 JDK 提供的观察者接口 Guava EventBus 中的观察者模式 Spring ApplicationContext 事件机制中的观察者模式 参考文章 总结 引言 观察者模式是设计模式中的 "超级模式",其应用随处可见,我们以微信公众号为例. 微信公众号有服务号.订阅号和企业号之分.当我们在公众号上发布一篇博文推送时,订阅的用户都能够在我发布推送之后及时接收到推送,即可方便地在手

Java 删除文件及文件夹删除不了的解决

2021-09-13
目录 Java 删除文件及文件夹删除不了 问题所在 java文件删除不了的坑,特别是压缩文件 下面列举一些情况 Java 删除文件及文件夹删除不了 问题所在 今天在编写一个项目,流程是先创建一个临时文件夹存放生成的文件,再经过压缩导出,待导出成功后删除临时文件夹,但是怎么也删除不了,还以为是写的删除方法有问题,找来找去,试了很多方法也删除不了 本来以为是打包的流没关闭,但是发现流都是关闭的,后来发现,是在生成的方法里,直接new FileWriter出来的,没有关闭,在这里提醒一下,关于操作文件

Spring Boot 如何解决富文本上传图片跨域问题

2021-09-13
目录 Spring Boot 解决富文本上传图片跨域 创建一个WebMvcConfig类 创建一个Filter类,做页面跨域的处理 springboot文件上传跨域 前端 后端 Spring Boot 解决富文本上传图片跨域 在前后端分离的情况下,后台所写的接口在前端调用的时候,可能前端浏览器已经读取到了数据,但是在前端代码ajax请求的时候,请求回调里会出现页面跨域的控制台打印错误,这个时候只需要后台配置一下头部请求就可以解决 我用的是SpringBoot,讲解一下如何配置SpringBoot

深入浅出讲解Java集合之Collection接口

2021-09-13
目录 一.集合框架的概述 二.集合框架(Java集合可分为Collection 和 Map 两种体系) 三.Collection接口中的方法的使用 四.集合元素的遍历操作 A. 使用(迭代器)Iterator接口 B. jdk5.0新增foreach循环,用于遍历集合.数组 五.Collection子接口之一:List接口 List接口方法 ArrayList的源码分析: JDK 7情况下: JDK 8中ArrayList的变化: LinkedList的源码分析: Vector的源码分析: 六.

Java设计模式之java中介者模式详解

2021-09-13
目录 引言 介绍 角色 数据库同步数据案例 不使用中介者模式的数据同步方案,各数据源维护各自的同步作业 其实这样已经实现了我们的需求,但是存在一些问题 中介者模式来重构,将数据同步的功能迁移到中介者中,由中介者来管理数据同步作业 小结 主要优点 中介者模式的主要缺点 适用场景 具体应用 Java Timer 中的中介者模式 参考文章 引言 一般来说,同事类之间的关系是比较复杂的,多个同事类之间互相关联时,他们之间的关系会呈现为复杂的网状结构,这是一种过度耦合的架构,即不利于类的复用,也不稳定.例

Java深入浅出说流的使用

2021-09-13
目录 一.File类的使用 A.常用构造器 B.路径分隔符 C.常用方法 二.流的分类及其体系 输入.输出的标准化过程 1.输入过程 2.输出过程 三.流的详细介绍 1.字节流和字符流 2.节点流和处理流(重点) 3.其他流 1.标准的输入.输出流 对象流 (重点) 对象流的使用 Person类 对象的序列化机制 随机存取文件流(了解) Java中的NIO 一.File类的使用 1.File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹) 2.File了声明在java.io包下 3.Fi

SpringBoot如何监控Redis中某个Key的变化(自定义监听器)

2021-09-13
目录 SpringBoot 监控Redis中某个Key的变化 1.声明 2.基本理念 3.实现和创建监听 4.基本demo的其他配置 5.基本测试 6.小结一下 SpringBoot自定义监听器 原理 示例 SpringBoot 监控Redis中某个Key的变化 1.声明 当前内容主要为本人学习和基本测试,主要为监控redis中的某个key的变化(感觉网上的都不好,所以自己看Spring源码直接写一个监听器) 个人参考: Redis官方文档 Spring-data-Redis源码 2.基本理念

Java线程通信中关于生产者与消费者案例分析

2021-09-13
相关方法: wait():一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器. notify():一旦执行此方法,就会唤醒被wait的一个线程,如果有多个线程被wait,就唤醒优先级高的那个. notifyAll():一旦执行此方法,就会唤醒所有被wait的线程. 说明: 1.wait(),notify(),notifyAll()三个方法必须使用在同步代码块或同步方法中. 2.wait(),notify(),notifyAll()三个方法的调用者必须是同步代码块或同步方法中的同步监视器.

一小时迅速入门Mybatis之增删查改篇

2021-09-13
目录 一.说明 二.开搞 2.1 数据库表 2.1 创建实体类 2.2 创建接口 2.3 创建XML 2.5 测试类 2.6 唠唠 一.说明 这二篇涉及到映射Java实体类.面向接口编写Mybatis.增删查改示例 怎么引入jar包,怎么配置数据库看上一篇哦~ 二.开搞 2.1 数据库表 上一篇好像丢了数据库创建语句 -- 主键自增 DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `id` bigint(20) NOT NULL AUTO_I

Java网络编程之入门篇

2021-09-13
目录 一.网络基础 二.网络协议 URL类 一.网络基础 二.网络协议 实现TCP的网络编程 例子1:客户端发送信息给服务端,服务端将数据显示在控制台上 public class TCPTest1 { //客户端 @Test public void client() { Socket socket = null; OutputStream os = null; try { //1.创建Socket对象,指明服务器端的ip和端口号 InetAddress inet = InetAddress.ge

深入浅出讲解Java中的枚举类

2021-09-13
目录 一.枚举类的使用 二.如何定义枚举类 背景:类的对象只有有限个,确定的.举例如下: > 星期: Monday (星期一).-.. Sunday (星期天) > 性别: Man (男). Woman (女) > 季节: Spring (春节).--.. Winter (冬天) > 支付方式: Cash (现金). WeChatPay (微信). Alipay (支付宝) BankCard (银 行卡). CreditCard (信用卡) > 就职状态: Busy . Fr