自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 资源 (1)
  • 收藏
  • 关注

原创 通义灵码-IDEA的使用教程

通义灵码,是阿里云出品的一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云 SDK/OpenAPI 的使用场景调优,助力开发者高效、流畅的编码。(1)自然语言生成代码,按Tab键,就能完成代码,生成的代码如果不符合要求,可以通过快捷键Alt+[或者Alt+]来切换自动生成的代码。(3)异常报错智能排查:当运行出现异常报错时,一键启动报错排查的智能答疑,快速给出排查思路或修复建议代码。

2024-04-24 14:22:53 608 1

原创 Java 8 中的 Stream 轻松遍历树形结构

在平时的需求开发中,我们经常会遍历一些树形结构,数据库中使用父id来关联,为了降低数据库的查询压力,我们可以使用java8中的Stream流一次性把数据查出来,然后通过流式处理。模拟查看数据库所有数据到List里面。测试类:testTree.java。实体类:Menu.java。

2023-12-28 15:35:36 676

原创 Docker常用命令及部署微服务项目

【代码】Docker常用命令及部署微服务项目。

2023-11-11 17:04:22 252

原创 Win10安装Linux虚拟机-安装与使用

Win10安装Linux虚拟机-安装与使用

2022-12-14 17:13:19 2596 1

原创 Linux下MariaDb的使用

3、启动mariadb/mysql报错Job for mariadb.service failed because the control process exited with error code解决。systemctl start mariadb #启动成功。1、手动启动MariaDb。

2022-11-16 14:53:52 2536

原创 postman工具批量调用接口

批量调用接口

2022-09-04 13:12:18 2243

原创 Spring源码解读(9)---解析配置类

Spring源码解读(9)—解析配置类解析配置类1、在启动Spring时,需要传入一个AppConfig.class给ApplicationContext,ApplicationContext会根据AppConfig类封装为一个BeanDefinition,这种BeanDefinition就是配置类BeanDefinition2、ConfigurationClassPostProcessor中会把配置类BeanDefinition取出来3、构造一个ConfigurationClassParser用来

2021-12-20 15:21:38 523

原创 Spring源码解读(8)---启动过程源码解析

Spring源码解读(8)—启动过程源码解析Spring启动Spring启动就是构造ApplicationContext对象及调用refresh方法的过程Spring启动主要做了以下几件事情:构造一个BeanFactory对象解析配置类,得到BeanDefinition,并注册到BeanFactory中解析@CompanentScan注解,此时会完成扫描解析@Import注解解析@Bean注解。。。因为ApplicationContext还支持国持化,所以还需初始化MessageS

2021-12-20 15:01:26 656

原创 Spring源码解读(7)---推断构造方法解析

Spring源码解读(7)—推断构造方法解析一、Spring推断构造方法在Spring中的一个bean需要实例化得到一个对象时就需要用到构造方法。一般情况下,一个类只有一个构造方法,要么是无参的构造方法,要么是有参的构造方法:如果只有一个无参的构造方法,那么实例化就只能使用这个构造方法,如果只有一个有参的构造方法,那么实例化时能使Spring会根据构造方法的参数信息去寻找bean,然后传给构造方法。那么如果有多个构造方法呢?Spring在进行实例化之前该如何去确定使用哪个构造方法?如果开发者指

2021-12-20 14:38:35 673 1

原创 Spring源码解读(6)---循环依赖底层源码解析

循环依赖就是A对象依赖了B对象,B对象又依赖了A对象在Spring中,一个对象并不是简单的new出来的,而是会经过一系列的Bean的生命周期。在Spring中出现循环依赖的场景很多,有些场景Spring自动帮我们解决了,而有些场景需要我们自己去解决。Spring中Bean的生命周期被Spring管理的对象叫做Bean,Bean的生成步骤:Spring扫描class得到BeanDefinition根据得到的BeanDefinition去生成Bean首先根据class推断构造方法根据推断出来的构

2021-11-17 20:42:43 683

原创 Spring源码解读(5)---依赖注入源码解析

Spring中依赖注入的方式分为两种:手动注入、自动注入手动注入在XML中定义Bean时,就是手动注入,手动注入分为两种:set方法注入、构造方法注入下面这种是通过set方法进行注入<bean name="userService" class="com.example.spring.UserService"> <property name="orderService" ref="orderService"/></bean>下面这种是通过构造方法进行注入

2021-11-17 09:54:12 711

原创 Spring源码解读(4)---Bean生命周期源码解析

一、Bean的生命周期流程:二、Spring扫描流程:三、Bean的生成过程:1、生成BeanDefinitionSpring在启动的时候会进行扫描,会先调用:org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider#scanCandid ateComponents(String basePackage) 扫描某个包路径,并得到BeanDefinition的Set集合。Spring扫描流

2021-11-10 19:02:24 601

原创 Spring源码解读(3)---底层核心概念解析

1、BeanDefinitionBeanDefinition表示Bean定义,BeanDefinition中存在很多属性用来描述一个Bean的特点。比如:class:表示Bean类型scope:表示Bean作用域,单例或原型lazyInit:表示Bean是否是懒加载initMethodName:表示Bean初始化时要执行的方法destroyMethodName:表示Bean销毁时要执行的方法等。。。Spring中经常会用到的申明式定义Bean的方式:、@Bean、@Component(@

2021-11-10 18:56:09 749

原创 Spring源码解读(2)---底层核心原理解析

1、Spring的入门代码:AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);UserService userService = (UserService) context.getBean("userService");userService.test();第一行代码调用AnnotationConfigApplicationContext的构造方法

2021-11-10 15:13:19 375

原创 Spring源码解读(1)——源码下载及编译

一、源码下载流程下载源码:git clone --branch v5.2.8.RELEASE https://gitee.com/Z201/spring-framework.git二、源码编译1、修改settings.gradle文件repositories { gradlePluginPortal() maven { url 'https://maven.aliyun.com/repository/public' } maven { url 'https://repo.sprin

2021-10-25 18:49:29 245

原创 8、Redis分布式锁

想要实现分布式锁,Redis必须要有互斥能力,比如setnx命令,即如果key不存在,才会设置它的值。客户端1:客户端2:此时,加锁成功的客户端就可以去操作共享资源。操作完成后,还要及时释放锁,给后来者让出操作共享资源的机会,这里我们可以使用del命令删除这个key即可。问题:当客户端1命到锁后,如果程序处理业务逻辑异常,没有及时释放锁或是进程挂了,没机会释放锁,那么就会造成死锁,客户端1一直占用这个锁,其它客户端就永远拿不到锁了。如何避免上述的死锁呢?可以给这个key设置一个过期时间,假设

2021-09-26 21:11:34 405

原创 7、Redis持久化(RDB、AOF)、scan操作

Redis虽然是个内存数据库,但是Redis支持RDB和AOF两种持久化机制,将数据写住磁盘,可以有效避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复。一、RDBRDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。1、触发机制手动触发可以用save和bgsave命令save命令:阻塞当前Redis服务器,直到RDB过程完成为止,对于内存比较大的实例会造成长时间阻塞,线上环境不建议使用。bgsave命令:Redis进

2021-09-24 09:22:57 288

原创 6、Redis高级特性(发布和订阅、Stream)

一、发布和订阅1、定义Redis提供了“发布、订阅”模式的消息机制,其中消息订阅者与发布者不直接通信,发布者向指定的频道(channel)发布消息,订阅该频道的每个客户端都可以接收到消息2、操作命令发布消息publish channel message返回值是热闹收到信息的订阅者数量订阅消息subscribe channel [channel ...]订阅者可以订阅一个或多个频道,如果此时另一个客户端发布一条消息,当前订阅者客户端会收到消息。如果有多个客户端同时订阅了同一个频道,

2021-09-23 09:50:13 704

原创 5、Redis高级特性(慢查询、Pipeline、事务、Lua)

一、慢查询慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阀值,就将这条命令的相关信息(例如:发生时间,耗时,命令的详细信息)记录下来,Redis 也提供了类似的功能。Redis客户端执行一条命令分为4个部分:1)发送命令 2)命令排队 3)命令执行 4)返回结果慢查询只统计步骤3的时间,所以没有慢查询并不代表客户端没有超时问题。1、慢查询配置Redis提供了 slowlog-log-slower-than 和 slowlog-max-len 配置slowlog-log-s

2021-09-21 21:31:03 459

原创 4、Redis高级数据结构(Bitmaps、HyperLogLog、GEO)

一、Bitmaps1、BitmapsBitmaps 本身不是一种数据结构,实际上它就是字符串,但是它可以对字符 串的位进行操作。Bitmaps 单独提供了一套命令,所以在 Redis中使用 Bitmaps和使用字符串的 方法不太相同。可以把 Bitmaps 想象成一个以位为单位的数组,数组的每个单元只能存储 0 和 1,数组的下标在 Bitmaps 中叫做偏移量。(1)setbit设置值设置键的第offset个位的值(从0算起)setbit key offset value假设现在有20个用

2021-09-21 12:25:19 357

原创 3、Redis与Java的集成

3、Redis与Java的集成1、Maven配置<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.6.3</version></dependency>2、application.properties配置文件# Redis服务器地址redis.host=1.15.106.

2021-09-20 11:19:32 212

原创 2、Redis的常用命令

一、Redis的全局命令操作1、查看所有键keys *-- 也可以模糊搜索查询,但一般不推存keys s*2、查看键总数dbsize3、检查键是否存在exists key4、删除键,返回删除的条数del key5、键过期返回剩余的过期时间:-1表示没有设置过期,-2表示已过期,正数表示还剩余的过期时间(秒)expire key seconds-- 设置时间戳以后过期expireat key 时间戳-- 查看还剩多久过期ttl key6、查看键的数据结构类型ty

2021-09-20 10:14:13 12298 1

原创 1、Redis的安装和基础

一、Liunx centos7下安装Redis-6.2.4版本1、下载redis下载地址:https://redis.io/download比如将redis安装到/usr/local/soft目录cd /usr/local/softwget https://download.redis.io/releases/redis-6.2.4.tar.gz2、解压压缩包tar -zxvf redis-6.2.4.tar.gz 3、检查gcc版本是否低于5,如果是则先升级sudo yum ins

2021-09-19 13:10:33 167

原创 Java将一个对象中非空的字段覆盖到另一个对象中

前缀:在开发中我们现在将一个对象中的非空字段覆盖到另一个对象中,虽然BeanUtils.copyProperties()和PropertyUtils.copyProperties()方法也可以实现,但是它是将整个对象完全复制到另一个对象里,与我们预期的不一样,所以这里可以参考一下如下的代码:具体方法:/** * 功能说明: 只复制source对象的非空属性到target对象上 * @param source * @param target * @throws B

2021-09-16 19:03:31 2220

原创 通用Excel导入

1、引入maven<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>4.1.2</version> </dependency> <dependency&gt

2021-09-08 17:52:52 184

原创 Servlet的基础知识总结

文章目录1、Servlet技术的核心是Servlet,Servlet API有4个jar包2、Servlet的实现方式(1)实现Servlet接口来开发Servlet程序(2)扩展GenericServlet实现Servlet程序(3)扩展HttpServlet实现Servlet程序3、Servlet的生命周期4、手写Servlet程序步骤1、继承HttpServlet2、重写doGet()或者doPost()方法3、在web.xml中注册Servlet5、@WebServlet注解的使用1、Servle

2021-09-05 10:04:36 84

原创 SpringBoot 条件注解

@Conditional表示仅当所有指定条件都匹配时,组件才有资格注册 。@Conditional的使用作为任何@Bean方法的方法级注释作为任何类的直接或间接注释的类型级别注释 @Component,包括@Configuration类作为元注释,目的是组成自定义构造型注释常用的条件注解:@Conditional 依赖的条件@ConditionalOnBean 在某个Bean存在的条件下@ConditionalOnMissingBean 在某个Bean不存在的条件下@Co

2021-08-30 00:41:52 372

原创 SpringBoot 多线程和定时任务

一、SpringBoot多线程Spring是通过任务执行器(TaskExecutor)来实现多线程和并发编程,使用ThreadPoolTaskExecutor来创建一个基于线城池的TaskExecutor。在使用线程池的大多数情况下都是异步非阻塞的。我们配置注解@EnableAsync可以开启异步任务。然后在实际执行的方法上配置注解@Async上声明是异步任务。创建一个配置类:首先使用@EnableAsync来开启Springboot对于异步任务的支持配置类实现接口AsyncConfigurato

2021-08-29 22:40:48 2096

原创 SpringBoot多线程

Spring是通过任务执行器(TaskExecutor)来实现多线程和并发编程,使用ThreadPoolTaskExecutor来创建一个基于线城池的TaskExecutor。在使用线程池的大多数情况下都是异步非阻塞的。我们配置注解@EnableAsync可以开启异步任务。然后在实际执行的方法上配置注解@Async上声明是异步任务。创建一个配置类:首先使用@EnableAsync来开启Springboot对于异步任务的支持配置类实现接口AsyncConfigurator,返回一个ThreadPool

2021-08-29 21:55:07 358

原创 SpringBoot注册Servlet、Filter、Listener三大组件

一、注册Servlet(1)使用注解方式准备Servlet@WebServlet(name = "myServlet",urlPatterns = "/myServlet") //标记为servlet,以便启动器扫描。public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws

2021-08-29 19:08:27 115

原创 Jenkins的安装和使用

jenkins的目的:1、持续、自动地构建/测试软件项目。2、监控软件开放流程,快速问题定位及处理,提示开放效率。1、环境装备安装JDK需安装jdk1.8或者更高的版本安装maven2、安装Jenkins仓库官网RedHat的安装方法https://pkg.jenkins.io/redhat-stable/ sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenk

2021-08-29 17:41:15 338 1

原创 Liunx下安装JDK8

Liunx下安装JDK81、去Oracle官网下载1.8版本的jdk下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html选择:jdk-8u301-linux-x64.tar.gz如需要登录,百度查询了一个oracle账号:[email protected],密码:Oracle123我的网盘–》java工具–》jdk链接:https://pan.baidu.com/s/1dvtpjCb8xF

2021-08-29 15:44:10 72

原创 Liunx下安装maven

1、去maven官网下载安装包,上传到服务器https://maven.apache.org/download.cgi#进入local目录cd /usr/local# 用rz命令上传# tar命令解压tar -zxvf apache-maven-3.6.3-bin.tar.gz 2、配置maven的存放jar包的仓库,添加阿里国内的镜像地址#进入apache-maven-3.6.3目录,创建存放文件的仓库文件夹 cd apache-maven-3.6.3mkdir myreposit

2021-08-29 02:26:25 59

原创 springboot入门(项目搭建及基本配置)

一、创建项目1、先创建一个maven项目删除不用的文件2、再创建一个springboot项目二、SpringBoot–配置属性1、SpringBoot的配置SpringBoot使用一个固定文件名做为全局的配置文件,用来修改SpringBoot自动配置的默认值application.propertiesapplication.yml2、YAML语法基本语法:k:(空格)v:表示一对键值对,值可以是数字,字符串,布尔,对象,Map等字面量,键值对写法:双引号:\表示转

2021-08-28 17:34:10 1031

原创 MySQL进阶

MySQL进阶一、MySQL的多实例安装以前一些很low的方法就是解压两个mysql,分别放到不同的文件夹。其实mysql已经考虑到了多实例的安装情况,也有相应的脚本命令的支持。现需要装两个mysql,一个3307,一个3308。1、新建/etc/my.cnf配置如下[mysqld]sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZE

2021-08-28 12:17:33 373

原创 Linux安装MySQL5.7----彻底卸载MySQL

Linux安装MySQL5.71、下载安装包地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads2、将下载的安装包上传到服务器上用rz命令上传安装包,如果没有安装上传下载工具包rz及sz,则先执行以下的安装命令。yum install -y lrzsz3、解压tar -xvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz 再移动并重命名mv mysql-5.7.35-linux-

2021-08-13 12:04:20 1921

原创 CentOS7.6服务器搭建SFTP服务及JAVA工具类

一、SFTP的简介:sftp(Secure File Transfer Protocol)是一种安全的文件传送协议,是ssh内含协议,也就是说只要sshd服务器启动了,sftp就可使用,不需要额外安装,它的默认端口和SSH一样为22。1、sftp的简介:sftp通过使用加密/解密技术来保障传输文件的安全性,因此sftp的传输效率比普通的FTP要低,但sftp的安全性要比ftp高,因此sftp通常用于对安全性要求较高的场景。二、SFTP服务配置(基于CentOS 7)1、查看ssh版本,OpenSSH

2021-07-17 14:38:02 741 2

原创 Zookeeper客户端的使用

1、Zookeeper原生客户端zookeeper官方提供的java客户端API(1)引入依赖 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency>

2021-06-06 01:49:03 331

原创 Zookeeper精华知识库---1

1、分布式系统简介一个tomcat已经打不了天下啦,咱们现在必须要了解分布式系统。分布式系统的特点:分布性、对等性、并发性、缺乏全局时钟、故障随时会发生。大型网站架构图:分布式系统带来的问题:通讯异常、网络分区、三态、节点故障等。分布式一致性算法:2p、3p、paxos、zab算法2、CAP理论C 一致性:数据在分布式环境下的多个副本之间能否保持一致性,这里的一致性更多是指强一致性;A 可用性:分布式系统一直处于可用状态,对于请求总是能在有限的时间内返回结果;P 分区容错性:

2021-05-29 17:32:36 627 1

原创 Java工具库

一、Java自带的工具方法1、List集合拼接成以逗号分隔的字符串//如何把list集合拼接成以逗号分隔的字符串 a,b,cList<String> list = Arrays.asList("a", "b", "c");//第一种方法用stream流String join = list.stream().collect(Collectors.joining(","));System.out.println(join); // 输出 a,b,c//第二种方法,其实String也有

2021-05-26 09:31:45 100

spring-learn.zip

springboot-配置文件

2021-08-28

空空如也

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

TA关注的人

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