![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 77
£小羽毛
一点寒芒先到,随后枪出如龙
展开
-
java日志
m:输出代码中指定的消息%p:输出优先级%r:输出应⽤启动到输出该⽇志信息时花费的毫秒数%c:输出所在类的全名%t:输出该⽇志所在的线程名%n:输出⼀个回⻋换⾏符%d:输出⽇志的时间点%l:输出⽇志的发⽣位置,包括类名、线程名、⽅法名、代码⾏数。原创 2023-03-07 21:31:57 · 886 阅读 · 0 评论 -
BIO、NIO
Netty是异步的(指定回调处理)、基于事件驱动的网络应用框架,用于快速开发高性能、高可靠性的网络IO程序。Netty本质是一个NIO框架,适用于服务器通讯相关的多种应用场景,分布式节点远程调用中Netty往往作为RPC框架使用,如Dubbo层级结构NettyNIO(io、网络)jdk原生io编程和网络编程最底层是tcp+ip。原创 2023-02-15 22:51:21 · 403 阅读 · 0 评论 -
WindowBuilder、SWT、jface
GUI(Graphical User Interface,简称GUI,图形用户界面)是指采用图形方式显示的计算机操作用户界面,与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。AWT:1.包含了很多类和接口2.元素:窗口、核心类:组件Component可以直接用的基本组件:button、TextArea、Label容器:有窗口Window【分为Frame和Dialog】和面板Panel【Applet】基本组件存放在容器中,用add操作。原创 2023-02-14 22:56:30 · 1399 阅读 · 1 评论 -
2022-03-28 西安 mybatis(1)搭建mybatis环境,原生SqlSession操作数据库
resultMap:设置自定义的映射关系,数据库中的字段名和java实体类的属性名不一致的时候用resultMap。3) mybatis 可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO映射成 数据库中的记录。mybatis起初是apache的开源项目iBatis,3版本之前都用iBatis,是一个基于Java的持久层框架。我的mysql用的8哦。在test目录下创建测试类,因为junit的测试范围是test目录下的程序。增删改的返回值是int,受影响的函数。原创 2022-03-28 08:48:56 · 908 阅读 · 0 评论 -
22-12-19 西安 vue-cli vue-cli脚手架、组件化编程、插槽、vue-router路由、Vuex共享数据
路由route是一组key-value的对应关系;多个路由需要经过路由器的管理对应在vue中就是路径与组件的映射成为路由路由器router时时刻刻检测路径变化。原创 2022-12-20 10:01:56 · 654 阅读 · 1 评论 -
2022-11-14 西安 activiti工作流(01)
使用activiti流程建模工具(activity-designer)定义业务流程(.bpmn文件)。.bpmn文件就是业务流程定义文件,通过xml定义业务流程。定义流程,按照BPMN的规范,使用流程定义工具,用流程符号把整个流程描述出来在idea中,为整个流程起一个id和名字。为每一个任务指定负责人给别人看流程的时候,要导出为png图片(截图也可以)原创 2022-11-25 21:08:08 · 777 阅读 · 0 评论 -
22-10-14 西安 spring循环依赖
1,Spring创建 bean主要分为两个步骤,创建原始bean对象,接着去填充对象属性和初始化。2,每次创建 bean之前,我们都会从缓存中查下有没有该bean,因为是单例,只能有一个。3,当创建 A的原始对象后,并把它放到三级缓存中,接下来就该填充对象属性了,这时候发现依赖了B,接着就又去创建B,同样的流程,创建完B填充属性时又发现它依赖了A又是同样的流程,不同的是:这时候可以在三级缓存中查到刚放进去的原始对象A。原创 2022-10-16 22:37:45 · 406 阅读 · 3 评论 -
22-10-06 西安 谷粒商城(08)项目打包、jenkins自动部署
程序员只需要关心写代码即可,剩下的代码编译 测试 打包 生成制品(将生成不同版本的包保存到仓库中) 将jar包和他需要的环境一起打包成docker镜像保存到镜像仓库 需要部署的服务器拉取镜像 部署运行 运行失败生成警报发送给程序员。使用6的制品 根据Dockerfile 构建镜像(要执行的jar包 和依赖的镜像 和其他的环境参数)如果还有插件安装失败,可以访问下面的地址 手动下载,按照上面的步骤下载插件上传到jenkins容器。找个目录,把我们的jar包使用xftp拖过去,进入该目录后。原创 2022-10-06 22:12:10 · 1321 阅读 · 0 评论 -
2202-04-04 西安 mybatis(3) resultMap 和 动态sql
动态sql是为了拼关键字或者说是条件。mapper接口中定义一个多条件查询//多条件查询List <Emp> getEmpByCondition(Emp emp);在mapper映射文件中怎么写嘞方式一:<if test="">这时候就必须要加恒成立条件1=1了。。因为要是所有条件都不成立,那么就会多出来where关键字。<!-- List <Emp> getEmpByCondition(Emp emp);--><s原创 2022-04-04 18:23:20 · 1337 阅读 · 0 评论 -
22-06-21 西安 ssm-springmvc(04)拦截器、异常处理器、注解配置SpringMVC组件、sprigmvc执行流程
拦截器:作用在控制器方法执行前后,过滤器是在浏览器与服务器之间 SpringMVC中的拦截器需要实现HandlerInterceptor接口springMVC.xml 配置拦截器要想拦截器起效,需要在SpringMVC的配置文件“springMVC.xml”中进行配置配置方式1: 把某一个类设置为拦截器拦截器会拦截DispatcherServlet所处理的所有请求,不管是不是多层目录都拦截配置方式2:引用某一个bean配置方式3:自定义需要拦截和拦截排除的请求这.........原创 2022-06-21 20:09:55 · 441 阅读 · 0 评论 -
22-09-29 西安 谷粒商城(07)定时任务、SpringTask异步任务、xxl-job
1.jdk自带的 timer(功能简单)2.springTask提供的定时任务3.quartz:经典的定时任务框架,但是配置繁琐且不能动态配置4.xxl-job:分布式定时任务框架,基于quartz改进的可以动态配置。原创 2022-09-29 20:43:30 · 926 阅读 · 0 评论 -
22-09-25 西安 谷粒商城(06)单点登录SSO、JWT实现无状态登录、购物车
网关过滤器分为 全局过滤器和局部过滤器,本次使用的是自定义局部过滤器,验证登录状态。理由如下:很多接口都需要用户登录以后才能访问,比如“加入购物车”,所以选择在网关服务做登录校验如下,只是雏形。。在apply方法中还有一大堆业务代码没写呢。也可以看成是一个模板,没啥可变性。。。@Component/*** 一定要重写构造方法* 告诉父类,这里使用PathConfig对象接收配置内容*/}@Override//获取请求路径。原创 2022-09-29 09:28:59 · 653 阅读 · 0 评论 -
22-09-23 西安 谷粒商城(05)CompletableFuture异步编排、nginx实现页面静态化
java8提供了基于FutureTask+Callable封装的一个类:CompletableFuture,可以直接执行异步任务并获取任务的结果,同时还可以将多个有任务前后依赖关系的任务使用队列按顺序执行CompletableFuture 实现了Future接口,可以获取任务执行的结果 或者任务执行的状态CompletableFuture 实现了 CompletionStage接口,可以对多个任务进行编排,控制任务按什么顺序执行1、初始化执行异步任务CompletableFuture 提供了四个原创 2022-09-23 22:46:08 · 1045 阅读 · 0 评论 -
22-09-20 西安 谷粒商城(04)Redisson做分布式锁、布隆过滤器、AOP赋能、自定义注解做缓存管理、秒杀测试
/ 自定义注解需要管理的参数:缓存的key、锁的名称(击穿)、缓存过期时间、随机过期时间(雪崩)//单位秒//单位秒}此时我们就可以这么使用了,把我们上面那个那么长的方法简化到极致@Override//远程服务调用查询2/3级分类}缓存管理就被我们抽取了,真牛逼啊!但是我们还得通过aop赋能,通过切面给注解添加功能。原创 2022-09-20 21:30:02 · 929 阅读 · 0 评论 -
22-06-17 西安 ssm-springmvc(01) SpringMVC环境搭建及入门案例、@RequestMapping、2种暗黑风格、获取请求参数
SpringMVCSpringMVC是Spring的一个后续产品,是Spring的一个子项目。SpringMVC 是 Spring 为表述层开发提供的一整套完备的解决方案,(表述层=页面+控制层)原创 2022-06-17 20:46:14 · 181 阅读 · 0 评论 -
22-09-19 西安 谷粒商城(03)使用redis实现分布式锁、ab并发测试、LUA脚本、看门狗自动续期
分布式锁key需要设置过期时间 解决死锁问题;uuid作为值,解决误删除;LUA脚本将多个redis的操作+逻辑判断写成一个脚本交给redis一次性执行看门狗机制:通过额外的线程在过期时间的2/3时重新设置键的过期时间原创 2022-09-19 20:07:23 · 932 阅读 · 0 评论 -
22-09-06 西安 谷粒商城(02)浏览器跨域问题、阿里云oss图片上传、SEO搜索引擎优化、Mybatis分步查询
跨域是浏览器的同源策略,浏览器为了保证页面中发起的异步请求安全;文件上传最佳实践:oss参数保存在后端服务器前端js上传文件之前先访问后端接口获取临时授权原创 2022-09-18 19:09:57 · 887 阅读 · 0 评论 -
22-09-04 西安 谷粒商城(01)MySQL主从复制、MyCat读写分离、MyCat分库分表
通过MyCat和MySQL的主从复制配合搭建数据库的读写分离,实现MySQL的高可用性。数据分片是指通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。原创 2022-09-05 18:30:22 · 916 阅读 · 0 评论 -
22-06-27 西安 redis(01) 安装redis、redis数据类型、redis常问面试题
Java技术的发展路线1、解决功能性的问题。2、解决扩展性的问题。(耦合度低,扩展性更强),框架就出现了,尽量减少重复代码。3、解决性能的问题。无法承受高并发访问互联网发展所面临的问题web1.0 单向提供信息。比如新闻网,网络数据量很小 web2.0 双向提供信息,网站的用户也会为网站提供信息,如评论,点赞,转发解决问题的思路:1.解决CPU和内存压力问题 搭建服务器的集群2. 解决磁盘IO压力问题mysql数据存在硬盘,数据量大的话,会持续磁盘io。怎么降低磁盘io?NoSQL原创 2022-06-27 21:27:27 · 384 阅读 · 0 评论 -
22-09-02 西安 JVM 类加载器、栈、堆体系、堆参数调优、GC垃圾判定、垃圾回收算法、对象的finalize机制
方法区:存储已被虚拟机加载的类元数据信息(元空间)堆:存放对象实例,几乎所有的对象实例都在这里分配内存虚拟机栈(java栈):虚拟机栈描述的是Java方法执行的内存模型:每个方法被执行的时候都会同时创建一个栈帧(Stack Frame)用于存储局部变量表、操作栈、动态链接、方法出口等信息原创 2022-09-02 21:31:21 · 367 阅读 · 0 评论 -
22-09-01 西安 JUC(04)java内存模型JMM、volatile关键字、原子性类、CAS比较并交换、AQS锁原理
volatile 保证此变量对所有的线程的可见性和禁止指令重排序优化CAS是解决多线程并发安全问题的一种乐观锁算法ABA问题: 数据修改后又被改回来 无法判断数据之前是否被修改过juc下面Lock的实现以及一些并发工具类就是通过AQS来实现的原创 2022-09-01 20:34:13 · 253 阅读 · 0 评论 -
22-08-30 西安JUC(03) Callable接口、BlockingQueue阻塞队列、ThreadPool线程池
使用Callable创建的子线程需要借助FutureTask对象来执行它的call方法阻塞队列:添加元素 获取元素 移除元素的方法有4套原创 2022-08-30 23:09:07 · 365 阅读 · 1 评论 -
22-08-29 西安 JUC(02)线程安全集合类、 juc强大的辅助类
线程不安全使用ArrayList,线程安全使用synchronizedList线程不安全使用HashMap,线程安全 使用ConcurrentHashMap原创 2022-08-29 19:57:02 · 224 阅读 · 0 评论 -
22-08-27 西安 JUC(01)synchronized、Lock锁、ThreadLocal、LockSupport、死锁问题排查
同步成员方法,锁的是调用方法的对象。同步静态方法,锁的是类模板对象,即当前类的Class对象。同步方法块,锁的是小括号里的对象ReentrantLock特点:可重入的、可公平可不公平,可响应中断的,悲观的排他的锁,需要手动控制锁的添加、释放。使用灵活 代码层面的锁..............................原创 2022-08-28 10:31:48 · 388 阅读 · 0 评论 -
22-08-26 西安 MySQL高级(04)索引失效、关联查询优化、排序分组优化、千万级数据分页的优化、Innodb的行锁
最佳左前缀法则:指的是查询从索引的最左前列开始并且不跳过索引中的列。永远是选择小表驱动大表(小表作为驱动表)InnoDB的行锁,是通过锁住索引来实现的,如果加锁查询的时候没有使用到索引,会将整个聚簇索引都锁住,相当于锁表了。.........原创 2022-08-27 14:01:38 · 990 阅读 · 0 评论 -
22-08-25 MySQL高级(03)MySQL索引、索引演绎、适合加索引的情况、执行计划Explain各字段解释
虽然索引大大提高了查询速度,同时却会降低更新表的速度,因为需要维护索引原创 2022-08-25 21:31:02 · 365 阅读 · 0 评论 -
22-08-23 西安 MySQL高级(02)SQL查询模板与机读顺序、SQL7式、函数与存储过程
有返回值 的mysql方法,就是函数;无返回值 的mysql方法,就是存储过程;索引是“排好序的快速查找B+树数据结构”原创 2022-08-23 20:38:30 · 456 阅读 · 4 评论 -
22-08-22 西安 MySQL高级(01)MySQL逻辑架构、InnoDB存储引擎、SQL执行流程、javaSE面试题
mysql插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。让我们可以根据业务的需求和实际需要选择合适的存储引擎。原创 2022-08-22 21:57:24 · 316 阅读 · 0 评论 -
22-08-18 西安 尚医通(07)挂号流程、就医提醒,预约统计、rabbitmq的使用、定时任务、Echarts
mq在这里充当了异步调用的作用,可以提高下单的响应速度原创 2022-08-19 23:15:51 · 1630 阅读 · 0 评论 -
22-08-13 西安 尚医通(06)生成微信二维码、java实现微信扫码登录、阿里云存储图片
和微信端对接,忙完后微信端会给你3个参数微信端扫描二维码,点击允许,就会调用redirect_uri接口,并且会返回code临时票据原创 2022-08-14 21:23:15 · 322 阅读 · 0 评论 -
22-08-08 西安 尚医通(04)MongoDB命令、MongoTemplate、MongoRepository
在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。索引通常能够极大的提高查询的效率,索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构。接口,非常方便的实现了增删改查。BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和。........原创 2022-08-08 21:14:55 · 1059 阅读 · 0 评论 -
22-08-06 西安 尚医通(03)EasyExcel; Spring Cache 、Redis做缓存
EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。...........................原创 2022-08-07 10:41:00 · 575 阅读 · 0 评论 -
22-08-02 西安 尚医通(02)Vscode、ES6、nodejs、npm、Bable转码器、js模块化、webpack
11、let声明变量 作用域+重复定义2、const常量 只读+初始化3、解构赋值 数组或对象中的值拆出来,赋值给变量4、模板字符串1、可以当做普通字符串来用2、多行字符串3、在字符串中嵌入变量和表达式。以前是用+拼接4、调用函数5、声明对象简写6、定义方法简写7、对象扩展运算符8、箭头函数。.............................................原创 2022-08-02 19:58:15 · 468 阅读 · 2 评论 -
22-08-01 西安 尚医通(01)跨域配置、Swagger2、R类、统一异常处理和自定义异常、Logback日志
让异常结果也显示为统一的返回结果对象,并且统一处理系统的异常信息,那么需要统一异常处理器1.不使用统一的异常处理器之前,看看效果2.使用统一的异常处理器之后的返回值如下全局的异常处理器定义如下@Slf4j和log.error不是必须得,可以没有,这俩货就是为了记录日志的。@Slf4j//ex表示当前请求处理中出现的异常对象}}自定义异常YyghException@Data}在GlobalExceptionHandler中加入以下特定的自定义的异常自定义异常的使用try{...............原创 2022-08-01 18:53:03 · 378 阅读 · 0 评论 -
22-07-30 西安 MybatisPlus
让自己变得稀缺的最好的办法就是让自己拥有的能力,这种把多种能力结合在一起,并且为同一个目标服务,就会发挥巨大的价值。--------《认知红利》原创 2022-07-31 09:51:46 · 765 阅读 · 0 评论 -
22-07-29 西安 分布式事务、2PC、TCC、事务消息、Seata
Seata全称SimpleExtensibleAutonomousTArchitecture,简单可扩展自治事务框架。Seata是阿里开源的一个分布式事务框架,能够让大家在操作分布式事务时,像操作本地事务一样简单。一个注解搞定分布式事务。Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata将为用户提供了AT、TCC、SAGA、XA事务模式,为用户打造一站式的分布式解决方案。Seata中有两种分布式事务实现方案,AT及TCCAT模式。............原创 2022-07-29 19:29:39 · 341 阅读 · 0 评论 -
22-07-27 西安 Elasticsearch(02)Spring Data Elasticsearch
SpringData的另一个强大功能,是根据方法名称自动实现功能。比如你的方法名叫做findByTitle,那么它就知道你是根据title查询,然后自动帮你完成,无需写实现类测试类中测试方法@Test//查询全部,并按照价格降序排序Iterableitems=itemDao.findByTitle("手机");}首先,要知道索引库中所有的文档如下运行后控制台打印如下效果他不就有了吗但是方法名称要符合一定的约定KeywordSample(方法命名。...原创 2022-07-28 11:11:29 · 566 阅读 · 0 评论 -
22-07-26 西安 ElasticSearch(01)
Elaticsearch,简称为es,可以看成一个数据库,可以存储数据搜索数据es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据,1PB=1024TBes也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能但是它的目的是通过简单的RESTfulAPI来隐藏Lucene的复杂性,从而让全文搜索变得简单。............原创 2022-07-26 21:00:36 · 660 阅读 · 0 评论 -
22-07-25 西安 Docker 镜像命令、容器命令、Dockerfile、私有仓库、阿里云镜像仓库
Docker是一个开源的应用容器引擎,基于Go语言开发Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的app),更重要的是容器性能开销极低Docker的主要目标是“”,“一次封装,到处运行”即只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。Docker的好处一致的运行环境Docker镜像。........................原创 2022-07-25 18:58:26 · 672 阅读 · 1 评论 -
22-07-24 SpringCloud(04) Sentinel、流控模式与流控效果、降级熔断策略、热点key限流
也被称为分布式系统的随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel以流量为切入点,熊流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性【流量就是客户端请求】不依赖任何框架/库,能够运行于所有Java运行时环境,同时对Dubbo/SpringCloud等框架也有较好的支持。基于SpringBoot开发,打包后可以直接运行,不需要额外的Tomcat等应用容器。........................原创 2022-07-24 18:22:21 · 289 阅读 · 0 评论