自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 23种设计模式--行为型模式

23种设计模式-行为型模式文章目录23种设计模式-行为型模式模板模式命令模式访问者模式迭代器模式观察者模式中介者模式备忘录模式解释器模式状态模式策略模式职责链模式模板模式基本介绍:模板方法模式,又叫做模板模式,在一个抽象类中公开定义它的方法模板。它的子类可以按需重写方法实现。但调用将以抽象类中的定义的方式进行简单来说,模板方法模式定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以定义该算法的某些特定步骤属于行为模式钩子方法:在模板方法模式

2021-06-01 20:54:35 648

原创 23种设计模式--结构型设计模式

结构型设计模式文章目录结构型设计模式建造者模式:适配器模式**类适配器:****对象适配器:****接口适配器模式(缺省适配器):**桥接模式:装饰者模式组合模式外观模式享元模式代理模式**静态代理:****动态代理:**建造者模式:基本介绍:建造者模式又叫做生成器模式,是一种对象构建模式。它可以将复杂对象的创建过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构建出不同表现(属性)的对象建造者模式是一步一步创建一个复杂的对象,它允许用户只指定复杂对象的类型和内容就创建它们,用户不需要知

2021-05-21 16:56:52 1149

原创 23种设计模式--创建型设计模式

创建型设计模式文章目录创建型设计模式单例模式:饿汉式懒汉式(线程不安全)懒汉式(线程安全,同步方法)双重检查(推荐)静态内部类实现(推荐)使用枚举实现(推荐)注意事项和细节简单工厂模式(静态工厂模式)工厂方法模式抽象工厂模式:原型模式:单例模式:单例模式介绍:所谓的单例设计模式就是采取一定的方法保证在整个软件系统中,对某个类只能纯在一个对象实例,并且该类只提供一个取得对象实例的方法(静态方法)饿汉式步骤:构造器私有化类的内部创建对象向外暴露一个静态的公共方法代码

2021-05-21 16:41:28 171

原创 23种设计模式--设计模式的目的,原则

文章目录设计模式的目的设计模式七大原则UML设计模式类型设计模式的目的编写代码的过程中,程序员面临着来自耦合性,内聚性以及可维护性,可拓展性,重用性,灵活性等多方面的挑战设计模式七大原则单一职责原则基本介绍:对类来说就是一个类应该只负责一项职责注意事项:降低类的复杂度,一个类只负责一项职责提升类的可读性,可维护性降低变更引起的风险通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级别违反单一职责原则:只有类中方法数量足够少,可以在方法级别保持单一职责原则接口

2021-05-21 16:31:53 122

原创 Netty---核心组件的深度解析

Netty核心组件的深度解析文章目录Netty核心组件的深度解析Netty入站和出站机制TCP粘包和拆包基本介绍解决方案Netty接收请求过程Pipeline调用handlerNetty心跳服务NioEventLoop剖析任务加入异步线程池Netty入站和出站机制基本思想:入站操作主要是指读取数据的操作;而出站操作主要是指写入数据的操作入站会从先读取,再执行入站的Handler;出站会先执行出站的Handler,再写入其中Decoder是ChannelInboundHandlerAda

2021-04-24 16:45:25 160

原创 Netty---线程模型,核心组件和编解码

Netty—线程模型,核心组件和编解码文章目录Netty---线程模型,核心组件和编解码优点线程模型核心模块组件Netty练习:群聊功能的实现Netty心跳检测机制WebSocket长连接编码和解码基本介绍netty提供的编码器netty提供的解码器问题:无法跨语言ProtoBuf:优点设计优雅,适用于各种传输类型的统一API阻塞和非阻塞Socket,基于灵活大且可扩展的实际爱你模型,可以清晰地分离关注点;高度可定制地线程模型,但线程,一个或多个线程池使用方便,详细记录地javadoc高性能,吞

2021-04-24 16:38:18 84

原创 Netty学习---基本介绍和IO模型

Netty学习–基本介绍和IO模型文章目录Netty学习--基本介绍和IO模型介绍和应用场景介绍:应用场景:I/O模型BIO模型示例NIO模型NIO和BIO的区别Buffer的使用三大核心的关系缓冲区(Buffer)buffer的四个属性**注意事项:**通道(Channel):选择器(Selector):零拷贝原理mmap优化:sendFile优化:介绍和应用场景介绍:netty是由JBOSS提供的一个Java开源框架,现为github上的独立项目。netty是一个异步的,基于事件驱动的网络应

2021-04-24 16:30:39 126

原创 springboot整合druid

springboot整合druiddruid是什么:Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。druid参数配置缺省值说明name配置这个属性的意义在于没如果存在多个数据源,监控的时候可以通过名字来区分开来。如果没有配置,将会生成一个名字,格式是"DataSource-"+System.i

2021-04-10 18:30:09 120

原创 POI和EasyExcel

POI和EasyExcel常用信息将用户导出为excel表格将excel表中的数据录入到网站数据库Apache POIApache POI [1] 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对[Microsoft Office](https://baike.baidu.com/item/Microsoft Office)格式档案读和写的功能基本功能HSSF - 提供读写[Microsoft Excel](https://b

2021-04-10 18:28:28 118

原创 Shiro安全框架

Spring Securityspringsecurity是针对spring安全框架,也是spring boot底层安全默认的技术选型,它可以实现强大的web安全控制,对于安全控制,我们仅需要导入spring-boot-starter-security模块,进行少量的配置,即可实现强大的安全管理。需要记住的类WebSecurityConfigAdapter:自定义security策略AuthenticationManagerBuilder:自定义认证策略@EnableWebSecurity:开启

2021-04-10 18:27:03 84

原创 Redis学习

Redis学习文章目录Redis学习nosql概述为什么要用nosql?一般网站的瓶颈Memcache+mysql+垂直拆分(读写分离)分库分表+水平拆分+mysql集群什么是nosqlnosql特点3V+3高(了解):阿里第五代网站架构使命NoSQL的四大分类Redis入门概述基础知识五大数据类型Redis-KeyString(字符串)xxList列表Set(集合)Hash(哈希)Zset(有序集合)三种特殊类型geospatial(地理位置)HyperloglogBitmapRedis基本的事务操作J

2021-04-10 18:25:28 281 1

原创 MySql高级

MySql高级性能下降SQL执行时间长查询语句写的不好索引失效单值复合关联查询太多join服务器调优及各个参数设置(缓冲,线程池)七种JOIN理论索引简介官方对索引的定义是:索引是帮助mysql高级获取数据得到数据结构---->索引的本质是数据结构简单理解为“排好序的快速查找数据结构”在数据之外,数据库还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这样的数据结构上实现高级查找算法。这种数据结构就是索引(B+Tree)l一

2021-04-10 18:23:31 73

原创 Docker学习

Docker学习文章目录Docker学习Docker安装底层原理docker是怎么工作的docker为什么比虚拟机快Docker的常用命令帮助命令镜像命令容器命令常用的其他命令Docker镜像容器数据卷DockerfileDocker网络练习:部署Redis集群DevOps(开发运维)应用更加快速的交付和部署传统:一堆帮助文档,安装程序docker:打包镜像发布测试,一键运行更加便捷的升级和扩缩容使用docker之后,我们部署应用就和搭积木一样。项目大巴为一个镜像,扩展,服务器

2021-04-10 18:04:22 114

原创 Spring学习

Spring1. Spring1.1 简介Spring框架是由于软件开发的复杂性而创建的。目的:解决企业应用开发的复杂性Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。maven依赖<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --><dependency> <groupId>org.springframework&l

2020-12-30 00:01:47 176 1

原创 MyBatis学习(4)

MyBatis-【第四天学习】缓存简介什么是缓存:存在内存中临时数据将用户经常查询的数据放在缓存中,用户去查询数据就不用从磁盘上(关系型数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发的性能问题为什么使用缓存:减少和数据库的交互次数,减少系统开销,提高系统效率什么样的数据能使用缓存经常查询或不经常改变的数据MyBatis缓存MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。mybatis系统默认定义了两级缓存:一级缓存,二级缓存

2020-12-26 20:01:30 55

原创 MyBatis学习(3)

MyBatis-【第三天学习】文章目录MyBatis-【第三天学习】1.复杂的联表查询一对多处理:2.动态SQL2.1 IF查询2.2 choose,when,otherwise2.3 where2.4 set2.5 trim2.6 SQL片段2.7 forEach1.复杂的联表查询一对多处理:即对实体类中属性类型为泛型集合的查询,即查询role实体类中的allUser属性@Datapublic class Role { private Integer id; //id

2020-12-25 22:20:40 84

原创 MyBatis学习(2)

MyBatis文章目录MyBatis1.配置之映射器2.ResultMap结果集映射3.日志工厂4.分页limit分页:rowBounds分页:分页插件5.使用注解开发5.1面向接口编程5.2核心6.Lombok的使用7.多表联合查询1.配置之映射器注册绑定mapper配置文件方式一:<!-- 使用相对于类路径的资源引用 --><mappers> <mapper resource="org/mybatis/builder/AuthorMapper.xml"/&g

2020-12-24 23:12:34 80

原创 MyBatis学习(1)

MyBatis1.环境:JDK,MySql,maven,IDEA2.简介2.1什么是mybatisMyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。如何获得mybatis:githubm

2020-12-23 23:28:16 104

原创 邮件发送原理

文章目录邮件发送原理协议:准备步骤只含纯文本的邮件包含内嵌资源和附件的邮件邮件发送原理协议:发送邮件:SMTP协议接收邮件:POP3协议准备JavaMail 和Activation jar包步骤只含纯文本的邮件1.创建定义整个应用程序所需的环境信息的session对象, Authenticator 认证对象Session session = Session.getDefaultInstance(properties, new Authenticator() {

2020-12-23 16:35:02 239

原创 文件上传

文章目录文件上传:准备工作:文件上传的注意事项:使用的类上传代码:注意乱码问题文件上传:准备工作:jar包:common-io,common-fileupload文件上传的注意事项:为保证服务器的安全,上传文件应该放在外界无法直接访问的目录下,如WEB-INF目录下为保证文件覆盖的现象发生要为上传文件产生一个唯一文件名限制上传文件的最大值限制上传文件的类型,判端后缀名是否合法使用的类ServletFileUpload负责处理上传的文件数据,并将表单中的每个输入项封装成一个FileItem

2020-12-23 16:33:53 4355 2

空空如也

空空如也

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

TA关注的人

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