- 博客(55)
- 收藏
- 关注
原创 git命令-基本使用
git安装后-指定名称和邮箱:#查看远程分支:#查看本地分支:git branch#切换分支:#创建新分支:#将工作区的被修改的文件和新增的文件提交到暂存区:git add .# 将暂存区所有文件添加到本地仓库:# 将文件添加到远程仓库:git push# 将代码推送到指定的远程分支:# 从远程仓库拉取代码到工作空间:git pull# 从远程仓库拉取指定分支代码:# 用于合并指定分支到当前分支:
2024-12-03 15:09:02
355
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
原创 非关系型数据库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高级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
原创 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关注的人