自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(186)
  • 资源 (3)
  • 收藏
  • 关注

原创 json字符串转JSONObject和JSONArray以及取值的实例

import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class JsonTest { public static void main(String[] args) { String joStr = "{name:\"张三\",age:\"20\"}"; //将json字符串转化为JSONObject JSONObject jsonObject = JSONObject.from.

2024-02-19 16:05:25 201

原创 Seata入门

Seata AT模式是基于二阶段提交的事务模式,优点是对原有业务无入侵性,入门简单。在 AT 模式下,用户只需关注自己的“业务 SQL”,用户的 “业务 SQL” 作为一阶段,Seata 框架会自动生成事务的二阶段提交和回滚操作。

2024-02-19 14:09:13 621

原创 代理模式(Proxy模式)

所谓的代理,就是一个人或者一个机构代替另一个人或者另一个机构去做一些事情(类似于中介或者代理商)。

2024-02-19 11:16:40 569

原创 模板方法模式

模板方法模式是一种行为型设计模式,它定义一个操作(模板方法)的基本组合与控制流程,将一些步骤(抽象方法)推迟到子类中,在使用时调用不同的子类,就可以达到不改变一个操作的基本流程情况下,即可修改其中的某些特定步骤。(1)开发框架,通常框架会定义一些通用的模板,子类可以根据自身的特定需求来细化模板的实现细节,比如 Spring 中的 JdbcTemplate、RestTemplate、RabbitTemplate、KafkaTemplate 等。(1)封装不变部分,扩展可变部分。

2024-02-19 10:48:23 599

原创 Springboot 配置使用 Elasticsearch

id这个字段一定要有,作为主键索引,这个@Document里面的indexName就相当于mysql里面的表名,在elasticsearch里面叫索引。我们用postman请求 http://localhost:8081/user/getAll,可以看到,返回了 user 的信息。下载压缩包,解压出来, bin 目录下有个elasticsearch.bat,双击,就运行起来了。然后在浏览器输入localhost:9200验证,成功会返回下面的图片。Windows安装比较简单,ES官网。

2024-02-17 17:31:00 1268

原创 观察者模式(Observer)

(2)虽然观察者模式可以随时使观察者知道所观察的对象发生了变化,但是观察者模式没有相应的机制使观察者知道所观察的对象是怎么发生变化的。(3)一个对象必须通知其他对象,但又能假定这些对象(也就是这些对象是紧密耦合的),比如数据采集模块,事先并不知道其他对象是什么。(1)当一个抽象模型,其中一个方面依赖于另一方面,把这两者封装在独立的对象中,使其可以独立的改变和复用。(1)如果一个被观察者对象有很多观察者的话,将所有的观察者都通知会花费很多时间。(1)观察者模式在被观察者和观察者之间建立一个抽象的耦合。

2024-02-04 13:43:31 472

原创 建造者模式(Builder)

​建造模式是对象的创建模式,可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

2024-02-04 11:44:38 604

原创 门面模式(Facade)

外部与一个子系统的通信必须通过一个统一的门面对象进行。这就是门面模式。门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。

2024-02-04 11:28:13 307

原创 Collectors.toMap中的NullPointerException

value 为null则报空指针错误。使用filter过滤所有NULL值。的调用过程中并不是我们平常常用的。

2024-02-02 17:38:58 334

原创 责任链模式(Chain of Responsibility)

【代码】责任链模式(Chain of Responsibility)

2023-11-04 09:52:36 397

原创 策略模式(Strategy)

策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。来形容:准备一组算法,并将每一个算法封装起来,使得他们可以互换。

2023-11-04 09:48:12 426

原创 工厂模式(Factory)

工厂方法模式和简单工厂模式在结构上的不同是很明显的。工厂方法模式的核心是一个抽象工厂类,而简单工厂模式把核心放在一个具体类上。工厂方法模式可以允许很多具体工厂类从抽象工厂类中将创建行为继承下来,从而可以成为多个简单工厂模式的综合,进而推广了简单工厂模式。此模式涉及到抽象工厂角色(汽车厂),具体工厂角色(具体的汽车车间),抽象产品角色(汽车)以及具体产品角色(私车,公交巴士)。简单工厂模式又叫静态工厂模式,顾名思义,它是用来实例化目标类的静态类。下面我主要通过一个简单的实例说明简单工厂及其优点。

2023-10-30 10:11:20 178

原创 单例模式(Singleton)

懒汉模式申明了一个静态对象,在用户第一次调用时初始化,虽然节约了资源,但第一次加载时需要实例化,反映稍慢一些,而且在多线程不能正常工作。单例模式为一个面向对象的应用程序提供了对象惟一的访问点,不管它实现何种功能,整个应用程序都会同享一个实例对象。方法时都需要进行同步,造成不必要的同步开销,而且大部分时候我们是用不到同步的,所以不建议用这种模式。这种方式在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快。这种写法能够在多线程中很好的工作,但是每次调用。

2023-10-18 17:07:16 453 2

原创 redis数据类型及使用场景

当你需要存储一个列表数据,又不希望出现重复数据时,set 是一个很好的选择,并且 set 提供了判断某个成员是否在一个 set 集合内的重要接口,这个也是 list 所不能提供的。,使得集合中的元素能够按score 进行有序排列,还可以通过 score 的范围来获取元素的列表。比如在直播系统中,实时排行信息包含直播间在线用户列表,各种礼物排行榜,弹幕消息(可以理解为按消息维度的消息排行榜)等信息。,以cookieId作为key,设置30分钟为缓存过期时间,能很好的模拟出类似session的效果。

2023-07-26 23:52:56 185

原创 nacos——注册、配置中心

第二种:在配置文件上面加上 @ConfigurationProperties(prefix = "xxx") 注解。第一种:在配置文件上面加上 @RefreshScope 注解,并用 @Value 修饰属性。启动类加 @EnableDiscoveryClient 注解。到此基本就已经配置好了,就可以开始进行用了。启动项目,可以看到服务已经注册成功。

2023-07-03 10:29:59 388

原创 docker 安装 MySQL

v /etc/localtime:/etc/localtime:ro:让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读。-v /usr/local/mysql/data:/var/lib/mysql:映射数据目录,宿主机:容器。-v /usr/local/mysql/log:/var/log/mysql:映射日志目录,宿主机:容器。-v /usr/local/mysql/conf:/etc/mysql:映射配置目录,宿主机:容器。

2023-06-15 16:13:12 835

原创 CentOS 7 docker安装、命令

Docker安装好后默认路径 /var/lib/docker ,其下的containers文件夹为容器文件夹,image为镜像文件夹。# 以上两个命令是一致的,默认拉取的就是 latest 版本的。有时候下载速度较慢,可配置一下docker使下载速度变快。#或使用国内 daocloud 一键安装命令。首先切换到docker的配置目录里面。然后保存该文件,重启docker。# 查看所有的docker容器。#查看docker当前的版本。# 查看正在运行的容器。# 拉取mysql镜像。docker拉取镜像。

2023-06-15 15:54:50 1134

原创 时间戳、日期、秒转换

【代码】时间戳、日期、秒转换。

2023-06-05 14:47:47 130

原创 多个时间段取交集、并集

多个时间段取交集、并集。

2023-06-05 11:46:04 989

原创 日志打印格式转换

【代码】日志打印格式转换。

2023-05-24 20:24:14 68

原创 postman设置不更新

目录写入权限控制,打开Postman目录右键文件夹属性,点击编辑,勾选写入拒绝,确定后更新文件就不能下载了。

2023-04-04 09:37:13 10136

原创 RabbitMQ

RabbitMQ。

2023-02-21 21:33:28 824

原创 Spring常用注解

bean注入与装配的方式有很多种,可以通过xml,get/set方式,构造函数或者注解等。简单易用的方式就是使用Spring的注解,Spring提供了大量的注解方式。

2023-02-05 21:50:58 1397

原创 Spring配置方式

被@Configuration所注解的类则表示这个类的主要目的是作为bean定义的资源。被@Configuration声明的类可以通过在同一个类的内部调用@bean方法来设置嵌入bean的依赖关系。如果你要在你的web应用开发中选用上述的配置的方式的话,需要用AnnotationConfigWebApplicationContext类来读取配置文件,可以用来配置Spring的Servlet监听器ContextLoaderListener或者Spring MVC的DispatcherServlet。

2023-02-05 17:58:55 800

原创 Spring由哪些模块组成

为JDBC DAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。Spring DAO的面向JDBC的异常遵从通用的DAO异常层次结构。:Spring框架插入了若干个ORM框架,从而提供了ORM的对象关系工具,其中包括JDO、Hibernate和iBatis SQL Map。这些模块主要被分如下图所示的核心容器、数据访问/集成、Web、AOP(面向切面编程)、工具、消息和测试模块。对JDBC的抽象,简化了数据访问异常的处理。的应用程序提供了上下文,所以,

2023-02-05 17:36:53 1992

原创 初识Spring

什么是Spring?Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。

2023-02-05 17:22:41 245

原创 Spring的内部bean

当一个bean仅被用作另一个bean的属性时,才能被声明为一个内部bean。为了定义inner bean,在Spring的基于XML的配置元数据中,可以在或元素内使用元素,内部bean通常是匿名的,它们的Scope一般是prototype。比如,在我们的应用程序中,一个Customer类引用了一个Person类,我们要做的是创建一个Person的实例,然后在Customer内部使用。

2023-02-05 16:51:38 314

原创 String、StringBuffer和StringBuilder区别

每次对存放进String当中的字符串进行更改的时候,都会生成一个新的String对象,然后指针指向该对象(虽然Java不承认自己有指针这回事),当没有引用指向对象过多的时候 ,GC就会对其进行清理,这个时候性能就会有所降低。这说明javac编译可以对字符串常量直接相加的表达式进行优化,不必要等到运行期再去进行加法运算处理,而是在编译时去掉其中的加号,直接将其编译成一个常量相连的结果。split():分割字符串,返回一个分割后的字符串数组。getBytes():返回字符串的 byte 类型数组。

2022-11-13 16:11:39 100

原创 mybatis-generator-core 自动生成使用

mybatis-generator-core 自动生成实体,mapper。使开发人员减少了很多工作量。MybatisGenerator.xml 放resource下面。

2022-09-22 11:05:43 537

原创 Mybatis控制台打印SQL

在SpringBoot中,修改application.yml文件。

2022-08-17 09:49:29 213

原创 数据库基础

关系型数据库和非关系型数据库关系型:MySQL,Oracle,SqlServer。非关系型:Redis,memcache,mogodb,hadoop等。MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属Oracle旗下产品。MySQL 是开源免费的,并且方便扩展。第一范式:列不可再分。第二范式:在第一范式上,行可以唯一区分,主键约束。第三范式:在第一第二范式上,表的非主属性不能依赖与其他表的非主属性,外键约束。1、第一范式(1st NF - 列都是不可再分)第一范式的目标是确保每列的

2022-07-13 20:33:59 2161

原创 Mapper编写有哪几种方式?

第一种:接口实现类继承SqlSessionDaoSupport使用此种方法需要编写mapper接口,mapper接口实现类、mapper.xml文件。1、在sqlMapConfig.xml中配置mapper.xml的位置2、定义mapper接口3、实现类集成SqlSessionDaoSupportmapper方法中可以this.getSqlSession()进行数据增删改查。4、spring配置第二种:使用org.mybatis.spring.mapper.MapperFactoryBean1、

2022-07-03 16:58:07 1336

原创 Java基础-基本语法

1、Java语言有哪些特点简单易学、有丰富的类库面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高)与平台无关性(JVM是Java跨平台使用的根本)可靠安全支持多线程2、面向对象和面向过程的区别面向过程:一种较早的编程思想,站着过程的角度思考问题,强调的就是功能行为,功能的执行过程,即先后顺序,而每一个功能我们都使用函数(类似于方法)把这些步骤一步一步实现。使用的时候依次调用函数就可以了。面向对象:一种基于面向过程的新编程思想,站在对象的角度思考问题,把多个功能合理

2022-04-02 09:35:55 383 1

原创 csv文件导出

import com.alibaba.excel.annotation.ExcelProperty;import com.eg.cdt.saas.operator.common.util.StringUtils;import com.eg.cdt.saas.pay.dao.dto.AutoWithdrawalExportDTO;import lombok.extern.slf4j.Slf4j;import org.apache.commons.io.FileUtils;import org.ju.

2022-01-27 15:48:08 752

原创 Java读取txt文件的内容

/** Java读取txt文件的内容 * @param filePath 文件路径 * @param encoding 编码格式 * @return */ public static String readTxtFile(String filePath,String encoding) { String lineTxt = ""; try { File file = new File(filePath.

2021-12-21 17:02:24 764

原创 swagger2测试单个文件或者多文件上传(springboot)

单个文件@ApiOperation(value = "上传视频接口",notes = "上传视频接口")@ApiImplicitParams({ @ApiImplicitParam(name = "uId",value = "上传用户ID,",paramType = "query",required = true,dataType = "int")})@PostMapping(value = "/video/uplode", headers = "content-type=m

2021-12-17 10:22:26 5134

原创 swagger 返回参数注解

第一种@ApiOperation(value = "取消/流失列表")@GetMapping("/getStudentLoseList")@ApiImplicitParams({ @ApiImplicitParam(paramType = "query", name = "type", value = "类型(0:取消分班 1:流失)",required = true,dataType = "int"), @ApiImplicitParam(paramType = "query".

2021-12-17 10:16:37 8299

原创 Swagger 参数为int数组

@ApiOperation(value = "状态", notes = "通过数组形式传入消息id")@RequestMapping(value = "/", method = RequestMethod.PUT)public ReturnInfo modifyMessageByMsgId(@ApiParam("用户ID数组") @RequestParam Integer[] ids) { for (int s : ids) { System.out.println(s); .

2021-12-17 09:32:35 681

原创 配置Swagger带token访问

第一种:设置全局token@Beanpublic Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() //加了ApiOperation注解的类,才生成接口文档 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperat

2021-12-17 09:21:12 5131

原创 Redis Template常用方法总结

Redis常用的数据类型:String Hash List Set zSet Sorted setString类型判断是否有key所对应的值,有则返回true,没有则返回falseredisTemplate.hasKey(key)有则取出key值所对应的值redisTemplate.opsForValue().get(key)删除单个key值redisTemplate.delete(key)批量删除keyredisTemplate.delete(k..

2021-12-17 09:10:55 4131

easyExcel导出合并单元格策略

easyExcel导出合并单元格策略 WriteSheet writeSheet = EasyExcel.writerSheet(i, "Sheet" + (i + 1)) .registerWriteHandler(new CustomCellWriteHandler()) //设置合并单元格策略 .registerWriteHandler(new ExcelFillCellMergeStrategy(mergeColumeIndex,"Sheet" + (i + 1))) .build();// 直接写入数据

2021-12-21

swagger返回数据注解.zip

swagger使用

2021-12-17

mybatis中进行sqlserver分页

mybatis中,sqlserver分页

2021-12-10

空空如也

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

TA关注的人

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