自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用el-image返回了图片地址,但闪烁一下就不显示问题解决

解决element中el-image返回图片地址,但闪烁一下又不显示的问题

2024-05-26 14:39:23 202 2

原创 记一次排查线上OOM详细过程和解决思路

所以只需在外部创建对象时保持单例或者说是保持只有一个实例即可,我在这里直接在外部创建了一个静态变量,用于解决这个问题。解决完再未出现老年代不释放内存的问题,如此,便大功告成了。换完G1后,还是老问题,老年代的内存得不到释放,在查阅资料痛定思痛决定通过visualVM分析堆转储文件分析到底是哪里创建了回收不了的对象(肯定还是在加解密这块)。通过面板可以发现频繁的触发了FULL GC,但是老年代还是居高不下,最终导致程序卡死,堆内存溢出。

2023-10-15 10:49:49 4015

原创 一文教会你Java如何优雅的调用python脚本

一文教会你Java如何优雅的调用python脚本

2023-09-14 21:25:41 245

原创 Spring Cloud(八)分布式事务(*)

事务具有四大特性:在微服务项目中,每个服务都有其自己的数据库,当我们需要进行服务调用处理业务时,事务还能保证ACID原则吗?我们以一个分布式服务案例来验证这个问题:Ⅰ.创建数据库heima,里面有三张表,分别对应三种服务要使用到的数据。订单服务:账户服务:库存服务:Ⅱ. 导入项目seata-demo① account-service(port:8083)::② order-service(port:8082)::③storage-service::Ⅲ. 测试,发送Post请求

2022-06-30 09:39:34 3241 1

原创 Spring Cloud(七)Sentinel

微服务调用链路中的某个服务故障,引起整个链路中的所有微服务都不可用,这就是雪崩。解决雪崩问题的常见方式有四种:总结:避免因瞬间高并发流量而导致服务故障——流量控制。避免因服务故障引起的的雪崩问题——超时处理、线程隔离、降级熔断Sentinel是阿里巴巴开源的一款微服务流量控制组件。Sentinel具有以下特征:Sentinel官方提供了UI控制台,方便我们对系统做限流设置。Github下载地址:https://github.com/alibaba/Sentinel下载好后运行jar包即可:dashbo

2022-06-28 11:00:55 1441

原创 Spring Cloud(六)es之数据聚合、自动补全、数据同步

文章目录elasticsearch数据聚合DSL实现Bucket聚合DSL实现Metric聚合RestAPI实现聚合自动补全拼音分词器自定义分词器elasticsearch数据聚合聚合(aggregations):可以实现对文档数据的统计、分析、运算。聚合常见的有三类:桶(Bucket)排序:用来对文档做分组。TermAggregation:按照文档字段值分组。Date Histogram:按照日期阶梯分组,例如一周为一组,或者一月为一组。度量(Metric)聚合:用以计算一些值,比

2022-06-01 08:56:57 1046

原创 Spring Cloud(五)elasticsearch

文章目录elasticsearch初识elasticsearch正向索引和倒排索引与MySQL概念对比分词器索引库操作文档操作RestClient操作索引库RestClient操作文档DSL查询文档全文检索查询精确查询地理查询复合查询Function Score QueryBoolean Query搜索结果处理排序分页高亮RestClient查询文档快速入门全文检索查询、精确查询、复合查询排序、分页、高亮elasticsearch初识elasticsearchelasticseach是一款非常强大的开

2022-05-24 18:54:30 806

原创 Spring Cloud(四)Docker和服务异步通信

文章目录Docker初识DockerDocker和虚拟机镜像和容器Docker和DockerHubDocker架构Docker的安装Docker的基本操作镜像操作容器相关命令Docker大型项目组件较多,运行环境也较为复杂,部署往往会遇到一系列的问题:依赖关系复杂,容器出现兼容性问题开发、测试、生产环境有差异这就需要用到Docker技术来解决上面的问题。初识DockerDocker如何解决依赖的兼容问题:将应用的Libs(函数库)、Deps(依赖)、配置和应用一起打包。将每个应用放到

2022-05-22 19:27:23 382

原创 Spring Cloud(三)Feign请求方式、GateWay网关

文章目录Feign请求方式基本使用自定义配置性能优化最佳实践Gateway网关搭建网关服务路由断言工厂(Route Predicate Factory)路由过滤器GatewayFilter全局过滤器 GlobalFilterFeign请求方式之前在order-service中,我们使用RestTemplate发起远程调用。String url = "http://userservice/user/" + order.getUserId();User user = restTemplate.getFo

2022-05-12 17:20:48 5381

原创 Spring Cloud(二)Eureka注册中心、Ribbon负载均衡、Nacos注册中心

文章目录Eureka注册中心Eureka的作用搭建Eureka Server搭建Eureka Client服务发现Ribbon负载均衡负载均衡流程负载均衡策略饥饿加载(饿汉式)Nacos注册中心Nacos的安装服务注册Nacos服务分级存储模型集群负载均衡策略环境隔离原理分析配置管理配置自动刷新(热更新)多环境配置共享Eureka注册中心在上一篇中,我们提到了服务调用。但在服务调用中,存在一系列问题:服务消费者该如何获取服务提供者的地址信息?如果有多个服务提供者,消费者该如何选择?消费者如何得

2022-05-07 15:03:16 596

原创 Spring Cloud(一)初识微服务和Spring Cloud

文章目录微服务微服务技术栈微服务架构的演变单体架构分布式架构微服务微服务技术对比Spring Cloud服务拆分远程调用微服务微服务是分布式架构的一种,而分布式架构的作用就是把服务作拆分,而拆分的过程中会产生各种各样的问题需要取解决,Spring Cloud解决了服务拆分时的服务治理问题,对于其他分布式其他更复杂的问题并没有给出解决方案。因此,一个完整的微服务技术包含的不仅仅是Spring Cloud。微服务技术栈微服务的作用就是拆分,对于一个单体架构,所有的业务都写在一起,随着业务越来越复杂,代码

2022-05-04 17:41:03 628

原创 RabbitMQ(一)初识RabbitMQ

文章目录MQMQ的使用场景流量消峰应用解耦异步处理MQ的分类ActiveMQKafkaRocketMQRabbitMQMQ的选择RabbitMQ四大核心概念RabbitMQ核心部分RabbitMQ核心原理MQMQ(message queue),是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ是一种非常常见的上下游"逻辑解耦+物理解耦"的消息通信服务,使用了MQ后,消息发送上游只需要依赖MQ,不用依赖于其他服务。MQ的使用场景流量消峰如果一个订单系统最多能处理一万次订单,这个处理能力

2022-04-26 10:49:32 200

原创 SpringBoot2(二)配置文件和整合第三方技术

文章目录配置文件propertiesyaml基本语法配置文件properties熟悉的配方,熟悉的味道,大家再熟悉不过的格式(key=value)。yaml今天的角儿叫yaml,介绍一种新的配置文件类型。YAML 是 “YAML Ain’t a Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。非常适合用来做以数据为中心的配置文件。基本语法k

2022-04-06 07:48:14 177

原创 MyBatis-Plus(四)通用枚举、代码生成器、多数据源、MyBatis-X插件

文章目录通用枚举代码生成器多数据源MyBatisX通用枚举表中的有些字段值是固定的,例如性别(男或女),此时可以用MP的通用枚举来实现。数据库表中添加字段创建通用枚举类型package com.atguigu.mybatis_plus.enums;import com.baomidou.mybatisplus.annotation.EnumValue;import lombok.Getter;/** * @version 1.0 * @Description * @Aut

2022-04-05 22:51:16 947

原创 MyBatis-Plus(三)条件构造器和插件

文章目录条件构造器Wrapper介绍QueryWrapperUpdateWrapperConditionLambdaQueryWrapperLambdaUpdateWrapper插件分页插件XML自定义分页乐观锁条件构造器Wrapper介绍QueryWrapper组装查询条件 @Test public void testSelectWrapper(){ // 查询姓名带i的,年龄在20-30之间,且邮箱不为空的用户 //SELECT id,nam

2022-04-05 17:02:56 558

原创 MyBatisPlus(二)基本CRUD和常用注解

文章目录CRUD插入删除修改查询通用Service常用注解@TableNameCRUD插入@Testpublic void testInsert(){ User user = new User(); user.setName("哈伦"); user.setAge(28); user.setEmail("halun@kz.com"); int insert = userMapper.insert(user); System.out.println("re

2022-04-04 15:09:07 1304

原创 MyBatisPlus(一)MyBatisPlus介绍和入门案例

文章目录MyBatis-Plus简介特性框架结构入门案例MyBatis-Plus简介MyBatis-Plus(简称MP)是一个MyBatis增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分CRUD 操作,更有强大的条件构

2022-04-01 11:07:29 231

原创 SpringBoot2(一)初识SpringBoot并了解自动配置原理

文章目录SpringBootSpringBoot优点SpringBoot入门案例创建Maven工程自动配置原理SpringBoot特点依赖管理自动配置容器功能组件添加SpringBootSpringBoot优点创建独立的Spring应用内嵌Web服务器。自动starter依赖,简化构建配置自动配置Spring以及第三方功能提供生产级别的监控、健康检查及外部化配置无代码生成,无需编写XML。SpringBoot是整合Spring技术栈的一站式框架,也是简化Spring技术栈的快速开发脚手

2022-03-29 08:08:41 158

原创 Redis(五)主从复制、集群操作、应用问题解决、Redis6新功能

文章目录主从复制一主二仆薪火相传反客为主复制原理哨兵模式Redis集群集群及其配置在集群中录入值查询集群中的值故障恢复集群的Jedis开发集群的优劣Redis应用问题解决缓存穿透缓存击穿缓存雪崩分布式锁主从复制主从复制是指主机数据更新后根据配置和策略,自动同步到从机的master/slaver机制,Master(主机)以写为主,而Slave(从机)以读为主。主从复制能做什么?读写分离,性能扩展。容灾快速备份。用到的相关命令配置当前服务器成为其他实例的从服务器。slaveof &

2022-03-26 14:52:22 1046

原创 Redis(四)事务和锁机制及持久化操作

文章目录事务和锁机制事务Multi、Exec、discard事务的错误处理事务和锁机制事务Redis的事务定义Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。Redis事务的主要作用就是串联多个命令从而防止别的命令插队。Multi、Exec、discard从输入Multi命令开始,输入的命令都会依次进入命令队列中,但不会执行。直到输入Exec后,Redis会将之前命令队列中的命令依次执行。组队的

2022-03-25 11:24:41 942

原创 Redis(三)新数据类型和Jedis

文章目录新数据类型Bitmaps常用命令新数据类型Bitmaps现代计算机用二进制(位)作为信息的基础单位,1个字节等于8位,例如"abc"字符串是由3个字节组成,但实际在计算机存储时将其用二进制来表示,“abc”分别对应的ASCII码分别是97、98、99,对应的二进制分别是01100001、01100010、01100011。合理地使用操作位能够有效地提高内存使用率和开发效率。Redis提供了Bitmaps这个"数据类型"可以实现对位地操作:Bitmaps本身不是一种数据类型,实际上它就

2022-03-23 11:00:18 161

原创 Redis(二)数据类型、发布订阅

文章目录常用五大数据类型key键操作Redis字符串常用命令数据结构Redis列表(List)常用命令数据结构Redis集合(Set)常用命令数据结构常用五大数据类型key键操作keys * 查看当前库所有key127.0.0.1:6379> set k1 lucyOK127.0.0.1:6379> set k2 markOK127.0.0.1:6379> set k3 jackOK127.0.0.1:6379> keys *1) "k1"2) "k2"3)

2022-03-21 11:18:43 1868

原创 Redis(一)初识Redis

文章目录NoSQL数据库简介技术发展NoSQL数据库概述RedisRedis概述应用场景Redis安装NoSQL数据库简介技术发展Web 1.0时代数据访问量有限,用高性能的单点服务器可以解决大部分问题。Web 2.0时代随着Web 2.0时代的到来,用户访问量大幅度提升,同时产生了大量的用户数据。加上智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。如何解决CPU及内存的压力方案一:存储在Cookie中不安全网络负担重效率低方案二:存在文件服务器或数据

2022-03-19 22:33:17 824

原创 MyBatis(五)MyBatis的逆向工程和分页插件

文章目录MyBatis的逆向工程创建逆向工程添加依赖和插件创建MyBatis的核心配置文件创建逆向工程的配置文件执行MBG插件的generate目标QBC查询分页插件分页插件的使用步骤添加依赖配置分页插件分页插件的使用MyBatis的逆向工程正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的。逆向工程:先创建数据库表,由框架负责,根据数据库表,反向生成如下资源: Java实体类、Mapper接口、Mapper映射文件。创建逆向工程添加依赖和插件

2022-03-08 16:15:29 755

原创 MyBatis(四)动态SQL和MyBatis缓存

文章目录动态SQLifwheretrimchoose、when、otherwiseforeachSQL片段MyBatis的缓存MyBatis的一级缓存MyBatis的二级缓存二级缓存的相关配置MyBatis缓存查询的顺序整合第三方缓存EHCache添加依赖各jar包功能创建EHCache的配置文件ehcache.xml设置二级缓存的类型(mapper映射文件中)加入logback日志EHCache配置文件说明动态SQLif<select id="getEmpByConditionOne" res

2022-03-08 14:15:24 576

原创 MyBatis(三)特殊SQL执行和自定义映射resultMap

文章目录特殊SQL执行模糊查询批量删除动态设置表名添加功能获取自增的主键自定义映射resultMapresultMap处理字段和属性的映射关系多对一映射处理级联方式处理映射关系使用association处理映射关系分步查询一对多映射处理collection分步查询特殊SQL执行模糊查询mapper接口/*** 模糊匹配*/List<User> getUserByLike(@Param("username") String username);xml配置<!--

2022-03-07 14:41:02 861

原创 MyBatis(二)MyBatis获取参数的两种方式和查询功能

文章目录MyBatis获取参数的两种方式单个字面量类型的参数多个字面量类型的参数Map集合类型的参数实体类类型的参数使用@Param标识参数MyBatis的各种查询功能查询一个实体类对象查询一个List集合查询单个数据查询一条数据为Map集合查询多条数据为Map集合MyBatis获取参数的两种方式MyBatis获取参数值的两种方式:${}和#{}。${}的本质就是字符串拼接,#{}的本质就是占位符赋值。${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号。

2022-03-06 21:06:13 2347

原创 Spring MVC(六)拦截器和异常处理

文章目录拦截器拦截器的配置拦截器中的三个抽象方法多个拦截器的执行顺序拦截器拦截器的配置SpringMVC中的拦截器用于拦截控制器方法的执行。SpringMVC中的拦截器需要实现HandlerInterceptor。package com.atguigu.springmvc.interceptor;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.Mo

2022-03-05 09:09:26 1012

原创 Spring MVC(五)HttpMessageConverter和文件的上传与下载

文章目录HttpMessageConverter@RequestBodyRequestEntity@ResponseBodySpring MVC处理jsonHttpMessageConverterHttpMessageConverter,即报文信息转换器,将请求报文转换为Java对象,或将Java对象转换为响应报文。HttpMessageConverter提供了两个注解和两个类型:@RequestBody@ResponseBodyRequestEntityResponseEntity@R

2022-03-04 10:52:49 165

原创 Spring MVC(四)RESTful

文章目录RESTfulRESTful简介RESTful的实现HiddenHttpMethodFilterRESTful案例准备工作功能清单具体功能:访问首页具体功能:查询所有员工数据具体功能:删除具体功能:跳转到添加数据页面具体功能:执行保存具体功能:跳转到更新页面具体功能:执行更新RESTfulRESTful简介REST:Representational State Transfer,表现层资源状态转移。资源资源是一种看待服务器的方式,即将服务器看作是由很多离散的资源组成。每个资源是服务器上

2022-03-03 16:45:38 323

原创 MyBatis(一)初识MyBatis

文章目录MyBatis简介MyBatis特性MyBatis的下载与其它持久层技术对比搭建MyBatis创建Maven工程创建MyBatis的核心配置文件创建mapper接口创建MyBatis的映射文件通过junit测试插入功能加入log4j日志功能测试查询功能MyBatis简介MyBatis特性MyBatis是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解用于配置和原始映射

2022-03-02 22:35:31 660

原创 Spring MVC(三)域对象共享数据和SpringMVC的视图

文章目录域对象共享数据使用ServletAPI向request域对象共享数据使用ModelAndView向request域对象共享数据使用Model向request域对象共享数据使用map向request域对象共享数据使用ModelMap向request域对象共享数据Model、ModelMap、Map的关系向session域共享数据向application域共享数据Spring MVC的视图ThymeleafView转发视图重定向视图视图控制器view-controller域对象共享数据使用Servl

2022-03-01 15:57:31 259

原创 Spring MVC(二)@RequestMapping注解和SpringMVC获取请求参数

文章目录@RequestMapping注解@RequestMapping注解的功能@RequestMapping注解的位置@RequestMapping注解的value属性@RequestMapping的method属性@RequestMapping注解的params属性@RequestMapping注解的headers属性SpringMVC支持ant风格的路径SpringMVC支持路径中的占位符Spring MVC获取请求参数通过ServletAPI获取通过控制器方法的形参获取请求参数@RequestPa

2022-02-28 19:07:20 563

原创 Spring MVC(一)初识SpringMVC

MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分。M:Model,指模型层,指工程中的JavaBean,作用是处理数据。

2022-02-28 09:03:15 259

原创 Spring5 学习笔记

文章目录Spring框架概述入门案例IOC容器IOC底层原理Spring框架概述Spring是轻量级的开源的Java EE框架,可以解决企业应用开发的复杂性。Spring有两个核心部分IOC:控制反转,把创建对象过程交给Spring进行管理。Aop:面向切面,不修改源代码进行功能增强。Spring的特点如下:方便解耦。简化开发Aop编程支持方便程序测试方便和其他框架进行整合方便进行事务操作降低API开发难度入门案例第一步,下载Spring5浏览器键入spring.

2022-02-01 20:17:40 739

原创 mysql8.0JDBC驱动下载以及JDBC连接时遇到的问题

笔者最近重温JDBC,由于换了数据库版本,安装了最新的mysql8.0.26,在编写java代码时仍然用5版本的驱动是行不通的,一直是连接不到数据库的。于是就去官网下了最新版本的驱动。下载地址:https://dev.mysql.com/downloads/进入页面后选择Connector/J。选择Platform Independent,下载对应的zip压缩文件即可。下载完成后解压,进入文件夹后将相应的jar包拖入到IDEA项目下的src文件中,右键jar包,选择添加到库:确认即可。

2021-10-01 10:30:55 10040 3

原创 《Java核心技术卷Ⅰ——基础知识》第四章读书笔记

文章目录第四章 对象与类4.1 面向对象程序设计概述4.1.1 类4.1.2 对象4.1.3 识别类4.1.4 类之间的关系4.2 使用预定义类4.2.1 对象与对象变量4.2.3 更改器方法和访问器方法4.3 用户自定义类4.3.4 构造器4.3.5 隐式参数和显式参数4.3.6 封装的优点4.3.7 基于类的访问权限4.3.8 私有方法4.3.9 final实例域4.4 静态域和方法4.4.1 静态域4.4.2 静态常量4.4.3 静态方法4.4.4 工厂方法4.4.5 main方法4.5 方法参数4.

2021-08-16 17:20:28 196

原创 C prime plus 第十章 编程练习答案

拖更严重,但还是祝大家新春快乐~情人节快乐!/* 10-1.c -- 修改程序清单10.7的rain.c程序,用指针进行计算(仍然要声明并初始化数组)*/ #include<stdio.h>#define MONTHS 12#define YEARS 5int main(void){ // 用2010~2014年的降水量数据初始化数组 const float rain[YEARS][MONTHS] = { { 4.3, 4.3, 4.3, 3.0, 2.0, 1.2, 0

2021-02-14 12:48:56 345

原创 C prime plus 第九章 编程练习答案

有问题可评论或者私信作者。/* 9-1.c -- 设计函数min(x,y),返回两个double值的最小值 */#include<stdio.h>double min(double, double);int main(void){ double num1, num2; printf("请输入两个double类型的值:"); scanf("%lf %lf",&num1,&num2); printf("看好咯,他两中最小的一个为:%.3lf\n",min(nu

2021-01-20 16:09:48 353

原创 C prime plus 第七章 编程练习答案

废话不多说,继续上代码。有问题可于评论或私信作者。/* 7-1.c -- 读取输入,直至读到'#'停止,统计读取的空格数、换行符和其他字符的数量 */#include<stdio.h>int main(void){ char ch; int k, h, p; // 累计变量,用于统计字符 k = 0; h = 0; p = 0; while ((ch = getchar()) != '#') { switch (ch) { case ' ':

2021-01-18 11:57:20 377 3

空空如也

空空如也

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

TA关注的人

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