- 博客(240)
- 收藏
- 关注
原创 Android入门
main目录下少了一个AndroidManifest.xml文件,我认为是一个路由的东西,让你找到Activity类,个人理解一个页面的入口,然后一个Activity对应 res/layout下的一个xml,xml可以认为是前端中html,activity相当于js去实现业务逻辑。唯一区别应该是不用装软件,自身有的。│ │ │ │ └── MainViewModel.java // 视图模型。
2025-01-21 09:57:44
452
原创 ELK部署
很多公司还是在单体项目中苦苦挣扎,没有必要上elk系统,大家都懂的一个原则系统的技术栈越多系统越复杂,维护起来也越麻烦,在没有大流量高并发的情况下我们就用单体服务挺舒服。我们行业的特殊性做的都是BTB的项目,并发更是少的可怜,唯一出问题的可能性就是联表太多效率低了下来,做的和erp系统一样的臃肿。在追求微服务多节点部署的情况下这时就有必要使用ELK系统去查问题的可能性。不同服务之间的业务调用日志打印在不同目录下,这样就提高的查问题的效率,同时也提高了日志分析的方便性提高了效率。
2024-12-18 13:48:55
410
原创 docker设置容器自动启动
说起开机自动启动应该很多人都遇到过,我们公司做的系统很多的中间件都没有设置开机自动启动然后中间修改问题又设置了一些临时生效的文件,开始的时候大家都不以为意,知道公司陆续有人离职入职管理交接一塌糊涂,项目成了历史遗留问题,后面谁接手谁就成了有最大成长机会的人了。mysql设置的临时连接数,最大连接数,还有一些其他的参数就只能全部备份出来,启动后一个个对比,修改成一样,如果这次有人记录很好,下次就不会这么麻烦了,但是没有交接。要设置docker容器在docker守护进程启动时自动启动,可以使用。
2024-12-15 12:29:54
472
原创 项目启动报错port 9848 is available
我用的注册中心是nacos启动的时候只指定了8848端口,在项目springboot springcloud springcloud alibaba版本低的时候没有什么,当我的版本升级了成了springboot。2.2.10-RC1 应该是调用需要用到9848端口,我单独部署了下nacos相同的版本是可以运行,但是用docker 只指定8848端口是不能启动的。现在docker 源被禁用,我们从公网上拉不image了 快乐离我而去了,可以翻墙拉image,我没有翻过。
2024-11-29 14:54:59
426
原创 文件服务器minio
开始的时候我们为了项目快速上线没有设置minio为私有的,用公有权限,这样只要获取我们的连接地址就能无限的获取我们minio上的文件,然后设计的公司营业执照授权书等等都被暴露了,做漏扫的时候我们一些本地文件因为测试账号密码也被公之于众。后续处理问题我们将权限设置成私有的 上传文件的时候会返回一个唯一的文件名字,如果是替换文件我们就提供一个不修改文件名字的接口把文件覆盖掉。在项目开发中我们有些模板文件excel,和图片需要保存下来用在系统中回显。通过文件名字获取临时访问权限的路径 过时连接失效。
2024-11-28 17:18:09
170
原创 项目整合logback日志打印线程id
项目打印日志能帮助我们解决很多的问题,提示我们出现的问题,通过日志我们可以准确的定位问题快速找到问题点解决问题。还有一个方法是添加引用链路追踪,用的是springcloud不需要添加引用版本号。有了线程id我们能完整看到一个方法调用的全链路打印日志,对处理问题很有帮助。打印日志的时候没有打印线程id 解决方案是添加线程id。不是一个项目的配置问题 可能会有差异。这时候你能看到打印的线程id。然后在配置文件中开启配置。
2024-11-28 16:29:00
806
原创 java项目全局异常
有时我们为了提示更加的优雅需要对错误的返回信息做下非开发人员能看的懂的提示,但是这样对开发人员不是很友好,简单的平时通过提示可以处理的错误需要去看日志报错才能解决了,但普通用户看起来就很高大上一些不会让用户感觉错误很低级,非常不专业。ResponseEntity中的status赋值会改变接口请求的状态码的改变,请求状态码会直接影响浏览器的调用。尤其有OPTIONS请求的浏览器。自定义错误,入参类型校验错误提示,数据库错误,托底的错误提示。如果是自定义的返回形式好像还是会有其他的错误提示拦截去做处理。
2024-11-25 10:23:45
156
原创 openfeign中的callback 和callbackFactory
做外部对接的时候使用resttemplate封装http请求,用起来很不方便就使用了openfeign做http请求看起来比较美观,简洁,统一性比较好。但是在使用失败调用处理callbackFactory的时候,一直不走这部分逻辑,开始了尝试。标准解决应该是看文档的。OpenFeign集成了Ribbon和Hystrix,具有负载均衡和容错的能力。只是openFeign不开启hystrix配置引用jar包,callbackFactory逻辑是不处理的。
2024-11-20 18:00:00
1046
原创 nacos本地虚拟机搭建切换wiff问题
我本地启动项目总是请求到gateway服务上,转发到其他模块的服务时调用不通,找到的原因就是我切换wiff,然后电脑的ip改变了,nacos服务列表注册的还是切换网络之前的ip,切换网络后ip改变了所以访问不到。重启注册就能访问了。网上能找到些配置,自动注册我没有尝试成功就不说了。在自己的电脑上搭建了vm虚拟机,安装上系统,设置网络连接。然后在vm的系统上安装了中间件nacos,mysql,redis等,后续用的中间件都是在虚拟机系统上安装的,开发在本地电脑上。naocs注册上的ip是之前的。
2024-11-05 19:00:00
318
原创 opencv-platform实现人脸识别
opencv是一个开源计算机视觉和机器学习软件库,提供了数百个计算机视觉算法,可以用于图像处理、视频分析、物体识别等。
2024-10-27 23:04:20
505
原创 linux逻辑卷扩容增加空间
背景是使用vmware虚拟机安装的centos系统,在上面安装了mysql数据库为了测试千万级表模拟数据然后磁盘不够用了需要扩容。
2024-10-13 21:29:35
376
原创 mysql数据备份
但是数据库数据恢复还是很有必要在这里说的,原因也很简单我经历数据库mysql中的一些数据文件被加密了,没发读了,一个表被全量更新了,但是其他的业务还在在继续,而且还不能停服务,前期的系统业务架构很重要,做好了也不会有这样的问题,还是那句木已成舟回不去了。为什么写这个话题,原因很简单,在实现业务逻辑的时候很多更新操作没有校验where后面的条件,导致整个表的数据被更新了,工作这么多年了,从入行到现在还在不时的发生,当然避免的方式有很多,但是难免还是有这样的情况发生。mybatisplus 重写下。
2024-10-10 20:06:58
409
原创 Jmeter接口测试
在面试的时候经常回被问到程序的性能问题(QPS,TPS,吞吐量,响应时间),大概估算一下这些数据,数据通过公式能推算出来。zip包解压直接使用,在windows系统中使用jmeter.bat启动软件 linux系统中使用jmeter.sh启动 我在windows中使用的没有 linux使用经验。程序在数据量很小的情况下都是没有什么问题的,当程序的数据量起来,并发起来就会出现很多的问题。有两种类型的包Binaries 二进制包可以直接使用,Source源码需要编译使用,我使用的。
2024-09-28 23:39:38
393
原创 mysql数据库中事务锁的机制
所以加过排他锁的数据行在其他事务种是不能修改数据的,也不能通过for update和lock in share mode锁的方式查询数据,但可以直接通过select ...from...查询数据,因为普通查询没有任何锁机制。写锁又称为排他锁,简称X锁,排他锁就是不能与其他所并存,如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁,包括共享锁和排他锁,但是获取排他锁的事务是可以对数据就行读取和修改。排他锁指的是一个事务在一行数据加上排他锁后,其他事务不能再在其上加其他的锁。
2024-09-19 08:19:06
415
原创 事务与锁的关系
1、事务与锁是不同的。事务具有ACID(原子性、一致性、隔离性和持久性),锁是用于解决隔离性的一种机制。2、事务的隔离级别通过锁的机制来实现。另外锁有不同的粒度,同时事务也是有不同的隔离级别的。3、开启事务就自动加锁。
2024-09-09 09:50:56
233
原创 json传参数和表单传参
如果没有添加注解 默认的是Content-Type: application/x-www-form-urlencoded 表单提交 我们也能注意到 当使用@RequestParam注解的时候,使用表单提交参数也是能接收到参数的。当你的controller使用post接收请求的时候 传参一般是 封装类 和封装的对象 需要注解@RequestBody @RequestParam 才能接收到json的参数 不然是接收不到的比如。第一个接口接收到参数 第二个接口接收不到参数。接口都可以接收到参数的,
2024-08-24 18:49:06
402
原创 TransmittableThreadLocal
在接口中使用到用户信息的时候可以在上下文中取出,当前线程使用结束需求清除掉。比如我目前用到定时任务用的@Schedule,他实现的使用的相同的线程,当前一个任务结束用户信息添加了没有删除,下一个任务获取的就是上个任务的用户信息,坑惨了。为了防止提交表单的时候携带的个人信息被篡改,我们经常使用token保存用户的个人信息,每次调用都是传token解析出个人信息,保存在当前的线程中,在哪里使用了我们就在线程中取出,防止提交人和个人信息不一致。拦截每个请求 添加上下文 使用完成就需要清掉。
2024-08-23 17:50:35
257
原创 输出倒闭输入
他师傅对他的教导就是与世无争,很符合一个出家人六根清净得道高僧的样子,然后他就是一个堕落的天使,引诱者一个个有着性格缺陷,内心自私自利的人一步步走入深渊,最后失去生命,他虽然是事件的操纵者,观看者,可是他表现的内心平静展示的与世无争。他的成功是时代的选择,是时代赋予他的成功,就如同互联网行业的一句话,站在风口上猪都能飞。去公园真实的想法就是想看看能不能遇到同频的人,有时间愿意花时间在自己独处,有自己的爱好看看书在公园追追剧,聊聊天,陪伴愿意做相同的事情这样的人也许三观是一致的,这就是自己的内心独白。
2024-08-17 17:10:45
344
原创 程序开发语言
golang 只有大厂在使用,字节 b站等 生态不是完善 没有java各种中间件补充,云原生容器开发等,天花板相比java第一点。java 现有的开发50%-60%是java开发,业务范围很广泛,从业人众多,薪资天花板很高。python 应用在 爬虫 数据分析等领域 (ai) 薪资比较低。
2024-08-04 12:50:06
119
原创 缝缝补补的生活
有志之人立长志无志之人常立志,经常说重新开始,从头来过但是我们的生活从出生就是一直向前的,不管你过的好还是坏,有意义还是没有意义,时间从来没有停止,也不会从头再来,只有缝缝补补的人生。停止输出后也没有积极的输入,再次拾起自己荒废的精神寄托,希望能给自己带来成长和精神寄托,回头让自己有迹可循,积极乐观去生活,生活不止眼前的苟且,还有诗和远方的田野,让工作奠定美好的生活基础,不要为了工作失去了美好的生活。美好继续,分享不停。
2024-07-27 17:45:31
163
原创 数据结构
数据结构有时候能帮我们解决实际的问题。数据结构:线性结构和非线下结构。常见的线性结构有数组、队列、链表、栈非线性结构:二维数组、多维数组、广义表、树结构、图结构。稀疏数组:只记录有标记的位置,其他没有意义的不记录。...
2021-01-27 20:06:10
375
原创 HttpServletRequest趣说
学了很多年的编程了,学的编程语言也不少了,传递参数到现在都没弄明白,自己干啥吃的,极度怀疑自己的智商,今天就来说下HttpSerletRequest,写道这里也没啥说的了。就是实例化这对象,然后把它作为接口的参数传递,然后要注意的是我是些java后端的,不太了解前端是如何传递参数的(自己还是敲过几个jsp,vue的前端项目的)项目经验都喂狗了。自己就在些接口,然后自己测试就使用postman传参,get方式和post方式,get就直接写params对应的对象名,对象值就可以了。后端用HttpSerletRe
2021-01-26 23:42:38
428
原创 get请求和post请求,传递参数
今天简单的说下对get请求和post请求的认识,我记忆中对这个问题有过些了解,今天继续。首先get一般做查询删除操作,post用来添加修改操作。其次get请求是不安全的,因为字段会拼接到URL地址中,而post请求是安全的,放在body中,这里说的安全是相对的。今天的最要问题不是这个。post传递参数的方式有四中,您知道是那四种吗???这个问题我今天被问????了。到现在都没有想通,好像是前端传参的问题,后面解决会更新。...
2021-01-25 23:31:58
2754
原创 江山如此多娇
昨天看了看这部电视据的剪辑,我承认我是被剪辑的爱情片段吸引了,很让我向往这些。今天说下剧情和自己的感悟吧!开始男主的个人的担当让我很喜欢那个开头,就是一个龙书记(去世,积蓄是上交党费)儿子能不是继承遗产,这个钱该不该拿。男主很霸气,然后女主也很刚,这就是一场你势均力敌的战斗呀!然后期待男女主的相遇,果然,男主被贬为村支书,女主被下派扶贫,二人不期而遇。就是这样老套的情节,我被吸引了。其实我就是被二人的情节主线吸引了。看完当中的剧情,我想到了和多。一个村子的贫穷不是村子的人不努力,也不是人懒,是人
2021-01-24 11:38:10
285
1
原创 idea中git的使用
遇到问题就要解决问题,自己做事情欠考虑然后自己一气之下就把自己本地创建的分支全部删除了,当时啥也没想。气愤让自己的大脑停止运转成为了白痴。然后自己commit到本地仓库的代码,付之一炬。前车之鉴,为自己敲响了警钟。整理下git的使用方式。先梳理下如何使用git吧! 今天梳理思路,这周会有实践一步步把吹的牛逼实现在github 或者是码云上创建自己的项目仓库,需要注意的事项,然后得到项目的地址。在自己的idea上能够使用git,一般好像安装完成就能用的,自己还是想说下如何使用,idea上如
2021-01-21 00:08:17
292
原创 mapper中的sql语句
最近总结下如何写sql,在面试的过程中有人到了我,如果你传递了多个参数你如何传递到sql语句中,开始很懵。不知道如何去说,去描述。今天好好的总结写这方面的内容。大致写下目录,细节后续整理。传参 单个参数 多个参数 数组 实体等等返回值区别 实体 map如何批量查询 修改 删除sql的动态查询如何实现一些关键字的使用当你不小心把数据更新了很多,如何解决。未解决。后续会有小故事!!!...
2021-01-19 22:48:31
1326
1
原创 分页查询
说起分页查询我们首先想到的就是真分页和假分页。真分页就是我们想取那一页的数据我们就去数据库中查询那些数据。举例说明我想查询 6-10这几条数据select * from table limit 5,5我们这样就查询到了第6条道第10条 一共5条数据,实际上我用的就是limit的用法,索引的开始值为0在mysql数据库中,你想要从第一条去要从0开始,第6条要从5开始,规律自己去找吧!然后说下假分页,我们就是一次性的把数据库中的所有数据查询出来,然后在内存中分页展示到页面上,有很多的方式,
2021-01-19 22:39:41
853
原创 原理lombok
在使用的时候很多人都使用过lombok,使用的也很简单,把jar包引入,然后在用的实体上添加上注解,这样就使用了,我们不用写get,set方法了,还有tostring。如果就是这样使用了这样为什么会有那些OpenAPI文档,还要很多的文档,还有写规范什么的,很专业很规范,如果是这样简单的使用为什么要这些专业的文档,还是很专业的文档,对我这样英文很差的人很头疼,希望自己经过这些可以很好的应用。待更新:...
2020-11-21 20:06:17
242
1
原创 spring事务传播机制总结
REQUIRED(Spring默认的事务传播类型) Required如果当前没有事务,则自己新建一个事务,如果当前存在事务,则加入这个事务根据场景举栗子,我们在testMain和testB上声明事务,设置传播行为REQUIRED,伪代码如下:@Transactional(propagation = Propagation.REQUIRED)public void testMain(){ A(a1); //调用A入参a1 testB(); //调用testB}..
2020-11-07 10:35:26
364
1
原创 spring事务
1、Spring事务隔离级别Spring事务隔离级别比数据库事务隔离级别多一个default1) DEFAULT (默认) 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别。另外四个与JDBC的隔离级别相对应。2) READ_UNCOMMITTED (读未提交) 这是事务最低的隔离级别,它允许另外一个事务可以看到这个事务未提交的数据。这种隔离级别会产生脏读,不可重复读和幻像读。3) READ_COMMITTED (读已提交)
2020-10-30 11:32:55
233
原创 聊点Netty
netty是什么,有什么用,解决了什么问题,还说和ngix有关系,我是真的看书没有看懂,就去了解下吧!等待更新,还有就是noacs是注册中心,Zookeeper是注册中心,好像还有其他的做用,最后用的时候总结起来所有的知识点还说不错的。等待更新。...
2020-09-20 17:57:56
265
2
原创 数据结构
前面说过一点点的java容器。只些容器是如何实现数据存储的,这就需要对数据结构有了解了。数据结构,就是一种程序设计优化的方法论,研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,目的是加快程序的执行速度、减少内存占用的空间。数据结构是计算机存储、组织数据的方式,是指数据相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率(这就是为什么我们要研究数据结构的原因),数据结构往往同高效的检索算法和索引技术相关。常见的数据结
2020-09-12 20:42:53
232
原创 java多线程
首先我要说的是程序,进程,线程。多线程真对的是多cpu而言,但是单cpu也可以实现,原因就是cpu运行是内存的100倍,cpu运行的很快这时候就能进行时间片轮换线程,让你看起来像是多个线程并行。多线程就会说的有几种实现多线程的方法,可以说两种,也可以说是4种?两种创建一个子类对 Thread继承,然后重写run的方法,调用start方法,实现实现Runnable接口,实现run方法,创建对象,把对象当成参数传入Thread类的构造器中,调用Thread中的start方法。Thread也是对R
2020-09-12 20:38:08
255
1
原创 java集合(容器)
分为list,set,map三类:list常用的实现有arraylist和linkedlist,set常用的有HashSet,map中常用的有HashMap、Hashtable。list和set继承接口collection,同时collection也继承iterable,继承iterable是为了iterator,这是一个迭代器。list集合,代表一个元素是有序的且可以重复,集合中每一个元素都有其对应的顺序索引,允许添加重复元素,可以通过索引来访问指定位置的集合元素。...
2020-09-05 08:33:02
278
原创 软件设计原则的理解和认识
通过实例演变的过程,我们的软件设计要符合设计模式的几个原则1. 开闭原则软件实体(class,模块,功能或业务,微服务etc)对修改关闭,对拓展开放。抽象构建框架,实现拓展细节。面向抽象编程,而不是面向具体实现编程。因为抽象相对来说是稳定的,让类去依赖于固定的抽象,所有对于修改来说就是封闭的,通过OO的继承,多态机制就可以实现对抽象体的拓展,通过重写改变固有的方法或者实现新的拓展方法。2. 依赖倒置原则高层实现不应该直接依赖于低层实现,它们应该依赖于共同的抽象(低层接口)。越基础
2020-08-05 10:46:22
545
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人