瞎折腾 Docker 搭建 nas 导航 heimdall
如果玩 nas,肯定有一堆的 web 应用,那么就要记非常多的端口号,这是一件非常麻烦的事情。 今天介绍的 heimdall 是一款专为 nas 设计的导航程序,你只需要简单安装即可使用,并且非常美观,甚至应用的图标都是内置的,省去了非常多的麻烦。 搭建命令如下: docker run -d \ –name=heimdall \ -p 80:80 \ -p 443:443 \ -v /home/…
经验教程 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 接口来创建代理对象。代理对象实现了目标接口,…

Docker 安装多种常用的 ddns 工具

Mysql 的日志文件 binlog 与数据恢复

Docker 安装音乐播放器 swingmusic

Mysql 通过 frm 和 ibd 文件恢复使用 InnoDB 引擎的数据

Springboot 使用 nacos 时固定注册 ip

