学习Golang,那么你就会有一个必学的Web框架,那就是Gin,来看看官网是怎么介绍它的呢。 一、介绍 Gin 是一个用 Go (Golang) 编写的 Web 框架。 它具有类似 martini 的 API,性能要好得多,多亏了httprouter,速度提高了 40 倍。 如果您需要性能和良好的生产力,您一定会喜欢 Gin。 下面是官网列出的这个框架的几个特性,一起来看看。 快速 基于 R
之前我写过一篇SM2国密算法加解密的文章,当时也是浅显的介绍了一下如何在程序中编码实现加解密,SM2属于非对称加密,这次我就来介绍一下对称加密SM4。 SM4是一种对称加密算法,类似于AES,主要用于数据的批量加密,如文件加密、数据库加密、网络通信数据加密等。因其基于对称密码,加解密速度较快,适合大数据量的快速加解密。 一、后台加解密 1. 导入POM依赖 <dependency>
现在越来越多的开发者开始拥抱Go语言了,那么开发Go程序肯定得有Go的环境,而项目的服务器部署的话一般除了目前的容器技术,原生的Linux方式部署我们也是需要掌握的,那么今天我就在Linux上安装Go环境做个简单介绍。 一、官网下载 首先打开官网链接 https://go.dev/dl/,进入到官网后首页有个Download,直接点击即可进行下载界面,选择合适的版本,因为我们要在Linux服务
相信大家多多少少的应该都用过JetBrains公司旗下的产品进行开发,那么你也一定看过它们的官方文档,一进入官方文档的页面就感觉UI是那么的炫酷,跟国内的大不一样,那么它们的文档写作其实也是人家自研的一个工具进行辅助编写的,它就是Writerside。 官网给的简短的介绍语:开箱即用的文档即代码。 文档即代码管道 使用单一创作环境,免除对多种工具的需求。借助内置 Git UI、集成式构建工具
cron,相信玩过Linux的朋友应该都对这个很熟悉吧,这不就是计划任务嘛,当你需要某个时间段去执行某一件事的时候,普通的执行方式已经不能满足我们的需求了,这个时候就需要一个定时任务了,那么下面我就来介绍一个Go的开源定时任务框架。 一、安装 # 下载 go get github.com/robfig/cron/v3@v3.0.0 # 导入:这里后面加个v3意味着这是v3版本,注意不要搞错
1. POM依赖 这里因是SpringBoot项目,默认你的依赖已经引入,我们这里直接引入日志模块的依赖。 <!-- logging --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging&
相信不少的伙伴在日常开发中应该都用过MyBatis增强框架吧,目前来说国内用的比较多的无非就是MyBatis-Plus,那么今天我再给大家介绍一款新的MyBatis增强框架,它就是MyBatis-Flex。 那么这个框架到底怎么样呢,跟MyBatis-Plus有什么不一样的呢,下面我们先来看下它的介绍,这是官网的一段介绍。 MyBatis-Flex 是一个优雅的 MyBatis 增强框架,它非
目前而言,不说全部,绝大多数Java开发者都有使用过JetBrains旗下的IDEA开发项目,这么说应该不过分吧。那么我们大家都知道,JetBrains旗下的旗舰版产品都是付费的,一年其实也不便宜,对于我们个人开发者使用的话,确实是个不小的开支。虽然它旗下的部分产品也是有社区版的,但是大部分产品都是需要付费订阅的,并且社区版功能跟旗舰版差距还是挺大的,所以说,开发选择旗舰版还是第一选择。 既然
IDEA 2023.1.2新版本开发插件,全新的版本,不同的实现,新版本开发插件跟旧版本的有些API是不一样的,旧版本的某些API已经更新了,因此,初次开发中还是遇到挺多的坑的,记录一下。 https://plugins.jetbrains.com/docs/intellij/welcome.html 一、新建插件项目 官方文档中描述的新建一个项目的步骤,描述的过程基本上就是上图的操作了,选择
今天我们就来学习一下23种设计模式中的状态模式。状态模式主要用于对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为的应用场景。 概念: 状态模式是对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。 特点: 优点: 状态模式将与特定状态相关的行为局部化到一个状态中,并且将不同状态的行为分割开来,满足“单一职责原
今天我们就来学习一下23种设计模式中的策略模式。如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。 概念: 策略模式是定义了一系列的算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这
今天我们来学习23种设计模式中的模板模式。模板模式需要注意抽象类与具体子类之间的协作。它用到了虚函数的多态性技术以及“不用调用我,让我来调用你”的反向控制技术。 概念: 模板模式是定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 特点: 优点: 它封装了不变部分,扩展可变部分。它把认为是不变部分的算法封装到父类中实
今天我们来学习23种设计模式中的访问者模式。访问者模式主要用于解决稳定的数据结构和易变的操作耦合的问题。 概念: 访问者模式是将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离,是行为型设计模式中最复杂的一种模式。 特点: 优点: 符合单一职责原则
今天我们来学习23种设计模式中的代理模式。代理模式就是给一个对象提供一个代理,并由代理对象控制对原对象的引用。它使得客户不能直接与真正的目标对象通信。代理对象是目标对象的代表,其他需要与这个目标对象打交道的操作都是和这个代理对象在交涉。 概念: 代理模式是由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象将作为访问对象和目标对象之间
今天我这就来介绍一下23种设计模式的享元模式,它是运用共享技术来有效地支持大量细粒度对象的复用。 概念: 享元模式是运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。 特点: 减少了对象的创建,降低系统内存,提高系统资源的利用率。 为了使对象可以共享,需要将一些不能共享的状态外部化,这将增加程
今天我们讲解的是23种设计模式中外观模式。外观模式主要通过向现有的系统添加一个接口,来隐藏系统的复杂性。 概念: 外观模式是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。 特点: 优点: 降低了子系统与客户端之间的耦合度,使得子系统
组合模式 今天来学习23种设计模式的组合模式,组合模式主要用于组合多个对象形成树形结构以表示“整体-部分”的结构层次。 概念: 组合模式(Composite Pattern)又叫作部分-整体模式,它是一种将对象组合成树状的层次结构的模式,用来表示“部分-整体”的关系,使用户对单个对象和组合对象具有一致的访问性。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构
今天给大家说一下23种设计模式中装饰者模式。一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。这个时候,我们就需要用到装饰者模式了,它可以实现在不增加很多子类的情况下扩展类的功能。 概念: 装饰者模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为
今天我们继续学习23种设计模式中的桥接模式。所谓桥接模式就是将抽象部分和实现部分隔离开来,使得它们能够独立变化。桥接模式将继承关系转化成关联关系,封装了变化,完成了解耦,减少了系统中类的数量,也减少了代码量。 概念: 桥接模式是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。 如果说某个系统能够从多个角
今天开始我们就要进入到结构型的设计模式学习之中了,今天讲的设计模式是23种设计模式的第六种——适配器模式。通俗的讲,适配器的作用就是将两个互不兼容的东西进行一个适配的操作,它作为中间的桥梁。 下面我们进入适配器模式的学习。 应用前景: 在现实生活中,适配器这样的例子随处可见。就比如用直流电的笔记本电脑接交流电源时需要一个电源适配器,中国人和外国人交流,中间需要一个翻译等等。 在软件设计中也可能
今天我们来学习23种设计模式中的第五种——原型模式,它主要用于创建重复的对象,同时又能保证系统的性能,下面我们就来具体看看这种设计模式的巧妙之处。 应用前景: 在我们应用程序中可能有某些对象的结构比较复杂,但是我们又需要频繁的使用它们,如果这个时候我们来不断的新建这个对象势必会大大损耗系统内存,这个时候我们需要使用原型模式来对这个结构复杂又要频繁使用的对象进行克隆。所以原型模式就是用原型实例指
今天我们要学习的是23种设计模式中的第四种——建造者模式。建造者模式主要适用于一些基本部件不会变,而其组合经常变化的情况,下面我们开始进入正题。 概念: 建造者模式(Builder Pattern)又叫生成器模式,是一种对象构建模式。建造者模式是将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后
今天呢,给大家推荐一款数据库运维中你可以使用到的一款DataGrip插件,这款插件是我自己工作中需要的,就自己简单写了一个,为方便大家,推荐给大家体验。 一、介绍 Comma 是一款基于IntelliJ 的数据库辅助插件,可以帮助我们开发人员快速生成多值SQL查询语句,减少手动连接多值SQL查询语句所需的时间。 ● 支持JetBrains旗下所有的数据库管理软件 ● 插件允许自定义选择区域去转
今天我们来学习一下第三种设计模式——抽象工厂模式, 概念: 所谓抽象工厂模式就是提供一个接口,用于创建相关或者依赖对象的家族,而不需要明确指定具体类。它允许客户端使用抽象的接口来创建一组相关的产品,而不需要关心实际产出的具体产品是什么。这样一来,客户就可以从具体的产品中被解耦。它的优点是隔离了具体类的生成,使得客户端不需要知道什么被创建了,而缺点就在于新增新的行为会比较麻烦,因为当添加一个新的
今天来学习23种设计模式的第二种,工厂方法模式,同时也是Java 中最常用的设计模式之一。 概念: 定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。 我们把被创建的对象称为“产品”,把创建产品的对象称为“工厂”。如果要创建的产品不多,只要一个工厂类就可以完成,这种模式叫“简单工厂模式”,它不属于 GOF 的
今天来学习23种设计模式的第一种,单例模式,同时也是设计模式中最简单的模式之一。 概念: 所谓类的单例模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。 特点: 单例类只有一个实例对象; 该单例对象必须由单例类自行创建; 单例类对外提供一个访问该单例的全局访问点。 类图分析: 单例模式的八种实现方式: 1.饿
设计模式相信很多人都应该听过,但是具体是什么可能就有点说不出个所以然,因为你只是听过,但是没有经过系统性的学习,所以很难说出设计模式到底是什么,在接下来的一段时间我将带领大家一起进入手撕设计模式阶段的学习。
Docker安装Nginx # 拉取Nginx镜像,默认最新版本 docker pull nginx # 启动Nginx docker run -p 80:80 -p 443:443 --name nginx -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/html:/usr/share/nginx/html -v /r
哈喽,小伙伴们,大家好,咱们又见面了。今天呢,我想给大家介绍几款Chrome浏览器的常用插件。那么,相信大家肯定都用过Chrome浏览器,正所谓没有插件的Chrome是么有灵魂的,下面我就给大家介绍我用的几款Chrome浏览器插件。 1. 谷歌上网助手 谷歌访问助手这个插件相信就不用多说,经常访问Google的基本上都知道,如果就是不能上网的话,这个无非就是最合适的一个上网加速插件,不过就是只对访
今天继续持续输出,那么这次给大家带来我的在线小工具第四弹,每天不是在收集小工具就是在收集小工具的路上。 1.NATAPP 作为一个程序员,手里没个公网IP真的说不过去吧,当然除了服务器带的公网IP外,本地的也可以通过这个内网穿透工具,这个的话使用起来体验也是不错的,反正是挺好用的。 2.iconfont UI设计一直都是最能直观的反映一个软件美感程度的体现,所以一个好的UI不只是页面的设计,
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号