学习总结
文章平均质量分 84
玄月九九重又一
这个作者很懒,什么都没留下…
展开
-
《设计模式》——建造者模式
1、介绍1.1背景当一个类的内部数据过于复杂的时候(通常是负责持有数据的类,比如Config、VO、PO、Entity…),要创建的话可能就需要了解这个类的内部结构,还有这些东西是怎么组织装配等一大坨乱七八糟的东西,这个时候就会增加学习成本而且会很混乱,这个时候就想啊想一种什么法子来管理一下这个类中的数据呢,怎么在创建的时候让它按部就班的来,并且代码可读性很好别让我看花了眼啊,我要的东西也能都很好设置进来,这就是Builder模式的应用场景,Builder模式可以将一个类的构建和表示进行分离。1.2适原创 2021-02-21 20:56:05 · 185 阅读 · 0 评论 -
《设计模式》——工厂模式
1、优缺点和应用场景在《简单工厂模式》一节我们介绍了简单工厂模式,提到了简单工厂模式违背了开闭原则,而“工厂方法模式”是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。优点:用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程。灵活性增强,对于新产品的创建,只需多写一个相应的工厂类。典型的解耦框架。高层模块只需要知道产品的抽象类,无须关心其他实现类,满足迪米特法则、依赖倒置原则和里氏替换原则。缺点:类的个数容易过原创 2021-02-07 19:35:48 · 155 阅读 · 0 评论 -
《设计模式》——简单工厂
什么是简单工厂?1、简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,一个抽象的产品类,可以派生出多个具体的产品类,它们都具有共同的父类。我们再来看下简单工厂模式的UML图:2、简单工厂模式的构成工厂类:工厂类是我们的核心类,它负责创建所有实例的内部逻辑,工厂类可以直接被调用创建我们的产品实例。抽象产品类:简单工厂模式所创建的所有对象的父类,它负责描述所有实例所拥有的公原创 2021-01-30 14:01:35 · 255 阅读 · 1 评论 -
《设计模式》——里氏替换原则
1、什么是里氏替换原则Liskov于1987年提出了一个关于继承的原则“Inheritance should ensure that any property proved about supertype objects also holds for subtype objects.”——“继承必须确保父类所拥有的性质在子类中仍然成立。”也就是说,当一个子类的实例应该能够替换任何其父类的实例时,它们之间才具有is-A关系。该原则称为Liskov Substitution Principle——里氏替换原则原创 2021-01-24 11:32:11 · 370 阅读 · 0 评论 -
《设计模式》——迪米特法则
一.什么是迪米特法则迪米特法则又叫做最少知道原则,就是说一个对象应当对其它对象有尽可能少的了解,不要和陌生人说话。强调只和朋友说话,不和陌生人说话。这里的朋友指的是:出现在成员变量,方法输入,输出参数中的类称为成员朋友类,而出现在方法体内部的类不属于朋友类。迪米特法则初衷在于降低类之间的耦合。由于每个类尽量减少对其它类的依赖,因此。很容易使得系统的功能模块独立,相互之间不存在(或很少有)依赖关系。详细可参考:迪米特法则问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影原创 2020-12-29 19:21:57 · 522 阅读 · 0 评论 -
SpringBoot 基础
1、SpringBoot简介Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化Spring 应用项目的搭建以及开发过程。Spring由于各种XML、Annotation繁琐的配置,使开发变得复杂。SpringBoot的出现简化了开发Spring应用的开发步骤,开发一个应用不在需要繁琐的配置。1.1 官网访问地址:https://spring.io/projects/spring-bootSpringBoot 能够帮助我们快速的创建一个独立的、产品级别的Spr原创 2020-12-27 17:00:35 · 688 阅读 · 0 评论 -
docker学习(二)
4. 构建一个镜像构建hello-worlddocker镜像通过Dockerfile构建。创建名称为Dockerfile空白文件,其中录入以下内容:FROM alpine:3.9 cmd ["echo", "hello world"]此文件的意思是,基于alpine:3.9这个微型linux镜像构建,并在每次启动docker镜像的时候执行 "echo"命令输出一个“hello world”在Dockerfile所在文件夹使用以下命令构建:docker build -t glf_hel原创 2020-12-18 17:40:14 · 690 阅读 · 1 评论 -
docker学习(一)
1. Docker是什么VMware可以完整的虚拟整个计算机硬件,让我们在其中安装操作系统,并运行操作系统。JVM虚拟机可以运行Class代码,常见的我们直接运行一个Jar包。Docker与之类似,也是一种虚拟技术,但是不像VMware一样安装整个完整的操作系统那样笨重,也不像JVM那样只能运行class代码。Docker是应用级别的虚拟,可以将已有的软件打包运行在其中,更加轻便加灵活。Docker被称作应用容器引擎,特点是在应用级别的虚拟——容器化!因为docker是借助于linux下的一些原创 2020-12-13 20:20:10 · 559 阅读 · 0 评论 -
RabbitMq简介及使用
1.Message Queue(MQ)消息队列Message Queue是一种跨进程的通信机制,用于在系统之间进行传递消息。MQ作为消息中间件,可以进行异步处理请求,从而减少请求响应时间和解耦。2.消息队列的使用场景应用解耦:多应用间通过消息队列对同一消息进行处理,避免调用接口失败导致整个过程失败;系统间消息传递通过MQ进行解耦,“消息队列”是在消息的传输过程中保存消息的容器异步处理:应用间并发处理消息,相比串行处理,减少处理时间;比如用户为了使用某个应用,进行注册,系统需要发送注原创 2020-12-06 17:24:00 · 556 阅读 · 0 评论 -
Jwt简介
1、为什么使用JWT基于Session的认证基于Session的认证应该是最常用的一种认证机制了。用户登录认证成功后,将用户相关数据存储到Session中,单体应用架构中,默认Session会存储在应用服务器中,并且将Session ID返回到客户端,存储在浏览器的Cookie中。但是在分布式架构下,Session存放于某个具体的应用服务器中自然就无法满足使用了,简单的可以通过Session复制或者Session粘滞的方案来解决。Session复制依赖于应用服务器,需要应用服务器有Ses原创 2020-11-28 15:57:01 · 337 阅读 · 0 评论 -
mybaitsPlus使用简介教程
MyBatis-Plus简介Mybatis-Plus是一-款MyBatis的增强工具包 ,简化CRUD操作。启动加载XML配置时注入单表SQL操作,为简化开发工作、提高生产率而生。Mybatis- Plus启动注入非拦截实现、性能更优,让你专注业务快速敏捷开发。文档http://mp.baomidou.comhttp://mybatis,plushttps://gitee.com/baomidou/mybatis-plushtpst:/i/ee.com/baomidou/mybatis-plus原创 2020-11-22 19:12:57 · 852 阅读 · 0 评论 -
蜗牛学院二期培训第一周总结(基础篇)
常用配置项配置项默认值说明debug false开启调试server.port8080配置端口号server.servlet.context-path/上下文路径spring.mvc.date-format输入参数的日期格式spring.jackson.date-formatJSON响应的日期格式spring.jackson.time-zone响应JSON日期的时区spring.thymeleaf.cachetr原创 2020-11-15 20:48:38 · 225 阅读 · 0 评论 -
vue基础练习
见githunb项目:https://github.com/WtengHa/vueProject原创 2020-11-08 13:26:53 · 212 阅读 · 0 评论 -
《玩转Spring全家桶》第114-123节
第114节认识Spring Cloud Stream第115节通过Spring Cloud Stream访问RabbitMQ第116节通过Spring Cloud Stream访问Kafka第117节 本章Spring Cloud Strean小结原创 2020-10-29 17:54:10 · 113 阅读 · 0 评论 -
《玩转Spring全家桶》第107节-113节
第107-108节基于GIT的配置中心第109节基于zookeeper的配置中心原创 2020-10-22 17:48:19 · 173 阅读 · 1 评论 -
《玩转Spring全家桶》第100-106节
第100-101节使用Hystrix实现服务熔断第102节 如何观察服务熔断第103节使用Resilience4j实现服务熔断第104-105节使用Resilience4js实现服务限流原创 2020-10-15 15:26:20 · 122 阅读 · 0 评论 -
《玩转Spring全家桶》第93-99节
第93节 使用Feign服务第94节深入理解服务发现背后的DiscoveryClient第95节使用Zookeeper作为服务注册中心第96节使用Consul作为服务注册中心原创 2020-10-10 21:26:39 · 135 阅读 · 0 评论 -
《玩转Spring全家桶》第86-92节
第86节简单理解微服务微服务就是一些协同工作的小而自治的微服务。——Sam Newman微服务的优点:异构性:语言、存储等。。。弹性:一个组件不可用,不会导致级联故障扩展:单体服务不易扩展,多个较小的服务可以按需扩展微服务的优点:易于部署与组织结构对齐克组合性可替代性实施微服务的代价没有银弹!!!分布式系统的复杂性开发、测试等诸多研发过程中的复杂性部署、监控等诸多运维复杂性。。。。。。第87节如何理解云原生(cloud native)云原生技术有利于各组织在公有原创 2020-09-30 15:28:34 · 104 阅读 · 0 评论 -
《玩转Spring全家桶》78-85节
第78节 通过Spring Boot Admin了解程序的运行状态Spring Boot Admin:目的为Spring Boot应用程序提供一套管理界面主要功能集中展示应用程序Actuator相关的内容变更通知快速上手de.codecentric:spring-boot-admin-starter-server:2.1.3@EnableAdminServer客户端:de. codecentric: spring-boot-admin-starter-server:2.1.3配置服原创 2020-09-26 21:52:08 · 172 阅读 · 0 评论 -
《玩转Spring全家桶》第70-77节
第70节 如何在低版本Spring中快速实现类似自动配置的功能第71节 了解starter依赖以及其实现原理第72节 定义自己的starter-dependendy主要内容:autoconfigure模块,包括自动配置代码starter模块,包含指向自动配置模块的依赖以及其他工作依赖命名方式xxx-spring-boot-autoconfigurexxx-spring-boot-starter一些注意事项不要使用spring-boot作为依赖的前缀不要使用spring-b原创 2020-09-18 20:42:28 · 181 阅读 · 0 评论 -
《玩转Spring全家桶》第63-69节
第63节分布式环境中如何解决session的问题常见的会话解决方案:粘性会话 Sticky Session会话复制 Session Replication集中会话 Centralized SessionSpring提供了组件帮助实现集中会话Spring Session简化集群中的用户会话管理无需绑定容器特定解决方案支持的存储RedisMongoDBJDBCHazelcastSpring Session实现原理——定制HttpSession通过定制的HttpservletReq原创 2020-09-11 17:11:39 · 156 阅读 · 0 评论 -
《玩转Spring全家桶》第55-62节
第55节 简单定制RestTemplateRestTemplate支持的HTTP库通用接口:ClientHttpRequestFactory默认实现SimpleClientHttpRequestFactoryApache HttpComponentsHttpComponentsClientHttpRequestFactoryNettyNetty4ClientHttpRequestFactoryOkHttpOkHttp3ClientHttpRequestFactory第56节通过原创 2020-09-04 22:49:50 · 181 阅读 · 0 评论 -
《玩转Spring全家桶》第48-54节
第48节静态资源缓存Spring Boot中的静态资源配置核心逻辑:WebMvcConfigurer.addResourceHandlers()常用配置spring.mvc.static-path-pattern=/**spring.resource.static-locations=class:/META-INF/resources/,classpath:/resources,classpath:/static/,classpath:/public/第49节 SpringMVC的异常原创 2020-08-30 09:56:21 · 188 阅读 · 0 评论 -
《玩转Spring全家桶》第39-47节
第39节 认识Spring MVC ControllerDispatcherServlet核心组成:ControllerxxxResolverViewResolverHandlerExceptionResolverMultipartResolverHandlerMappingSpringMVC常用的注解@Controller@RESTController@RequestMapping@GetMapping /@PostMapping@PutMapping / @DeleteMap原创 2020-08-22 23:06:16 · 156 阅读 · 0 评论 -
《玩转Spring全家桶》总结第31-38节
第31-32节:Project Reactor介绍Project Reactor学习(1)–核心接口简介Reactor项目核心为reactor-core,一个基于Java8的响应式流标准实现,实现了reactive streams标准。reactive streams标准核心接口有四个:PublisherSubscriberSubscriptionProcessor<T,R>其中最重要的接口为Publisher,代表了一个响应式的流。Publisher核心实现为Flux原创 2020-08-14 20:10:35 · 199 阅读 · 0 评论 -
《玩转Spring全家桶》总结——22-30节
第22节:让Mybatis好用的工具之Mybatis PageHelper支持多种数据库支持多种分页方式需要引入依赖:<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>latest version</version></dependency原创 2020-08-09 15:26:09 · 365 阅读 · 0 评论 -
《玩转SpringBoot全家桶》总结——第15-21节
第十五节:认识SpringData JPAJPA(Java Persistence API),为对象关系映射提供了一种基于POJO的持久化模型。a. 简化数据持久化代码的开发工作b. 为Java社区屏蔽不同持久化API的差异。第十六节:定义JPA的实体对象常用JPA注解实体:@Entity,@MappedSuperclass@Table(name)主键:@Id@GeneratedValue(strategy, generator)SequenceGenerator(nam转载 2020-07-31 20:47:21 · 178 阅读 · 0 评论 -
分布式事务详解(看完不懂我当场认做你哥)
分布式事务1 基础概念1.1 什么是事务什么是事务?举个生活中的例子:你去小卖铺买东西,“一手交钱,一手交货”就是一个事务的例子,交钱和交货必 须全部成功,事务才算成功,任一个活动失败,事务将撤销所有已成功的活动。 明白上述例子,再来看事务的定义:事务可以看做是一次大的活动,它由不同的小活动组成,这些活动要么全部成功,要么全部失败。1.2 本地事务在计算机系统中,更多的是通过关系型数据库来控制事务,这是利用数据库本身的事务特性来实现的,因此叫数据 库事务,由于应用主要靠关系数据库来控制事务,而数原创 2020-07-31 17:03:35 · 5178 阅读 · 1 评论 -
《玩转SpringBoot全家桶》总结——第8-14节
第八节:好用的连接池——Alibaba Druid通常在建立数据库连接的时候回耗费资源,而一个数据库能够同时建立连接的连接数是有限的,而在大型项目中,通常会有大量的数据库请求,如果Web应用为每一个请求都分配一个数据库连接,那么将导致性能的急剧下降。数据库连接池的意义在于,能够重复利用数据库连接(有点类似线程池的部分意义),提高对请求的响应时间和服务器的性能。连接池中提前预先建立了多个数据库连接对象,然后将连接对象保存到连接池中,当客户请求到来时,直接从池中取出一个连接对象为客户服务,当请求完成之后,原创 2020-07-26 12:07:25 · 235 阅读 · 0 评论 -
玩转Spring全家桶》1-7节总结
《玩转Spring全家桶》1-7节总结本周主要工作第一二节第三节第四节第五节:如何配置单数据源第六节:多数据源配置第七节:好用的连接池——HikariCP本周主要工作本周主要是初始Spring,了解SpringBoot家族的主要成员,同时了解Spring的技术趋势,并开始学习编写Spring程序。第一二节Spring的历史:诞生于2020年,成型于2003年。后快速发展并产生了各个主要成员。家族成员:常用的有Spring Framework,Spring Data,Spring Boot,Spri原创 2020-07-19 22:53:50 · 267 阅读 · 0 评论