自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 git命令-基本使用

git安装后-指定名称和邮箱:#查看远程分支:#查看本地分支:git branch#切换分支:#创建新分支:#将工作区的被修改的文件和新增的文件提交到暂存区:git add .# 将暂存区所有文件添加到本地仓库:# 将文件添加到远程仓库:git push# 将代码推送到指定的远程分支:# 从远程仓库拉取代码到工作空间:git pull# 从远程仓库拉取指定分支代码:# 用于合并指定分支到当前分支:

2024-12-03 15:09:02 355 1

原创 代理模式-动态代理

代码例子如下:

2024-09-19 18:01:30 838 1

原创 Java反射机制

是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。简单来说,反射机制指的是程序在运行时能够获取自身的信息。在Java中,只要给定类的名字,就可以通过反射机制来获得类的所有信息。

2024-09-19 11:50:09 842

原创 RestAPI操作ES

ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。官方文档地址: https://www.elastic.co/guide/en/elasticsearch/client/index.html我们学习的是Java HighLevel Rest Client客户端API。

2024-09-04 19:27:02 1158 2

原创 ElasticSearch搜索引擎的索引库操作

索引库就类似数据库表,mapping映射就类似表的结构。我们要向es中存储数据,必须先创建“库”和“表”。

2024-09-04 18:52:54 1180

原创 ElasticSearch分布式搜索引擎入门

Elasticsearch是一个基于 Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布, 是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速, 安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。

2024-09-04 16:13:55 813

原创 kafka快速上手

Kafka 是一个分布式流媒体平台,类似于消息队列或企业消息传递系统。kafka官网:http://kafka.apach e.org/

2024-09-02 18:41:44 1016

原创 kafka安装配置、以及遇到闪退问题的解决办法

一、Kafka对于zookeeper是强依赖,保存kafka相关的节点数据,所以安装Kafka之前必须先安装 zookeeper。二、一切安装完毕、准备就绪,双击zookeeper.cmd启动成功,但双击kafka.cmd发生自动闪退。关闭刚刚kafka的cmd,重新打开一下,命令启动kafka,会发现启动成功!反复查看是否是安装过程中产生的纰漏,或是路径改的不正确,如果都不是,则在kafka安装包的路径下打开cmd。先启动 Zookeeper,命令如下。我们在环境变量Path中添加。

2024-09-02 17:59:27 811

原创 对象存储服务MinIO

MinIO基于Apache License v2.0开源协议的对象存储服务,可以做为云存储的解决方案用来保存海量的 图片,视频,文档。由于采用Golang实现,服务端可以工作在Windows,Linux, OS X和FreeBSD上。配 置简单,基本是复制可执行程序,单行命令可以运行起来。MinIO兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志 文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。

2024-08-27 23:13:11 1012

原创 freemarker模板引擎

FreeMarker 是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网 页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一 款程序员可以嵌入他们所开发产品的组件。模板编写为FreeMarker Template Language (FTL)。它是简单的,专用的语言, 不是像PHP那样成熟的编程语言。那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。

2024-08-27 19:32:42 953

原创 微服务保护

服务器⽀持的线程和并发数有限,请求⼀直阻塞,会导致服务器资源耗尽,从⽽导致所有其它服务都不可⽤,那么当前服务也就不可⽤了。当请求进⼊微服务时,⾸先会访问DispatcherServlet,然后进⼊Controller、Service、Mapper,这样的 ⼀个调⽤链就叫做簇点链路。默认情况下sentinel会监控SpringMVC的每⼀个端点(Endpoint,也就是controller中的⽅法),因此 SpringMVC的每⼀个端点(Endpoint)就是调⽤链路中的⼀个资源。

2024-08-25 14:15:55 695

原创 微服务Gateway服务⽹关

GlobalFilter通过实现Ordered接⼝,或者添加@Order注解来指定order值,由我们⾃⼰指定路由过滤器和defaultFilter的order由Spring指定,默认是按照声明顺序从1递增。- Path=/product-serv/** # 当请求路径满足Path指定的规则时,才进行路由转发。每⼀个过滤器都必须指定⼀个int类型的order值,order值越⼩,优先级越⾼,执⾏顺序越靠前。2. 路由⽬标(uri):路由的⽬标地址,http代表固定地址,lb代表根据服务名负载均衡。

2024-08-25 11:39:59 1357

原创 微服务通信

Feign是Spring Cloud提供的⼀个声明式的伪Http客户端, 它使得调⽤远程服务就像调⽤本地服务⼀样简单, 只需要创建⼀个接⼝并添加⼀个注解即可。Nacos很好的兼容了Feign, Feign 默认集了Ribbon, 所以在Nacos下使⽤Fegin默认就实现了负载均衡的效果官⽅地址: https://github.com/OpenFeign/feign1.1基本使⽤1加⼊Fegin的依赖--fegin组件-->2在主类上添加Fegin的注解。

2024-08-24 13:32:20 1083

原创 微服务基础与Spring Cloud框架

服务注册:服务实例将⾃身服务信息注册到注册中⼼。这部分服务信息包括服务所在主机IP和提供服务 的Port ,以及暴露服务⾃身状态以及访问协议等信息。服务发现:服务实例请求注册中⼼获取所依赖服务信息。服务实例通过注册中⼼,获取到注册到其中的 服务实例的信息,通过这些信息去请求它们提供的服务。Nacos 致⼒于帮助您发现、配置和管理微服务。Nacos 提供了⼀组简单易⽤的特性集,帮助您快 速实现动态服务发现、服务配置、服务元数据及流量管理。nacos的作⽤就是⼀个注册中⼼,⽤ 来管理注册上来的各个微服务。

2024-08-24 12:33:15 1409

原创 Bean 实例化的基本流程和生命周期

1.自定义MyBeanPostProcessor@OverrideSystem.out.println("BeanPostProcessor的before方法...");@OverrideSystem.out.println("BeanPostProcessor的after方法...");2.注入配置MyBeanPostProcessor3.测试控制台打印即可。

2024-08-18 18:31:39 776

原创 SpringBoot自动配置--原理探究

需求: 自定义redis-starter,要求当导入redis坐标时,SpringBoot自动创建Jedis的Bean。

2024-08-18 16:42:24 1320

原创 Redis 删除策略

Redis是一种内存级数据库,所有数据均存放在内存中,内存中的数据可以通过TTL指令获取其状态XX :具有时效性的数据-1 :永久有效的数据-2 :已经过期的数据或被删除的数据或未定义的数据问:过期的数据真的删除了吗?答:不是的。

2024-08-15 19:15:55 559

原创 Java 操作 Redis和redis持久化

Bean//1.创建自定义模板类//配置json类型的序列化工具//这样key会用字符串方式保存2.具体代码了解:/*** 测试自定义* 法意:定义配置类JavaConfig,自定义序列化策略* */@Test//保存对象Student stu = new Student(1,"xx","拉面");//获取对象Student stu2 = new Student(2,"ll","拉面");

2024-08-15 19:06:44 1380

原创 了解Redis

Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数 据库特征:1. 数据间没有必然的关联关系2. 内部采用单线程机制进行工作3. 高性能,官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是 81000次/s。4. 多数据类型支持5. 持久化支持。可以进行数据灾难恢复。

2024-08-14 19:36:57 802

原创 SpringMVC的用法

意义:处理用户的请求,相似于doget与dopost位置: 类上:一级目录方法:二级目录例如:user/save属性:value = "",path = ""表示请求路径method=常量,此请求的类型(get,post),若不设置则此请求适配所有的请求方式限制请求参数,例如:params={"msg1","msg2"}表示请求路径中必须携带参数名为msg1与msg2的参数注意:1.超链接默认发送的是get请求2.所有请求所携带的参数格式均为:key = value。

2024-08-14 19:10:56 918

原创 SpringBoot-enjoy模板引擎

主要用于Web开发,前后端不分离时的页面渲染。1.将页面保存在templates目录下。2.添加enjoy的坐标。3.开启配置(配置类)

2024-08-12 23:26:41 364

原创 初识SpringBoot

YAML是一种直观的能够被电脑识别的的数据数据序列化格式, 并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,比 如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。YML文件是以数据为核心的,比传统的xml方式更加简洁。YAML文件的扩展名可以使用.yml或者.yaml。

2024-08-12 19:15:13 803

原创 Spring

包括:IoC Container(Ioc容器)、Events(事件通知机制)、Resources(资源加载机制)、i18n(国际化)、Validation(数据校验)、Data Binding(数据绑定),Type Conversion(类型转换)、SpEl(Spring表达式)、AOP(面向切面编程);包括:Spring MVC(Spring基于MVC模式设计封装的web框架),WebSocket(spring集成WebSocket,WebSocket是一个服务器与客户端双向通信的技术)等;

2024-08-05 22:34:05 495

原创 索引小tips

9. 【建议】对单表的多次alter操作必须合并为⼀次 对于超过100W⾏的⼤表进⾏alter table,必须经过DBA审核,并在业务低峰期执⾏,多个alter需整合在⼀起。7. 【建议】在多表 JOIN 的SQL⾥,保证被驱动表的连接列上有索引,这样JOIN 执⾏效率最⾼。B+树的设计特别适合磁盘存储, 其节点可以容纳更多的键值对,减少了磁盘I/O次数。3. 【建议】主键的名称以 pk 开头,唯⼀键以 uni 或 uk 开头,普通索引以 idx 开头,⼀律 使⽤⼩写格式,以字段的名称或缩写作为后缀。

2024-08-05 19:20:30 718

原创 Mybatis基础

ORM 模型是数据库的表和简单 Java 对象(Plain Ordinary Java Object,简称 POJO)的映射关系模型,主要解决数据库数据和 POJO 对象的相互映射。Java对象 POJO 对象(Plain Ordinary Java Object): 简单的 Java 对象,实际就是普通 JavaBeans。映射配置 配置分为:类与数据库中表的映射;对象与表中记录的映射;类的属性与数据库中 表的字段的映射。数据库 按照数据结构来组织、存储 和管理数据的仓库,ORM 模型中最底层的内容。

2024-07-29 20:18:50 1046 1

原创 Java操作MongoDB

【代码】Java操作MongoDB。

2024-07-29 15:31:53 466

原创 编码算法、哈希算法

/URLEncoder类:进行编码操作//URLDecoder类:进行解码操作。

2024-07-28 20:24:59 364

原创 非关系型数据库MongoDB的基础操作

更新数据 语法: db.集合名.update({查询条件},{$set:{更新内容}}, { upsert: , multi: , } )gf:[{stuname:'小红'},{stuname:'小黄'},{stuname:'小孩' }]3. MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++, PHP,C#等多种语言。db.student.insert({stuname:'张三',age:16});// {upsert:true}把没匹配到的数据 作为新增的值添加到mongo中。

2024-07-28 19:25:14 709 1

原创 sql注入和防止sql注入的方法

SQL注入(SQL Injection)是一种网络安全漏洞,允许攻击者在应用程序的SQL查询中插入恶意代码。使用ORM(Object-Relational Mapping)工具:许多ORM工具会自动处理SQL构建,减少注入风险。占位符,并通过编程语言的库绑定参数。使用存储过程(Stored Procedures):将SQL代码预先存储在数据库中,并通过参数调用。通过一些特殊的符号让原本的sql失效,让sql执行新的sql指令。验证和清理用户输入:确保用户输入不包含恶意字符或SQL关键字。

2024-07-27 20:21:46 316

原创 JDBC(Java访问数据库)

Java Database Connectivity:Java访问数据库的解决方案JDBC定义了一套标准接口,即访问数据库的通用API, 不同的数据库厂商根据各自数据库的特点去实现这些接口。JDBC希望用相同的方式访问不同的数据库,让具体的数据库操作与数据库厂商实现无关,从而在不同数据库之间轻易的进行切换。下载对应的数据库的驱动 mysql-connector-java-5.0.4-bin.jar将驱动类加载到项目中 Eclipse: Build Path。

2024-07-27 19:55:33 390

原创 事务、函数和索引

MySQL默认10秒内没有响应SQL结果,则为慢查询。可以去修改MySQL慢查询默认时间。

2024-07-25 18:48:19 897 1

原创 Mysql高级DQL数据查询

只有完全满足条件(主外键关系)的数据才能出现的结果#1.1非等值联查 笛卡尔积 两个结果集的相乘 逻辑上有错误#1.2等值联查-- 查询出学生和班级信息student class 相同字段做主键那个是主表 做外键那个是子表where student.classid=class.classid and ssex='男';-- 5张表全部联查起来stduent class sc cource teacher#面试题:查询出学过张三老师课程的学生信息。

2024-07-22 21:35:24 1026 1

原创 MySQL数据库基本用法

什么是数据库?MySQL数据库的特点。

2024-07-20 20:40:07 765

原创 Linux下vim编辑器的使用方法

ctrl+w+j/k 通过j/k可以上下切换,或者:ctrl+w加上下左右键,还可以通过快速双击ctrl+w依次切换窗口。:vsplit+窗口名(保存后就是文件名) 打开一个新窗口,vsplit可以简写为vsp。:split+窗口名(保存后就是文件名) 打开一个新窗口,split可以简写为sp。O 为在目前光标所在处的上一行插入新的一行。a 从目前光标所在的下一个字符处开始插入。A 从光标所在行的最后一个字符处开始插入。o 在目前光标所在的下一行处插入新的一行。r 只会取代光标所在的那一个字符一次。

2024-07-18 23:34:25 421

原创 shell的基本操作

(1)变量名称可以由字⺟、数字和下划线组成,但是不能以数字开头,环境变量名建议⼤写。(2)等号两侧不能有空格(3)在bash中,变量默认类型都是字符串类型,⽆法直接进⾏数值运算。(4)变量的值如果有空格,需要使⽤双引号或单引号括起来。

2024-07-18 19:28:33 1444

原创 Linux常用操作命令

r:重启 可以加参数21:00ls [选项] [文件或目录]选项:-l : 每列仅显示一个文件或目录名称。-a 或--all : 下所有文件和目录。-i 或--inode: 显示文件和目录的inode编号。(ls -ai:命令累加使用,查看加inode编号的隐藏文件)cd [文件或目录]~:当前用户的家目录绝对路径:一定由根目录/写起相对目录:相对于某一路径,其中 .代表当前目录, ..代表上一级目录。

2024-07-17 22:58:01 1062

原创 String、StringBuilder和StringBuffer的区别

String 是 Java 中的一个类,用于表示字符串。它是不可变的,因为内部使用字符数组来保存字符串内容,用于存放值的value[ ]是final类型,因此只能被赋值一次,不能被更改,即一旦创建就不能被修改。StringBuilder的实现原理与 StringBuffer 相同,唯一的区别是 StringBuilder 不是线程安全的,而 StringBuffer 是线程安全的。当对 String 进行修改时,实际上是创建了一个新的 String 对象,将修改后的字符串复制到新的对象中。

2024-07-15 19:06:16 372

原创 Java网络编程

1.在Java中,可以通过InetAddress类的静态方法getLocalHost()来获取本地主机的IP地址2.在Java中,如果需要测试网络是否通畅,可以使用Runtime对象的exec()执行ping命令3.如果想检查主机与目标主机之间的网络是否通畅,可以使用ping命令来测试,请求超时代表网络不通畅,有正常答复响应代表网络通畅。在Windows操作系统中,可以通过ipconfig命令查看本地主机的IP地址。

2024-07-13 10:12:10 225 1

原创 如何处理压缩文件?

(1).根据原始路径(字符串),创建源文件(File对象)(2).创建根目录(File对象),判断根目录是否已经存在,如果存在,则删除(//rootDir.delete();仅能删除空目录,非空白目录则需使用commons-io包提供的FileUtils工具类进行删除),如果不存在,则在磁盘上创建根目录(3).ZipInputStream:用于进行zip格式的压缩文件输入流;遍历压缩包中的每个子目录或子文件(ZipEntry类型的对象)

2024-07-11 19:20:00 303 1

原创 String字符串的常见方法总结

split(String regex):分割字符串,参数为正则表达式,以regex所表达的字符串为分隔符,返回一个分割后的字符串数组。equals():用于比较字符串内容是否相等,返回值为boolean类型,若相等返回true,不相等返回false。toString():用于将对象转换为字符串类型返回字符串本身,返回值为String类型。toLowerCase():将字符串转成小写字母,返回String类型的值。toUpperCase():将字符串转成大写字母,返回String类型的值。

2024-02-18 21:21:41 376 1

空空如也

空空如也

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

TA关注的人

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