![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术分享
文章平均质量分 61
一起随缘
大家好,我是人见人爱、花见花开、狗见狗发呆的一起随缘。自恋,我是认真的,希望在这里能和您一起分享生活中的开心每一刻,来了,请留下您的脚印,记得关注我哦
展开
-
告别SQL优化和数据迁移备份烦恼,NineData--小白也能成为DBA的秘密武器!
说起sql优化,大家可能首先想到的是创建索引、避免全表扫描、减少子查询及优化查询语句、避免隐式类型转换、慢查询日志记录慢SQL、explain分析SQL的执行计划及调优等等。当然,这也是我们常使用的一些调优手段,而且对开发人员也有一定的技术要求,且比较耗时。如果更进一步,数据作为我们日常开发的一部分,其重要性不言而喻。那么备份和迁移,也是我们需要实时关注的话题,对于大多数人来说,都是一个难题,甚至需要专业的DBA人员才能操作。此处小编给大家介绍一款专业的工具,让你告别SQL优化和数据迁移备份烦恼!原创 2023-10-24 11:56:18 · 162 阅读 · 0 评论 -
Bito----一款Idea智能化代码辅助插件,让你的开发效率飞起来!
Bito,一款比ChatGPT更快,无需API Key可以直接使用的Idea开发插件,能够帮助开发人员智能化生成高质量的代码、单元测试、注释、以及提高性能。原创 2023-08-26 12:13:15 · 846 阅读 · 4 评论 -
架构师必备之性能测试--压测工具sysbench的安装及使用
sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。作为开发人员,需要对服务的性能有所了解,qps、tps、rt等是检验一个服务的基本性能指标,本文重点从sysbench的安装及实际测试大概掌握下数据库的压测流程和数据库的性能指标信息原创 2023-08-20 20:12:30 · 2138 阅读 · 0 评论 -
架构师必备--高可用高性能分布式数据库Tidb安装部署实践
我们经常会说互联网 “三高”,即高并发、高可用、高性能,这些技术是构建现代互联网应用程序所必需的。本文从数据库层面,讲解下高可用高性能分布式数据库TiDB 的搭建部署流程,希望可以让大家少走弯路,更快上手原创 2023-08-19 12:16:27 · 1086 阅读 · 0 评论 -
负载均衡–HAProxy安装及搭建tidb数据库负载服务
作为一名开发人员,随着经验的增加和技术的沉淀,需要提高自己架构方面的知识,同时对于一个企业来说,搭建一套高可用、高性能的技术架构,对于公司的业务开展和提高服务的性能也是大有裨益的。本文重点从软件安装和搭建tidb负载均衡数据库服务介绍下HAProxy的使用原创 2023-08-08 20:56:31 · 974 阅读 · 0 评论 -
sql中还在傻傻的手动添加创建人、创建时间?高级开发工程师不得不知的一个通用技巧!
背景数据库设计过程中,我们往往会给数据库表添加一些通用字段,比如创建人、创建时间、修改人、修改时间,在一些公司的设计过程中有时会强制要求每个表都要包含这些基础信息,以便记录数据操作时的一些基本日志记录。按照平常的操作来说,通用做法是输写sql时,将这些信息和对象的基本属性信息一起写入数据库,当然,这也是大家习以为常的操作,这种写法无可厚非,但是对于一个高级开发人员来说,如果所有的表都进行如此操作,未免显得有点啰嗦,而且数据表多的话,这样写就有点得不偿失了。其实还有一种更简便的做法,spring框架大家应该原创 2021-07-26 22:09:20 · 680 阅读 · 0 评论 -
利用反射原理记录Object对象属性变化
前言开发过程中,日志记录往往是系统中必不可少的环节,大致可以分为两种情况:第一种,系统日志,类似于登录日志、接口调用日志等,此类型的主要用于记录系统的访问情况以及接口方法的被调用情况,主要为开发人员所使用,可以通过注解结合aop原理实现,通过扫描指定方法并在方法添加哪些开头的注解被写入日志的规则来实现;第二种,为业务日志,主要用于记录系统中某些业务的变化或属性的改变,比如业务流转过程中记录状态的变化或对象属性的变化,此类型主要用于查询业务轨迹使用,便于记录系统中的操作记录,主要被系统操作者使用。背景本原创 2021-07-25 11:21:41 · 177 阅读 · 0 评论 -
一款让你优雅、高效实现文件预览的解决方案
前言项目开发中,很多系统都会涉及到文件操作,比如常见的上传、下载等,这些也都是司空见惯的事情,也比较容易实现。但是有些情况下,需要支持文件的在线预览功能,由于文件格式众多,不同的文件处理方式不同,使得预览显得比较复杂,实现起来也相对困难。本文结合自己的开发实战情况,总结下目前常用的三种模式及利弊关系,重点讲述下公司实现预览的功能代码及服务的搭建过程。常用三种实现方式及优缺点方式一 使用officeapps的在线链接方式实现具体为"https://view.officeapps.live.c原创 2021-07-25 11:09:32 · 712 阅读 · 3 评论 -
vue框架缓存过期业务处理
序言一个好的框架,除了满足业务开发的需求基本之外,更重要的是要考虑系统的可扩展性和性能问题,众所周知,开发前期,由于业务的不确定性以及新需求的变更,设计前期无法将所有问题都考虑周到,所以系统的可扩展显得尤为重要。但是,对于一些通过业务的处理,也是一个系统设计初期必须考虑的问题,比如统一异常处理、封装公共返回结果、跨域等,本文主要针对之前本人修改的一个bug,简要介绍下前端如何进行缓存过期跳到登录页面的问题。开发流程设计思路:在app.vue页面添加鼠标移动事件,进行全局监听,登录系统后,如果页面没有触原创 2021-06-08 21:54:28 · 373 阅读 · 0 评论 -
记一次MyBatis动态sql的foreach标签实战应用
动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,稍有不慎,还会造成sql语法错误,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种烦恼。说到Mybatis的动态sql,不得不提到foreach元素标签,它的功能非常强大,允许你指定一个集合,声明可以在元素体内使用的集合项(item)和索引(index)变量。也允许你指定开头与结尾的字符串以及集合项迭代原创 2021-06-04 11:32:54 · 251 阅读 · 2 评论 -
记一次开发实战中的性能优化,同事看完来了句“我去你个大西瓜”
1. 项目背景最近在做一个文件管理系统,类似于百度网盘的功能,可以实现文件及文件夹的上传下载功能,以及权限管理功能,由于文件及文件夹的层级关系,无法进行数据分页操作,否则查询出的数据中原有的层级关系将破坏,无法将具体的文件放到对应的文件夹下,所以在查询出数据量大的情况下,进行文件权限赋值(设置文件的组信息)时效率超低,几百条的数据量处理下来都需要四五秒的时间,领导看了下系统忍不住骂了句:“我去你个大西瓜”。听完后我一愣:什么,你要请我吃西瓜?毕竟系统做成这样,整的我还挺不好意思的。我不停的给领导道歉:对不原创 2021-06-03 23:03:51 · 125 阅读 · 0 评论 -
数据库表锁死的解决方法
开发过程中,有时候前端请求一个接口,后台一直没反馈,且控制台也没有异常信息,多次请求都是同样的结果,此时可能是对应的接口调用的sql锁死的问题。具体解决方法如下:1.执行查询语句SELECT * FROM information_schema.INNODB_TRX;结果如下:2.将锁死的sql语句对应的进程杀死kill 1200031; 最后,重新请求接口,发现可以正常返回数据。这篇文章对你有帮助吗,关注博主,后期为大家分享更多开发小知识和问题的解决方案,在编码的道路上一起努力。.原创 2021-03-31 19:40:21 · 2688 阅读 · 2 评论 -
异常错误 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 · 383 阅读 · 1 评论 -
生成图片验证码-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 · 373 阅读 · 0 评论 -
对象读取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 · 323 阅读 · 0 评论 -
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 · 5700 阅读 · 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 · 2162 阅读 · 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 · 356 阅读 · 0 评论 -
跨域访问解决方法
项目中创建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 · 414 阅读 · 2 评论 -
使用百度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 · 2857 阅读 · 0 评论 -
使用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 · 1417 阅读 · 0 评论 -
生成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 · 1434 阅读 · 12 评论 -
最全文件操作工具类(包含文件大小转换、文件上传、下载、文件夹下载、解压、文件复制、文件夹复制、删除文件或文件夹等方法)
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 · 588 阅读 · 0 评论 -
springboot框架的全局异常处理方案
系统框架搭建的前期过程中,为了约束代码规范,我们会对一些通用功能做一些处理,比如声明一些系统公用错误类、封装通用返回结果、统一异常处理等,这样做的优势是团队开发过程中能够形成统一的代码规范,增强代码可读性,同时又便于后期代码维护。本文主要介绍下框架中异常的处理:1.声明全局异常处理类,并添加@ControllerAdvice和@RestController注解代码如下:@ControllerAdvice@RestControllerpublic class GlobalExceptionHandl原创 2021-03-11 23:34:38 · 898 阅读 · 8 评论 -
js操作cookie记住用户页面操作
js操作cookie记住用户操作的使用实例原创 2021-03-13 15:24:03 · 1589 阅读 · 14 评论