自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (4)
  • 收藏
  • 关注

原创 告别SQL优化和数据迁移备份烦恼,NineData--小白也能成为DBA的秘密武器!

说起sql优化,大家可能首先想到的是创建索引、避免全表扫描、减少子查询及优化查询语句、避免隐式类型转换、慢查询日志记录慢SQL、explain分析SQL的执行计划及调优等等。当然,这也是我们常使用的一些调优手段,而且对开发人员也有一定的技术要求,且比较耗时。如果更进一步,数据作为我们日常开发的一部分,其重要性不言而喻。那么备份和迁移,也是我们需要实时关注的话题,对于大多数人来说,都是一个难题,甚至需要专业的DBA人员才能操作。此处小编给大家介绍一款专业的工具,让你告别SQL优化和数据迁移备份烦恼!

2023-10-24 11:56:18 135

原创 无缝数据传输:StreamSet安装部署的最佳实践

StreamSets是一个功能强大且易于使用的流数据集成平台,适用于从各种数据源中提取、转换和加载数据,以及进行实时数据处理和分析的场景,本文重点介绍如何安装部署该工具

2023-09-13 18:40:15 1140 2

原创 Bito----一款Idea智能化代码辅助插件,让你的开发效率飞起来!

Bito,一款比ChatGPT更快,无需API Key可以直接使用的Idea开发插件,能够帮助开发人员智能化生成高质量的代码、单元测试、注释、以及提高性能。

2023-08-26 12:13:15 799 4

原创 架构师必备之性能测试--压测工具sysbench的安装及使用

sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。作为开发人员,需要对服务的性能有所了解,qps、tps、rt等是检验一个服务的基本性能指标,本文重点从sysbench的安装及实际测试大概掌握下数据库的压测流程和数据库的性能指标信息

2023-08-20 20:12:30 1634

原创 架构师必备--高可用高性能分布式数据库Tidb安装部署实践

我们经常会说互联网 “三高”,即高并发、高可用、高性能,这些技术是构建现代互联网应用程序所必需的。本文从数据库层面,讲解下高可用高性能分布式数据库TiDB 的搭建部署流程,希望可以让大家少走弯路,更快上手

2023-08-19 12:16:27 967

原创 Mysql8.0数据库安装、用户创建及授权、设置白名单--看这一篇就够了!

Mysql对于大家来说可能是再也熟悉不过的了,是我们日常开发中经常使用的一款关系型数据库,之前可能更多地是使用别人搭建好的数据库服务,今天咱们从搭建的角度去讲解下服务的搭建流程,以及如何创建用户、赋予权限、设置白名单及修改端口。

2023-08-19 10:23:53 1209

原创 负载均衡–HAProxy安装及搭建tidb数据库负载服务

作为一名开发人员,随着经验的增加和技术的沉淀,需要提高自己架构方面的知识,同时对于一个企业来说,搭建一套高可用、高性能的技术架构,对于公司的业务开展和提高服务的性能也是大有裨益的。本文重点从软件安装和搭建tidb负载均衡数据库服务介绍下HAProxy的使用

2023-08-08 20:56:31 927

原创 sql中还在傻傻的手动添加创建人、创建时间?高级开发工程师不得不知的一个通用技巧!

背景数据库设计过程中,我们往往会给数据库表添加一些通用字段,比如创建人、创建时间、修改人、修改时间,在一些公司的设计过程中有时会强制要求每个表都要包含这些基础信息,以便记录数据操作时的一些基本日志记录。按照平常的操作来说,通用做法是输写sql时,将这些信息和对象的基本属性信息一起写入数据库,当然,这也是大家习以为常的操作,这种写法无可厚非,但是对于一个高级开发人员来说,如果所有的表都进行如此操作,未免显得有点啰嗦,而且数据表多的话,这样写就有点得不偿失了。其实还有一种更简便的做法,spring框架大家应该

2021-07-26 22:09:20 665

原创 利用反射原理记录Object对象属性变化

前言开发过程中,日志记录往往是系统中必不可少的环节,大致可以分为两种情况:第一种,系统日志,类似于登录日志、接口调用日志等,此类型的主要用于记录系统的访问情况以及接口方法的被调用情况,主要为开发人员所使用,可以通过注解结合aop原理实现,通过扫描指定方法并在方法添加哪些开头的注解被写入日志的规则来实现;第二种,为业务日志,主要用于记录系统中某些业务的变化或属性的改变,比如业务流转过程中记录状态的变化或对象属性的变化,此类型主要用于查询业务轨迹使用,便于记录系统中的操作记录,主要被系统操作者使用。背景本

2021-07-25 11:21:41 174

原创 一款让你优雅、高效实现文件预览的解决方案

前言项目开发中,很多系统都会涉及到文件操作,比如常见的上传、下载等,这些也都是司空见惯的事情,也比较容易实现。但是有些情况下,需要支持文件的在线预览功能,由于文件格式众多,不同的文件处理方式不同,使得预览显得比较复杂,实现起来也相对困难。本文结合自己的开发实战情况,总结下目前常用的三种模式及利弊关系,重点讲述下公司实现预览的功能代码及服务的搭建过程。常用三种实现方式及优缺点方式一 使用officeapps的在线链接方式实现具体为"https://view.officeapps.live.c

2021-07-25 11:09:32 664 3

原创 风决定要走,云如何挽留!程序员朋友离职有感

烈日炎炎,骄阳似火,西安的天气犹如一个大蒸笼一样,压的人喘不过气来,让人忍不住想说一句:宁可在空调房里哭,也不要在电热风下笑!此时此时,"哪凉快哪儿呆着去"听起来反而是一句善意的提醒,不再像往日那样显得刺耳。闲来无事,一个人静静的躺在床上刷手机。偶然间,微信弹出一条消息:“我提离职了,最近交接完工作可能就离开西安了,有时间没,改天聚聚!”,短短的几句话,但是此时却显得无比沉重。我忍不住问了一句:“怎么了,之前不是一直做的好好的吗,怎么说走就走”。“没啥,就是突然之间感觉没有了动力,当初选择的路,感觉越走越

2021-06-08 22:07:35 148

原创 vue框架缓存过期业务处理

序言一个好的框架,除了满足业务开发的需求基本之外,更重要的是要考虑系统的可扩展性和性能问题,众所周知,开发前期,由于业务的不确定性以及新需求的变更,设计前期无法将所有问题都考虑周到,所以系统的可扩展显得尤为重要。但是,对于一些通过业务的处理,也是一个系统设计初期必须考虑的问题,比如统一异常处理、封装公共返回结果、跨域等,本文主要针对之前本人修改的一个bug,简要介绍下前端如何进行缓存过期跳到登录页面的问题。开发流程设计思路:在app.vue页面添加鼠标移动事件,进行全局监听,登录系统后,如果页面没有触

2021-06-08 21:54:28 360

原创 记一次MyBatis动态sql的foreach标签实战应用

动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,稍有不慎,还会造成sql语法错误,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种烦恼。说到Mybatis的动态sql,不得不提到foreach元素标签,它的功能非常强大,允许你指定一个集合,声明可以在元素体内使用的集合项(item)和索引(index)变量。也允许你指定开头与结尾的字符串以及集合项迭代

2021-06-04 11:32:54 250 2

原创 记一次开发实战中的性能优化,同事看完来了句“我去你个大西瓜”

1. 项目背景最近在做一个文件管理系统,类似于百度网盘的功能,可以实现文件及文件夹的上传下载功能,以及权限管理功能,由于文件及文件夹的层级关系,无法进行数据分页操作,否则查询出的数据中原有的层级关系将破坏,无法将具体的文件放到对应的文件夹下,所以在查询出数据量大的情况下,进行文件权限赋值(设置文件的组信息)时效率超低,几百条的数据量处理下来都需要四五秒的时间,领导看了下系统忍不住骂了句:“我去你个大西瓜”。听完后我一愣:什么,你要请我吃西瓜?毕竟系统做成这样,整的我还挺不好意思的。我不停的给领导道歉:对不

2021-06-03 23:03:51 121

原创 数据库表锁死的解决方法

开发过程中,有时候前端请求一个接口,后台一直没反馈,且控制台也没有异常信息,多次请求都是同样的结果,此时可能是对应的接口调用的sql锁死的问题。具体解决方法如下:1.执行查询语句SELECT * FROM information_schema.INNODB_TRX;结果如下:2.将锁死的sql语句对应的进程杀死kill 1200031; 最后,重新请求接口,发现可以正常返回数据。这篇文章对你有帮助吗,关注博主,后期为大家分享更多开发小知识和问题的解决方案,在编码的道路上一起努力。.

2021-03-31 19:40:21 2652 2

原创 别再封装各种工具类和频繁下载github项目了,这个神级框架和小技巧你值得拥有!

对于开发人员来说,平常偶尔会浏览一些技术网站,比如csdn,掘金,简书,博客园,github等等,也是本人比较喜欢且常用的几个网站。本文主要介绍下github浏览开源项目的一个小技巧和封装了开发框架中常用工具类的开源工具类库hutool,可以简化框架中一些不必要的方法封装,大大提高开发效率。1.github使用技巧我们平常会使用github搜索一些开源项目,以此来借鉴下别人的代码和开发思路,但是有时候我们不知道项目的具体情况,如果每个项目都下载到本地查看,难免会浪费时间,且有些项目可能比较坑,没有学习的

2021-03-23 22:40:51 349 6

原创 异常错误 ConcurrentModificationException

今天开发过程中,使用增强for循环遍历集合,然后往集合中添加元素时,报异常错误 ConcurrentModificationException,本文结合实际代码来分析原因兵给出解决方案。1.报错的代码if(fileList.size() > 0){ for(UserFile userFile : fileList){ if(Constants.IS_DIR_YES == userFile.getIsDir()){//如果是文件夹,递归查找子文件,然后放入返回的结果list中 child

2021-03-17 20:54:44 377 1

原创 js操作cookie记住用户页面操作

js操作cookie记住用户操作的使用实例

2021-03-13 15:24:03 1585 14

原创 springboot框架的全局异常处理方案

系统框架搭建的前期过程中,为了约束代码规范,我们会对一些通用功能做一些处理,比如声明一些系统公用错误类、封装通用返回结果、统一异常处理等,这样做的优势是团队开发过程中能够形成统一的代码规范,增强代码可读性,同时又便于后期代码维护。本文主要介绍下框架中异常的处理:1.声明全局异常处理类,并添加@ControllerAdvice和@RestController注解代码如下:@ControllerAdvice@RestControllerpublic class GlobalExceptionHandl

2021-03-11 23:34:38 890 8

原创 路在何方?大龄程序员不得不思考的2个问题

35岁,对于浩瀚的宇宙来说,或许微不足道,但是对于人生来说,却是那么重要。试问一下,人这一辈子,有几个35年可以供我们挥霍逍遥。程序员,一个神奇的行业,从诞生到现在,从来都不缺少话题。和很多专业运动员一样,这个行业也是吃青春饭的,35岁,对程序员来说,或许就是人生的分水岭。有些问题我们不得不考虑。第一个问题,身体。作为开发人员,免不了加班加点,尤其是项目上线前期,整个人神经崩的仅仅的,就好比弦上的箭一样,随时待发,身体也免不了被摧残,因为小编深有体会。“想当年,意气风发,身强力壮,迎风尿三丈;而如今,廉颇

2021-03-11 23:23:23 694 10

原创 还在傻傻的手写代码?高级开发工程师不得不知的几个常用在线工具网站

1.jQuery一个快速简洁的JavaScript框架,设置的宗旨是"write less,do more",在线编辑器、在线代码、文本比较、以及各种常用页面样式和网页模板,还在等什么,快来体验一下吧。地址:https://www.jq22.com/2.Aliyun Java Initializr开发使用springboot框架的过程中,除了IDEA开发工具构建,更多就是用Spring Initializr来生成,虽然能帮我们引入一些必要的jar包,但有些东西还需要自己配置。Aliyun Jav

2021-03-09 23:27:26 11998 61

原创 做女人,真好!一个男程序员的妇女节真实感悟

对于广大女性同志来说,今天是一个特别的日子,因为我深有感悟,作为公司的一枚男程序员,

2021-03-08 23:48:05 2625 22

原创 搞笑,我是认真的!

程序员一直是一个神奇的存在,在大家的印象里,可能第一想法就是:呆板,闷骚,不善言谈。其实我想说:嗯,你说的对,不过对于小编来说,还少了一条:自恋。走在大街上,只要有女生多看我一眼,我就会怀疑她是不是暗恋我。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210307001540656.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nL.

2021-03-07 00:18:45 4430 21

原创 对象读取SpringBoot配置文件属性值

1.properties配置文件属性如下2.实体类对象声明@Component@ConfigurationProperties(prefix = “spring.redis”) //配置文件中对应的前缀public class RedisConfig {private String host;private String password;private String timeout;private String port;public String getRedisHost() {

2021-03-05 14:55:54 319

原创 maven项目打包复制resource资源文件到target目录的解决方案

1.pom文件中代码配置对应代码块.<build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.*</include> </includes> <filtering>true</filtering>

2021-03-03 17:22:36 5524 2

原创 使用JPA实现列表分页查询功能

1.dao层写法@Repositorypublic interface ShareGroupManageRepository extends JpaRepository<ShareGroup, Long>, JpaSpecificationExecutor {Page<ShareGroup> findAll(Specification<ShareGroup> specification, Pageable pageable);}2.controller层写法

2021-03-03 15:35:59 2149 2

原创 springboot集成Swagger步骤

1.pom文件引入依赖2.声明SwaggerConfig类@Configuration@EnableSwagger2public class SwaggerConfig {public static final String VERSION = "1.0.0";ApiInfo apiInfo() { return new ApiInfoBuilder() .title("swagger测试") .description("This

2021-03-03 12:07:06 345

原创 跨域访问解决方法

项目中创建SimpleCORSFilter类继承Filter,并交给spring容器管理,代码如下@Component@WebFilter(filterName = “SimpleCORSFilter”,urlPatterns ="/*" )public class SimpleCORSFilter implements Filter {private static final Logger logger = LoggerFactory.getLogger(SimpleCORSFilter.clas

2021-03-03 11:44:34 407 2

原创 最全文件操作工具类(包含文件大小转换、文件上传、下载、文件夹下载、解压、文件复制、文件夹复制、删除文件或文件夹等方法)

1.文件工具类方法public class FileUtils {/** * 文件大小转换 * @param String fileSize */public static String fileSizeConvert(String fileSize) { long fileS = Long.parseLong(fileSize); DecimalFormat df = new DecimalFormat("#.00"); String fileSizeString =

2021-03-02 18:15:03 585

原创 生成图片验证码-Google Kaptcha

1.pom文件引入依赖version标签中的版本号根据自己使用情况选择2.controller写对应api生成接口@Autowiredprivate Producer producer;@GetMapping("getCaptchaCode")public void getCaptchaCode(HttpServletResponse response, HttpServletRequest request) throws ServletException, IOException { re

2021-03-02 16:41:27 367

原创 使用百度api实现文本转语音功能

1.接口中调用,此处只截取部分内容,不包含整个完整接口2.文本转语音工具类/**文本转语音工具类*/public class TextToAudio {//private final String filepath = “/fileupload”;public static void main(String[] args) throws IOException, DemoException {(new TextToAudio()).run("/upload", “我的名字叫一起随缘”)

2021-03-02 13:34:19 2806

原创 生成base64图片流验证码,并存入redis进行登录认证

1.controller中认证写法2.工具类写法/**ValidateCodeGen功能:图片验证码工具类*/@Componentpublic class ValidateCodeGen {private String randString = “23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz”;//随机产生数字与字母组合的字符串private int width = 100;// 图片宽private in

2021-03-01 21:29:08 1418 12

原创 使用JPA注意事项及踩过的坑

使用多对多(ManyToMany)注解时,出现无限循环包含对方解决方法:需要在多的一方的对象的set方法上写上注解@JsonBackReference,如图2.通过@Query注解自定义新增sql传入对象的写法controller写法,如图Repository层写法,如图具体代码:@Modifying@Transactional@Query(value = “insert into rk_sharegroup(group_name,start_time,end_time,create_.

2021-02-28 20:30:40 1398

mysql安装流程.txt

亲爱的用户,很高兴您找到了这份文档。在您开始阅读之前,希望为您提供一些指导,以确保您能够充分利用这份资源。 本资源旨在为您提供详细的MySQL数据库安装、配置及创建用户设置白名单等步骤。无论您是初学者还是有经验的开发者,都可以从本文档中受益。MySQL是一个广泛使用的开源关系型数据库管理系统,它提供了丰富的功能和灵活性,可以满足各种应用程序的需求。 本文档将引导您完成以下步骤: 1、安装前环境检查 2、安装MySQL服务器 3、配置MySQL服务器 4、创建数据库和用户 5、连接测试及设置白名单 在阅读过程中,如果遇到任何问题或需要进一步的解释,可以随时联系我。我将竭诚为您解答疑问并提供帮助。 最后,如果您觉得这份文档对您的工作或学习有所帮助,请不要吝啬您的好评和推荐。这将对我产生巨大的鼓舞和支持。谢谢

2023-10-06

git安装及公私匙生成使用

在软件开发和版本控制领域,Git是一款备受推崇的分布式版本控制系统。它的设计简洁、强大且易于使用,成为了开发者们管理代码变更的首选工具。本文将为您提供Git的安装流程,帮助您快速上手并开始使用Git来管理您的代码。无论您是初学者还是有经验的开发者,通过本文,您将能够轻松安装Git,并了解其基本的使用方法。让我们一起开始这个Git之旅吧!

2023-10-06

日期常用万能工具类,percent

日期工具类,包含日期格式处理、比较、获取两个日期间隔天数、月数,以及指定日期前后N天的日期和指定月份的第一天、最后一天等方法

2022-03-14

FileUtil.rar

最全文件操作工具类(包含文件大小转换、文件上传、下载、文件夹下载、解压、文件复制、文件夹复制、删除文件或文件夹等方法)

2021-03-02

语文转语音工具基础类

该资源包含文本转语音需要的三个基础类,调用文本转语音工具类时需要引入该依赖

2021-03-02

closeJava.bat

java应用程序8080端口被占用时,为了快速解决,双击脚本运行应用程序即可,一键解决

2021-03-02

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

TA关注的人

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