经验教程 Shell 批量下载随机图片 有时候想要下载别人随机图片,一个个保存非常麻烦,既然它是随机的图片,那么完全可以写个脚本进行保存,不过这种方式有可能存在相同文件。 for i in {1..200} do wget https://www.dmoe.cc/random.php –no-check-certificate -O $i'.png' done 结果如图:
经验教程 php 中 cgi 是什么意思 在PHP中,cgi是“Common Gateway Interface”的缩写,是公共网关接口的意思,cgi可以让一个客户端从网页浏览器向执行在网络服务器上的程序请求数据,是描述了服务器和请求处理程序之间传输数据的一种标准。 简单来说 CGI、 FastCGI只是一个协议而已, php-cgi 是实现cgi的程序, php-fpm是管理php-cgi的一个管理器而已。 CGI全称是“公共网关接口”…
运维开发 NFS 安装和使用详解 1. 概念 nfs:network file system nfs即网络文件系统,它允许网络中的计算机之间通过网络共享资源。将NFS主机分享的目录,挂载到本地客户端当中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,在客户端看起来,就像访问本地文件一样。 nfs的作用:实现了不同及其之间的文件共享 2. 安装 yum install -y rpcbind nfs-utils #…
经验教程 Windows 下 git 配置代理 Github 实在太慢,如果不配置代理几乎无法克隆仓库,于是今天几种办法都尝试了一下。 这里说明一下,由于阿蛮君本地装了代理,所以这里用的代理地址都是本地代理。 1. 临时使用代理 这种方式仅适用于 https 方式。 git clone -c http.proxy=socks5://127.0.0.1:10808 https://github.com/username/repository.gi…
程序开发 Spring Security 详解以及认证过程 简介 Spring Security 是基于 Spring 实现的一个安全框架,其中包括非常多的过滤器,主要进行攻击防护、认证授权等功能。 过滤器链 Spring Security 常用的过滤器有15个,如下图所示: 在 FilterChainProxy 类中的 doFilterInternal 方法打断点可以看见。 1.org.springframework.security.web.conte…
程序开发 WebSecurityConfigurerAdapter 详解 简介 WebSecurityConfigurerAdapter 是 Spring Security 中的一个抽象类,实现了WebSecurityConfigurer接口,用于配置 Spring Security 的安全性设置。 类图如下: 通过继承WebSecurityConfigurerAdapter并覆盖其中的方法,可以自定义应用程序的安全性配置。 常用配置 下面贴一下WebSecurityC…
程序开发 Stream 流用法详解 简介 Stream 是 Java 8 引入的一个功能强大的流式处理 API。它允许我们以声明性的方式操作集合(数组、集合等)的元素。通过使用 Stream,我们可以将多个操作连接起来,形成一个流水线,从而简化代码并提高可读性。 Stream 类中包含的方法,可以进行数据筛选、转换、排序、去重、限制、跳过、归约、统计、匹配、查找和遍历等操作。 数据筛选和转换: filter(Predicate<…
程序开发 工具类 Optional 用法详解 Optional 类是 Java 8 中引入的一个用于避免空指针异常的工具类,请注意它是 java.util 包下的一个工具类。 它提供了一系列方法,用于对可能为 null 的对象进行操作,以便更加安全地访问对象的属性和方法。 Optional 里面几乎全部都围绕其中的一个成员变量 value 在运作。 下面是 Optional 类中常用的方法及其用法: of 方法 创建一个包含指定对象的 Opt…
经验教程 设计模式之三种工厂模式 前言 工厂模式是一种创建对象的设计模式,它提供了一个统一的接口来实例化对象,而不需要通过直接调用构造函数来创建。工厂模式可以根据不同的条件返回不同类的实例,从而实现对象的灵活创建。 常见的工厂模式包括:简单工厂模式、工厂方法模式和抽象工厂模式。 详解 1. 简单工厂模式 简单工厂模式,就像它的名字一样,非常简单。只需要创建一个工厂类,根据传入的参数或条件,工厂类决定实例化哪个具体类的对象并返回。 …
经验教程 设计模式之软件设计原则 在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据 6 条原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。 1 开闭原则 对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。 想要达到这样的效果,我们需要使用接口和抽象类。 因为抽象灵活性好,适应…
经验教程 设计模式之UML类图 1. 类图概述 统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。 UML 从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等 9 种图。 类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部…
程序开发 50 个 Java 编程技巧 一、语法类技巧 1.1. 使用三元表达式 普通: String title; if (isMember(phone)) { title = "会员"; } else { title = "游客"; } 精简: String title = isMember(phone) ? "会员" : "游客"; 1.2.利用 fo…
程序开发 Java 彻底理解两种动态代理 在 java 中,有两种常见的动态代理实现方式,即基于接口的动态代理(JDK 动态代理)和基于类的动态代理(CGLIB 动态代理),下面就对这两种代理进行解释和举例。 1. JDK动态代理 这种动态代理实现方式是基于接口的,使用 java.lang.reflect.Proxy 类和 java.lang.reflect.InvocationHandler 接口来创建代理对象。代理对象实现了目标接口,…