- 博客(117)
- 收藏
- 关注
原创 【JAVA篇】------ spring aop
AOP(面向切面编程)是一种通过分离横切关注点(如日志、事务、安全等)来增强程序模块化的编程范式。在Java中,AOP通常通过Spring等框架实现,通过切面将附加功能插入到业务逻辑中,减少代码冗余,提高可维护性。本文我们主要来介绍AOP在找中介租房的场景中,可以使用代理模式来实现相关功能。这个场景涉及到租房接口、被代理对象(房东)、代理对象(中介)以及调用者(租客)。同时,探讨静态代理模式和动态代理模式(JDK动态代理)的实现及其优缺点。
2025-03-22 11:30:56
827
原创 SQL之CASE WHEN用法详解
现老师要统计班中,有多少男同学,多少女同学,并统计男同学中有几人及格,女同学中有几人及格,要求用一个SQL输出结果。当能耗值小于10时,使用P_LEVEL=0时的P_PRICE的值,能耗值大于10小于30使用P_LEVEL=1时的P_PRICE的值…如果表达式皆为false,则返回ElSE后result的值,如果省略了ELSE子句,则返回NULL。假设电能耗单价分为三档,根据不同的能耗值,使用相应价格计算成本。有能耗表如下:其中,E_TYPE表示能耗类型,0表示水耗,1表示电耗,2表示热耗。
2025-03-22 02:28:52
895
原创 SpringCloudGateWay
SpringCloudGateWay进行服务化:我们需要将我们的springCloudGatewa项目当作一个服务注册到EurekaServer中,配置如下server:port: 8888spring:application:name: cloud-gateway-eurekacloud:gateway:discovery:locator:enabled: trueeureka:client:service-url:defaultZone: http://localhost:
2025-03-22 00:52:13
803
原创 SpringBoot
在WebMvcConfigurer接口中可以进行很多配置. 下面添加自定义类型转换器: (Converter只用于 请求参数绑定到handler方法入参, 不会对配置文件里的有作用.)htmlGET请求转换器@Override@Overridetry {throw new RuntimeException("不符合转换的日期格式!});controller。
2025-03-10 23:31:01
623
原创 Spring boot启动原理及相关组件
ConfigurationClassPostProcessor的优先级为最高,它会对项目中的@Configuration注解修饰的类(@Component、@ComponentScan、@Import、@ImportResource修饰的类也会被处理)进行解析,解析完成之后把这些bean注册到BeanFactory中。在github里,我把Spring Boot应用启动的拓展组件(自定义的应用初始器、监听器、事件、ApplicationRunner)都写了例子,可参照阅读。
2025-03-10 17:31:54
1100
原创 Redis——Windows安装
redis-server.exe --service-install redis.windows.conf --Service-name RedisServer2 --loglevel verbose --port 6380,这样也是指定端口安装。进入Redis安装包文件下,注册服务:redis-server.exe --service-install redis.windows.conf --Service-name RedisServer1 --loglevel verbose。
2025-03-10 12:45:38
739
原创 node.js卸载并重新安装(超详细图文步骤)
1、Node.js下载网址2、一路点击next3、安装到本地位置,按需求自行更换安装路径(建议不做修改默认C盘)4、不需要选择或更换,默认安装,直接next,它会自动添加系统变量。5、点击Install,进入如下图所示的Node.js install进度界面6、出现以下界面安装完成7、我们使用Windows+R快捷键,输入cmd进入命令行界面,验证安装是否成功:8、以上node的环境已经安装完成,npm包管理器也有了。
2025-03-07 22:56:17
272
原创 mysql时间时区修改、set global、配置文件-default-time-zone
通过查看mysql错误日志或二进制日志可以看到时间和时区并不与国内的东八区时间一致。
2025-03-05 19:11:34
296
原创 MySQL 函数
MySQL 函数是服务器端定义的程序,可以接收输入参数,进行处理后返回一个结果值。函数的主要特点是可以在 SQL 语句中直接调用,通常用于计算、数据转换或返回某种特定的结果。与存储过程不同,函数必须返回一个值,并且可以在 SQL 语句的SELECT列表、WHERE子句、ORDER BY子句等位置使用。
2025-03-05 17:49:16
556
原创 Java面试时,该如何准备亮点?
*比如你说,对此我们建了索引,这样就很笼统,但你如果说,经过看执行计划后发现,是因为在从订单明细表里根据用户名去搜索时,对用户名字段没建索引,或者说,在下订单的过程中,需要根据用户ID多次到风控表里去查数据,这块没用缓存,所以导致性能慢。**比如你在面试中介绍项目时,你说,在这个项目里,我有过数据库性能调优的经验,有过排查内存性能的经验,有通过看linux日志解决线上问题的经验,有通过看底层源码解决实际问题的经验。或者会问,你说了通过jenkins部署,说了通过new relic监控,你说下细节。
2025-03-05 16:24:04
713
原创 Java_ElasticSearch(ES)——分布式搜索引擎
Elasticsearch是一个开源的分布式搜索和分析引擎,最初由Elastic公司开发。它构建在Apache Lucene搜索引擎库之上,提供了一个强大的全文搜索和分析引擎,它结合kibana、Logstash、Beats,是一整套技术栈,被叫做ELK,适用于各种用例,包括文本搜索、日志分析、实时数据分析、监控和报警等。上述配置文件即表示添加扩展词典ext.dic,它就会在当前配置文件所在的目录中找这个文件。这种方式在文档id不存在时,就会相当于一个新增操作。
2025-03-05 01:17:22
360
原创 Centos7搭建PHP项目,环境(Apache+PHP7.4+Mysql5.7)
接着设置密码的长度,这里需要设置多少位数的简单密码就设置多少位数,我这里设置密码为root,所以设置长度为4。在软件仓库中使用GPG公钥可以确保软件包的完整性和认证,以防止未经授权的修改或潜在的风险。由于不支持设置简单的密码,如果出于学习的目的,想设置简单好记的密码,就需要进行下面的操作。到这里,如果安装的时候出现公钥尚未安装的问题,请不要着急,根据下面的步骤来解决问题。首先执行修改验证密码强度等级的命令,将等级设置为LOW,也就是低级的。在上面的图片中,在输入密码处黏贴前面复制的密码。
2025-03-04 23:59:37
1161
原创 醒醒!临时抱佛脚背Java面试题的在面试官面前是根本没有用的
线程池,这个还是很重要的,在生产中用的挺多,四个线程池类型,其参数,参数的理解很重要,corepoolSize怎么设置,maxpoolsize怎么设置,keep-alive各种的,和美团面试官探讨过阻塞队列在生产中的设置,他说他一般设置为0,防止用户阻塞。综上而言,技术在不断更新,面试难度在不断增加,该学习的还很多,千万不要为了应付面试而面试,也不要认为面试时造飞机火箭,工作拧螺丝,小编根据一些面经以及在大厂工作的朋友总结以下面试重点,希望大家利用这一两个多月的时间提前做好面试准备,千万不要做应付面试!
2025-03-03 11:53:06
414
原创 架构实践:同时支持单体、微服务,单台服务器还能支撑十几万用户?
?目录1背景2搬迁实践3搬迁过程中的一些挑战4落地成果5 总结面对十几万用户 SaaS 服务迁移的巨大挑战,如何在单台服务器上实现高效、稳定、安全的部署运行?本文详细探讨了这一挑战背后的技术实践过程,包括技术架构的演进、面临的挑战及解决方案,以及最终实现的架构维度和资源维度的显著收益。通过这一创新实践,微服务数量从30+锐减至个位数,资源占用大幅下降,仅需 8C16G 即可轻松应对,为企业在成本、效率及灵活性上带来前所未有的突破。关注,一手技术干货提前解锁??//
2025-03-02 22:10:57
784
原创 如何升级node.js版本
如果你使用的是npm(Node Package Manager)或Yarn等包管理器,它们可能也提供了更新Node.js的功能。具体步骤取决于你使用的包管理器,你可以查阅相关文档或在线资源来了解如何使用包管理器来更新Node.js。无论你选择哪种方法,都建议在升级Node.js之前备份你的代码和项目,以防万一出现任何问题。同时,也要注意检查你的项目依赖是否与新版本的Node.js兼容,以避免升级后出现运行错误。访问Node.js的官方网站,下载对应你操作系统的最新版本安装程序。
2025-03-02 20:51:53
413
原创 分布式WEB应用中会话管理的变迁之路
利用负载均衡器的分发能力,将同一浏览器上同一用户的请求,都定向发送到固定服务器上,让这个服务器处理诠用户的所有请求,这样只要这个服务器上保存了用户Session,就能保讷用户的状态一致性。,是把原来的单体架构应用,通过分而治之的手段,按照业务功能,切分成一些小的模块应用,部署在不同服务器节点上,例如上图中的服务器A和B。在这样的单体架构中,由于所有的用户请求都是由这个唯一的服务器进行响应处理,所以只要把保存了用户信息和状态的Session对象,存放在应用服务器内存里,就能轻松地达到保持用户状态的目的。
2025-03-02 19:13:10
616
原创 一、Spring介绍以及版本历史演进
与常见Spring XML名称空间元素等价的注解,如@ComponentScan、@EnableTransationManagement、@EnableCaching、@EnableScheduling、@EnableAsync、@EnableAspectAutoProxy、@EnableLoadTimeWeaving和@EnableSpringConfigured。Spring的第一个版本于2002年10月发布,由一个带有易于配置和使用的控制反转(IoC)容器的小型内核组成。它由下图所示的七个模块组成。
2025-03-01 15:23:16
995
原创 【Navicat+MySQL】 在Navicat内创建管理数据库、数据库表。
ENGINE = <存储引擎>:MySQL 支持多个存储引擎,可为不同表设定不同的存储引擎,使用是要用具体的存储引擎名称代替,如 ENGINE = InnoDB。这个语句可以用来从一个数据库“跳转”到另一个数据库,在用 CREATE DATABASE 语句创建了数据库以后,该数据库不会自动成为当前数据库,需要用 USE 语句来制定。数据库Bookstore中有一个表book,创建book表的一个名为book_copy2的副本,并复制其内容。-<列名>:表中列的名字,长度不能超过64字符。
2025-02-28 23:20:31
813
原创 【AIDevops】Deepseek驱动无界面自动化运维与分布式脚本系统,初探运维革命之路
声明:笔者当前文章内容仍在构想阶段,仅部分实现目录引言第一部分:基于DeepSeek大模型的单机GPT实现1. DeepSeek大模型简介2. 功能概述3. 项目优势,实现技术栈及实现功能4. 示例展示5.腾讯云AI代码助手助力第二部分:无界面离线大模型助力运维1. 背景与挑战2. 系统设计与核心功能3. 实用场景4. 安全性与商业价值第三部分:基于脚本自动构建联盟链的未来探索?编辑1. 背景与设想2. 系统设计与核心思路3. 应用场景与潜力在当前人工智能与云计算技术快速发展的背景下,自动化工具正在从单点功
2025-02-28 14:20:16
2420
原创 SQL 中 COUNT 的用法详解
COUNT(*):统计表中所有行,包括NULL值。COUNT(1):与COUNT(*)类似,统计所有行。COUNT(列名):统计某列中非NULL值的数量。COUNT(DISTINCT 列名):统计某列中不重复的非NULL值。COUNT可与GROUP BY和HAVING等子句结合,进行复杂的分组统计和条件过滤。COUNT(*)和COUNT(1)在大多数数据库中性能相同,可以按习惯使用。
2025-02-28 12:40:14
711
原创 SpringBoot集成Prometheus
现在2.3.0.RELEASE和1.5.4.RELEASE版本的服务,都可以成功暴露出一个给Prometheus拉取指标的接口,只需要在Prometheus上进行配置即可在Prometheus WEB UI上看到效果。但生产环境的真实情况,不可能只收集一个服务的指标,是否再需要一个代理服务,该服务用来收集所有微服务的指标后,再统一暴露接口给Prometheus,需要再根据生产环境使用情况考虑。启动服务后,访问/actuator/prometheus接口,可以看到Micrometer替我们收集到的指标。
2025-02-28 10:57:15
806
原创 SpringBoot - Cookie & Session 用户登录及登录状态保持功能实现
定义Session (会话控制),Session 对象存储特定用户会话所需的属性及配置信息SessionID:客户端第一次请求服务器时,服务器为客户端算出的一个值,存储在 Cookie 中,用于定位用户 Session 在服务器中的位置与 Cookie 的区别:Cookie 可以通过伪造来实现登录并进行一些 HTTP 请求,从安全性上来讲,Session 比 Cookie 安全性稍微高一些功能:提高安全性有效期:一般为半小时,可以根据需求设定缺点。
2025-02-27 14:04:55
717
原创 Spring Boot 整合 Keycloak
本文介绍了如何如何设置了 Keycloak 服务器,以及如何在 Spring Boot 中使用 Spring Security OAuth2.0 结合 Keycloak 实现认证和授权。
2025-02-27 12:41:55
1254
原创 Python连接SQL SEVER数据库全流程
在数据分析领域,经常需要从数据库中获取数据进行分析和处理。而SQL Server是一种常用的关系型数据库管理系统,因此学习如何使用Python连接SQL Server数据库并获取数据是非常有用的。以下是Python使用pymssql连接SQL Server安装pymssql库本地账号设置脚本连接数据导入函数实现。
2025-02-27 11:19:29
1593
1
原创 MySQL篇之对MySQL进行参数优化,提高MySQL性能
innodb_flush_log_at_trx_commit:控制事务提交时日志的刷新策略。tmp_table_size 和 max_heap_table_size 控制内存中临时表的最大大小。如果设置为 1,每次写入二进制日志都会同步到磁盘,保证事务的持久性,但会带来一定的性能开销。磁盘 I/O 是数据库性能的重要瓶颈,合理配置与磁盘相关的参数有助于减少磁盘访问次数,提高性能。下面是一些常用的查询优化参数。MySQL 的日志记录可以帮助我们在故障时进行诊断,但是过多的日志记录会增加系统的负担。
2025-02-26 02:26:23
902
原创 MySQL 的 INSERT(插入数据)详解
如果你要插入的值涵盖了表中的所有列,可以省略列名部分。但请注意,值的顺序必须与表中列的顺序相同。无论是基础的单行插入,还是高级的插入否则更新和数据迁移。语句非常灵活,支持多种语法形式,可以根据具体需求选择合适的用法。如果你希望在插入数据时忽略已经存在的记录(即不抛出错误),可以使用。如果你希望在插入数据时遇到主键或唯一键冲突时更新现有记录,可以使用。语法来插入数据,这种方式更适用于需要明确指定列名和值的场景。语法,适用于插入单行数据。子句中指定多组值,从而一次性插入多行数据。语句的详细语法和使用示例。
2025-02-26 01:06:30
461
原创 Java面试--OOM
② java.lang.OutOfMemoryError: PermGen space ——>java永久代溢出,即方法区溢出了,一般出现于大量Class或者jsp页面,或者采用cglib等反射机制的情况,因为上述情况会产生大量的Class信息存储于方法区。① java.lang.OutOfMemoryError: Java heap space ——>java堆内存溢出,此种情况最常见,一般由于内存泄露或者堆的大小设置不当引起。② 应用用的太多,并且用完没释放,浪费了。此时就会造成内存泄露或者内存溢出。
2025-02-25 21:45:11
370
原创 JAVA (Springboot) i18n国际化语言配置
在Java中,国际化(Internationalization,通常简称为i18n)是一个过程,它允许应用程序适应不同的语言和地区设置,从而能够支持全球用户。Java平台为国际化提供了强大的支持,包括Locale类、ResourceBundle类以及用于格式化日期、数字和货币的类。
2025-02-24 19:08:32
965
原创 828华为云征文|使用sysbench对Flexus X实例对mysql进行性能测评
Flexus云服务器X实例是华为云推出的一款高性能、可扩展的虚拟服务器解决方案,专为满足企业和个人用户对高可靠性、灵活性和强大计算能力的需求而设计。该实例不仅具备卓越的硬件性能,还深度集成了对MySQL等数据库的优化支持,为用户提供了卓越的数据库应用体验。Flexus云服务器X实例-华为云Flexus云服务器X实例(Flexus X)是柔性算力,六倍性能,旗舰体验,覆盖高科技、零售、金融、游戏等行业大多数通用工作负载场景。
2025-02-24 16:18:11
1070
原创 程序员进阶必看!Java进阶书籍推荐
是开发分布式程序的选项之一,不过我不喜欢,其实银行使用的也不怎么的。介绍:这本书名为《Java并发编程实践》有些抹杀了它的价值,其中并非只讲述了Java的多线程设施,对一般的并发编程的rationale也有相当透彻的阐述。介绍:云计算必备图书。介绍:清晰揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以及改善。大师的杰作,让你明白软件是一步步改进的,不是一蹴而就的。介绍:这本书的作者是被誉为Java之父的James Gosling,入门者推荐阅读,对基础的讲解很不错。
2025-02-23 06:17:42
302
原创 基于DataX迁移MySQL到OceanBase集群
从MySQL向OceanBase迁移数据的基本方法:mysqldump、datax 、canal 等.本次基于datax迁移方便,便捷,文末列出的报错希望能给大家带来帮助。
2025-02-22 03:55:15
1056
原创 SQL Server数据库日志(ldf文件)清理
随着系统运行时间的推移,数据库日志文件会变得越来越大,这时我们需要对日志文件进行备份或清理。将testdb换成你需要处理的数据库名,该操作会清理日志,建议先备份再操作。下面是日常运维中比较常用的日志清理SQL语句。
2025-02-21 22:15:51
88
原创 SpringBoot整合easy-es
EasyES是一款基于Elasticsearch官方提供的RestHighLevelClient开发的ORM框架,旨在简化开发流程并提高效率。EasyES在保持RestHighLevelClient原有功能的基础上进行增强,而不做任何改变。它采用与相似的语法,使得开发者可以无缝迁移至EasyES,无需额外学习成本。EasyES的核心理念是将简单、易用性留给用户,将复杂性留给框架,致力于成为全球最受欢迎的ElasticSearch搜索引擎开发框架。
2025-02-21 17:17:38
1227
原创 Spring MVC常用注解(绝对经典)
某些特殊的情况下,前端传递的参数 key 和我们后端接收的 key 可以不一致,比如前端传递了一个 time 给后端,而后端是使用createtime 字段来接收的,这样就会出现参数接收不到的情况,如果出现这种情况,我们就可以使用 @RequestParam 来重命名前后端的参数值。HttpServletRequest 对象代表客户端的请求,当客户端通过 HTTP 协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。
2025-02-21 15:23:47
915
原创 Redis篇(环境搭建)
Windows系统中启动Redis,直接双击redis-server.exe即可启动Redis服务,redis服务默认端口号为6379。双击 redis-cli.exe 即可启动Redis客户端,默认连接的是本地的Redis服务,而且不需要认证即可连接成功。前面我们已经启动了Redis服务,默认情况下Redis启动后是在前台运行,而且客户端不需要密码就可以连接到。如果没有指定,就说明可以接受。通过 redis-cli 可以连接到本地的Redis服务,默认情况下不需要认证即可连接成功。
2025-02-21 02:17:59
1271
原创 ORM框架详解:为什么不直接写SQL?
ORM是"Object-Relational Mapping"的缩写,中文通常翻译为"对象关系映射"。这个术语听起来可能有点抽象,让我们通过一个简单的比喻来理解它:想象你是一位翻译官,你的工作是在两种完全不同的语言之间进行翻译。在编程世界中,ORM就像这样一位翻译官,它在面向对象的编程语言(如Java、Python、C#等)和关系型数据库(如MySQL、PostgreSQL、Oracle等)之间进行"翻译"。使用面向对象的方式来操作数据库将数据库表映射到编程语言中的类。
2025-02-20 23:56:30
921
原创 MySQL系列之数据授权(安全)
数据授权对了,数据这么敏感,必须遵循“分而治之,最小认领”的原则。在这个大数据盛行的时代,数据显然成为人类的第N个生产资料,没有它,好像我们“站得不太高,看得不够清,听得不够远”。所以如何管理它,越来越重要了。今天博主继续大话MySQL,助你了解它是如何完成授权的。Let’s Go~本文对MySQL的权限操作进行了一定的介绍。希望可对有需要的盆友提供一定的帮助。
2025-02-20 22:34:35
763
原创 从零开始:Kubernetes 集群的搭建与配置指南,超详细,保姆级教程
本文详细讲解了如何从零开始搭建一个 Kubernetes 集群。希望本文对您的学习和工作有所帮助。
2025-02-16 09:59:42
765
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人