
springboot
文章平均质量分 70
致最长的电影
真正的勇气是上帝给你的一切!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Java基础】Stream 流中 Collectors.toMap 的用法
Collectors.toMap() 方法是把List 转 Map的操作。原创 2023-02-06 15:51:39 · 15739 阅读 · 1 评论 -
【Java】Stream 流常见写法总结
stream 常见用法总结原创 2023-02-03 17:36:59 · 1208 阅读 · 0 评论 -
【MySQL】索引基础介绍
聚簇索引:将数据存储的顺序与索引顺序相同,找到索引也就找到了数据非聚簇索引:将数据存储于索引分开结构,索引结构的叶子节点指向了数据的对应行,本质上非聚簇索引存储的是聚簇索引的值,比如主键ID 每个InnoDB表具有一个特殊的索引称为聚簇索引(也叫聚集索引,聚类索引,簇集索引),如果表上定义有主键,该主键索引就是聚簇索引。如果未定义主键,MySQL 取第一个唯一索引(unique)而且只含非空列(NOT NULL)作为主键,InnoDB 使用它作为聚簇索引。原创 2022-12-14 20:48:37 · 760 阅读 · 1 评论 -
【Java 基础】static 关键字的用法
在《Java 编程思想》有这样一段话:一句话描述就是:方便在没有创建对象的情况下来进行调用(方法/变量)。很显然,被 static 关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。static 是静态修饰符。什么是静态修饰符?在程序中,任何变量或者代码都是在编译时由系统自动分配内存来存储的。而所谓静态,就是指在编译后系统所分配的内存会一直存在,直到程序退出内存才会释放这个空间。也就是说,只要程序在运行,那么这块内存就会一直存在。这样做有什么意义呢?在 Java原创 2022-06-20 15:58:53 · 1017 阅读 · 0 评论 -
【Java 基础】this 和 super 关键字的用法
在一个类的方法内部,如果我们想调用其成员变量,不用 this,我们会怎么做? 看上面的代码,我们在 ThisTest 类中创建了一个成员变量 name 属性,然后创建了一个 setName 方法,注意这个方法形参也是 String name,那么我们通过 name = name 这样赋值,会改变成员变量 name 为 “xiaoming” 的值吗? 打印结果是 “xiaoming”,而不是重新设置的 “zhangsan”,显然这种方式是是不能在方法内部改变成员变量的值原创 2022-06-16 13:37:03 · 1418 阅读 · 0 评论 -
【SpringBoot】单元测试类发现控制台有插入语句 sql,但是事实没有插入到数据库中的原因及解决办法
自己写了一个 demo,然后在单元测试类中写一个插入语句到数据库中的一个操作,发现控制台正常打印 insert sql 语句,但是在数据库中查询不到该数据单元测试类对插入、修改、删除操作会自动回滚掉,所以你在数据库中查询不到该数据。在单元测试类中添加一个 @Commit 注解就可以了,发现单元测试类可以提交事务了。...原创 2022-06-09 15:00:47 · 2060 阅读 · 0 评论 -
【MyBatis】SpringBoot 和 MyBatis 一级缓存和二级缓存的介绍与代码实践
一、区别 List 是一个接口,而 ArrayList 是 List 接口的一个实现类。ArrayList 类继承并实现了 List 接口。 因此,List 接口不能被构造,也就是我们说的不能创建实例对象。而 ArrayList 就可以被构造。 List list; // 正确 list = nullList<Object> list = new List<>(); // 是错误的用法二、案例List<Object> list = n原创 2022-06-07 17:16:24 · 3134 阅读 · 2 评论 -
【Kafka】SpringBoot 整合 Kafka 以及 @KafkaListener 注解的使用
一、前提已经安装好 kafka我是在 windows 中安装的 Kafka,用于在本地测试用的Windows 安装 kafka二、新建 SpringBoot 项目1、添加项目依赖 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId&原创 2022-05-27 15:59:09 · 9934 阅读 · 3 评论 -
【MySQL】空值(Null)和空字符串(‘’)的区别
一、 NULL,空值,数字,汉字,字母根据上边的实操可以清楚看出:空值(Null)的长度是 Null,不确定占用了多少存储空间,但是占用存储空间的 空字符串('')的长度是0,是不占用空间的 字母和数字每个都占用一个长度 汉字在字段中存储一个字的长度为3二、区别在进行 count() 统计某列时候,如果用 Null 值系统会自动过滤掉,但是空字符会进行统计。不过 count(*) 会被优化,直接返回总行数,包括 Null 值。 当使用 is not null 或者 is null原创 2022-05-23 16:11:47 · 9716 阅读 · 0 评论 -
【Java 基础】空字符串 “” 和 null 的区别以及 equals 的常量为什么要把常量写在前面?
一、空字符串 ""类型:"" 是一个空字符串(String),长度为0,占内存,在内存中分配一个空间,可以使用 Object 对象中的方法。(例如:"".toString() 等)内存分配:使用双引号直接创建的字符串,称为字符常量。字符常量放在内存中的常量池。表示声明一个字符串类型的引用,其值为 "" 空字符串,这个引用指向 a 的内存空间、//不变性String a = "tom"; //字符常量,放在常量池a = "jack"; //常量池中有两个String对象原创 2022-05-23 13:51:37 · 1886 阅读 · 0 评论 -
【Java 基础】静态常量放在 class 类中还是放在 interface 中
一、放在 class 类中package com.example.demo.utils;public class ParamUtils { private ParamUtils() {} public static final int A = 100; public static final int B = 200; public static final int C = 300;}类定义常量,需要定义成 final 且定义一个 private 的.原创 2022-05-09 14:31:12 · 1778 阅读 · 0 评论 -
【Java基础】Spring 中 Bean 的理解与使用
一、定义Bean 是 Spring 框架中最核心的两个概念之一(另一个是面向切面编程 AOP)Spring 官方文档对 bean 的解释是:In Spring, the objects that form the backbone of your application and that are managed by the Spring IoC container are called beans. A bean is an object that is instantiated, asse原创 2022-03-07 17:46:10 · 63649 阅读 · 26 评论 -
【Java 基础】@Bean 注解在 @Configuration 和 在 @Component 下的区别
区别就是:@Configuration 中所有带 @Bean 注解的方法都会被动态代理(cglib 动态代理调用方法时重写成从 Spring 上下文中获取 bean),因此调用该方法返回的都是同一个实例,可以保证单例。 @Component 注解就是 new 一个新对象。一、起因当我在项目中看到 @Bean 注解的es创建客户端的方法放在了 @Component中,而不是放在 @Configuration 中,所以我就进一步查询了 @Bean 注解放在这两个注解里的区别二、代码测试案例1原创 2022-03-07 13:50:20 · 790 阅读 · 0 评论 -
【Java基础】@PostConstruct 和 @PreDestroy 注解的使用
一、概述Spring 容器中的 Bean 是有生命周期的,Spring 允许在 Bean 在初始化完成后以及销毁前执行特定的操作。被这两个注解修饰的方法可以保证在整个 Servlet 生命周期只被执行一次,即使 Web 容器在其内部中多次实例化该方法所在的 bean。二、@PostConstruct 注解@PostConstruct 该注解被用来修饰一个非静态的 void() 方法。被 @PostConstruct 修饰的方法会在服务器加载 Servlet 的时候运行,并且只会被服务器执行一次,原创 2022-03-02 17:14:29 · 4755 阅读 · 0 评论 -
【Java基础】基本类型和包装类的区别
前言Java 一种静态编程语言,所有变量和表达式是在编译时就确定的。同时,Java 又是一种强类型语言,所有的变量和表达式都有具体的类型,并且每种类型是严格定义的。在 Java中共有8种基本类型数据,同时每种基本类型又有对应的包装类。基本数据类型(默认值) 包装类(默认值) 取值范围 byte (0) Byte (null) -128~127 short (0) Short(null) -32768~32767 int (0) Integer..原创 2022-02-09 16:44:24 · 9111 阅读 · 2 评论 -
【Java】Stream流中Optional类的用法
一、概述Optional类主要解决的问题是臭名昭著的空指针异常(NullPointerException),提供了一些的方法代替过去的if-else处理逻辑,并与Stream流结合提供一致性的函数式编程。二、方法static <T> Optional<T> empty() 返回一个空的Optional对象 boolean equals(Object obj) Optional<T> filter(Predicate&l...原创 2022-02-08 14:20:40 · 1642 阅读 · 0 评论 -
【Stream】java8新特性Stream流总结
一、什么是stream 在 java8 中增加了一个新的抽象接口 Stream API,使用 Stream 操作集合类似于使用 SQL 语句数据库查找数据类似,提供直观的方法进行操作。 Stream 将要处理的元素集合看作是一种流,流在管道中传输,并且可以在管道传输过程中对流进行处理,比如筛选、排序、聚合等操作 一个Java8 的stream是由三部分组成的。数据源,零个或一个或多个中间操作,一个或零个终止操作。 中间操作是对数据的加工,注意,中间操作是lazy操作,并不原创 2022-01-28 16:29:26 · 3352 阅读 · 0 评论 -
【es】java使用es中三种查询用法from size、search after、scroll
一、三者之间的区别 from size: 深度分页或者size特别大的情况,会出现deep pagination问题。且es的自保机制max_result_window是10000,当查询数量超过一万就会报错 该查询的实现原理类似于mysql中的limit,比如查询第10001条数据,那么需要将前面的1000条都拿出来,进行过滤,最终才得到数据。(性能较差,实现简单,适用于少量数据) search after search_after缺点是不能够随机跳转分页,只能是一页一页的向后原创 2022-01-26 16:32:11 · 11434 阅读 · 1 评论 -
【es】es修改字段text类型为date类型
一、概述首先说明es中索引的字段类型是不可修改的,只能是重新创建一个索引并设置好映射mapping,然后再将老索引的数据复制过去。二、原索引字段text类型三、操作步骤 创建索引,并指定映射mapping PUT /audit2{ "mappings": { "properties": { "@timestamp": { "type": "date" }, "@version": { "type":原创 2022-01-24 14:02:12 · 5606 阅读 · 2 评论 -
【logback】SpringBoot 整合 logback 实现多环境配置
一、读取spring配置文件中的值logback.xml 早于 application.yml 加载,logback-spring.xml 晚于 application.yml 加载,如果logback 配置需要使用 application.yml 中的属性,需要命名为 logback-spring.xml。本文中采用 logback-spring.xml 文件来读取配置文件 application-${profile}.properties 中的属性值。 logback需要使用 <sprin原创 2022-01-21 11:22:10 · 4183 阅读 · 1 评论 -
【quartz】定时任务时间在数据库中修改,无需启动服务
一、修改定时任务时间方法update qrtz_cron_triggers set CRON_EXPRESSION='0 */1 * * * ?' where TRIGGER_NAME='myTrigger1';update qrtz_triggers set NEXT_FIRE_TIME=0,PREV_FIRE_TIME=0 where TRIGGER_NAME='myTrigger1';第一条sql语句是更改表qrtz_cron_triggers,原来数据库中该任务是每5分钟执行一次原创 2022-01-06 17:13:45 · 4528 阅读 · 0 评论 -
【elasticsearch】es中document中id的数据生成现象
一、添加数据,不指定id时es会自动生成一个id 添加数据,不指定id时,但是内容是一样的:es中会添加该数据,但是id是不同的二、添加数据,指定id时es会生成自己指定的id添加数据,指定id,又添加一样的id的数据的时候:es中不会重复添加,因为此时es中认为是这个id里面内容的更新(UPDATED)操作,会更新这个id下的内容三、测试代码package com.example.es.test;import com.fasterxml.jack...原创 2021-12-24 16:10:43 · 3480 阅读 · 0 评论 -
【ES】springboot使用bulkProcessor定时用quartz同步mysql数据到es中(基本引用即用)
一、项目中添加一个工具类就可以了 配置类不用改,需要改的地方就是业务需求的地方 每两分钟同步一次,加了个定时任务 自已已应用到测试环境,是能正常运行的 package com.example.gauditdemo.config;import org.apache.http.HttpHost;import org.elasticsearch.client.RestClient;import org.elasticsearch.client.RestHighLevelC.原创 2021-12-08 11:20:30 · 3507 阅读 · 0 评论 -
java8新特性Stream流中anyMatch和allMatch和noneMatch的区别详解
1、anyMatch判断数据列表中是否存在任意一个元素符合设置的predicate条件,如果是就返回true,否则返回false。接口定义: boolean anyMatch(Predicate<? super T> predicate); 方法描述: 在anyMatch 接口定义中是接收 Predicate 类型参数,在Lamdba表达式中 Predicate<T> 是接收一个T类型参数,然后经过逻辑验证返回布尔值结果。这里anyMatch表示.原创 2021-11-12 16:57:43 · 41657 阅读 · 1 评论 -
【SpringBoot】通用改变状态接口
应用场景:上下架商品,显示隐藏状态改变代码案例:实体类/** 主键 */@NotBlank(message = "主键不能为空!")@ApiModelProperty(value = "主键ID")private String id;/** 状态:0.禁用、1.启用 */@NotNull(message = "状态不能为空!")@ApiModelProperty(value = "状态:0.禁用、1.启用 ")private Integer state;controll原创 2021-05-14 13:46:34 · 1277 阅读 · 0 评论 -
【Mybatis】前端传集合到后台,后台查询到的集合给前端
应用场景:图片(比如填报一个产品,这个产品有很多属性,里面有这种动态的增删改查操作,应该怎么操作),像这种的还有传视频还有图片什么的思路:后端:是再创建一个表,专门存这种动态的数据(数据库表这样,里面存一个产品的id,进行关联产品所有的属性)前端:用户在前端进行填写申报的时候,前端进行动态的传集合数据。如果为空,传空集合postman 测试新增:增查代码案例:实体类//产品实体类,一对多的情况@ApiModelProperty(value = "ID",原创 2021-05-14 10:50:46 · 2478 阅读 · 2 评论 -
【MySQL】find_in_set()函数和group_concat()函数使用
一、使用场景比如有一个大类,大类里面有多个小类,类似于下面这种。这些都是通过后台配置的,先配置小类,然后再配置大类,大类里面再配置相对用的小类。二、数据库表new_product_type 产品类型表CREATE TABLE `new_product_type` ( `id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'ID', `name` varchar(255) CHARA原创 2021-04-08 15:16:50 · 457 阅读 · 0 评论 -
【java基础】Arrays.asList 用法
一、作用将数组转化成List集合的方法该方法适用于对象型数据的数组(String、Integer…)该方法不建议使用于基本数据类型的数组(byte,short,int,long,float,double,boolean)不支持add()、remove()、clear()等方法此方法得到的List的长度是不可改变的二、代码案例1、执行会报错,不支持增删改public static void main(String[] args) { List<String>原创 2021-04-02 16:02:46 · 677 阅读 · 0 评论 -
【mybatis】下拉省市区树形查询(两种方法,亲测可用)
一、数据库1、数据库表SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for ums_dic_item-- ----------------------------DROP TABLE IF EXISTS `ums_dic_item`;CREATE TABLE `ums_dic_item` ( `id` varchar(100) CHARACT原创 2021-04-02 14:12:19 · 1177 阅读 · 2 评论 -
【MINIO】Java使用MINIO作为对象存储测试
安装docker我之前已经安装好docker,可以参考之前的文档【Linux】阿里云服务器CentOS7安装Docker安装docker-compose、MINIO下载 Docker Composecurl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose修改该原创 2020-10-26 16:16:53 · 1127 阅读 · 0 评论 -
【异常报错】com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.c
在IDEA中,RabbitMQ启动的时候控制台报上面的错误:我的解决办法是:将之前生成的target文件删除,重新启动,然后不报错了原创 2020-08-24 13:59:46 · 1933 阅读 · 0 评论 -
【SpringBoot】Config配置可能用到的注解
> JavaConfig,是在 Spring 3.0 开始从一个独立的项目并入到 Spring 中的。JavaConfig 可以看成一个用于完成 Bean 装配的 Spring 配置文件,即 Spring 容器,只不过该容器不是 XML文件,而是由程序员使用 Java 自己编写的 Java 类。@Configuration注解的使用 从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法 @Compon原创 2020-08-04 17:00:59 · 2868 阅读 · 0 评论 -
【SpringBoot】IDEA中SpringBoot项目随时切换不同的环境进行打包
一、问题背景:当我们在本地进行开发项目的时候,想把接口部署到服务器给前端进行调用。但是项目中yml配置文件服务器的地址是本地的,而不是服务器的ip地址。为了能够不老是更换ip地址,就有了这个多环境随时切换二、在项目中添加yml文件在resources的目录下创建三个yml文件,有本地开发的环境和部署到服务器上的环境application.yml(如果想打包成本地jar包,写dev。如果想打成jar包部署到服务器,写test)application-dev.ymlappli原创 2020-06-08 14:15:47 · 942 阅读 · 0 评论 -
【Linux】Docker部署IDEA中springboot项目的Swagger接口到阿里云服务器给前端使用
1、安装Docker(我前面写的文档,一步一步按顺序粘进去)这里默认各位已经成功安装Docker,没有安装Docker的话,下面有我另一篇的详细安装Docker链接阿里云服务器CentOS7安装Docker2、Docker安装MySQL8.0.20版本# 拉取镜像docker pull mysql:8.0.20# 启动运行镜像docker run -p 3306:3306 --name mysql8 -v /home/ming/mysql/conf:/etc/mysql/conf.d -原创 2020-06-08 12:10:10 · 1017 阅读 · 3 评论 -
【JavaWeb】使用聚合数据短信API发送短信
一、准备工作聚合数据 首先在聚合数据官网中进行注册然后申请短信API服务,初次使用赠送5次申请成功之后,AppKey特别重要,不要让别人知道,然后再点击模板点击模板,填写模板内容,要申请通过,不通过拿不到模板ID。最主要是要得到模板ID,这是要发送到你手机上的内容这些弄好后可以写代码测试呢二、短信API接口需要了解的地方查看聚合数据中短信API接口,...原创 2020-04-23 18:09:25 · 928 阅读 · 0 评论