程序开发 记录 Nacos 配置文件读取和预期不一致问题 由于系统是网关统一鉴权的,并且可以配置开放权限,只需要配置相应得 url 路径即可。 今天调试系统时,在 nacos 上配置了需要开放的 url 路径,但是死活不生效,多次检查配置文件是否有格式问题,但是并没有发现问题。 后来调试发现,获取的配置文件和配置的不一样,后来发现在另外一个配置文件中也写了一样的配置,导致想要生效的配置文件没有生效。
程序开发 WebMvcConfigurer 详解 简介 WebMvcConfigurer 配置类其实是 Spring 内部的一种配置方式,采用 JavaBean 的形式来代替传统的 xml 配置文件形式进行针对框架个性化定制,可以自定义一些 Handler,Interceptor,ViewResolver,MessageConverter。 在 SpringBoot 1.5 版本都是靠重写 WebMvcConfigurerAdapter 的方法来…
程序开发 Java 基础之线程以及三种创建线程的方式 简介 线程是一种重要的概念,用于实现并发执行的多任务。 线程是程序执行的最小单元,它可以独立执行代码片段。 多线程允许在同一程序中同时执行多个任务,提高程序的并发性和响应能力。 线程可以共享内存空间,方便数据交换和通信。 三种方式创建线程 1. 继承Thread类 可以通过继承 Thread 类,并重写 run() 方法,在需要的地方调用 start 方法进行执行线程。 注意:需要调用 start…
程序开发 Java 基础之常见的输入输出流以及基本使用 介绍 流是用了读取和写出数据的对象,下面是常见的一些对象即使用方法。 1. 字节流 InputStream:用于从字节流中读取数据。 InputStream 为抽象类,常见的继承类:FileInputStream、BufferedInputStream、DataInputStream、ObjectInputStream。 OutputStream:用于向字节流中写入数据。 OutputStream…
程序开发 Java 基础之枚举类及常见用法 Java 枚举类(Enum)是一种特殊的数据类型,用于定义一组常量。 例如 web 请求状态码枚举类如下: public enum ResultCode { /** * 请求成功状态码 */ SUCCESS(200, "成功"), /** * 请求失败状态码 */ FAIL(1000, "失败"); private int code; private Str…
程序开发 Spring 的事件与监听机制以及实际应用 一、简介 Spring框架提供了事件与监听机制,用于实现松耦合和事件驱动的编程模型。这个机制基于观察者设计模式,其中包含三个重要组件:事件(Event)、事件发布器(Event Publisher)和监听器(Listener)。 1. 事件(Event) 事件是系统中发生的特定动作或状态变化的表示。在Spring中,事件通常被定义为Java类,可以包含事件相关的数据和操作,并且该类需要继承 App…
程序开发 Java 的日志框架体系以及 slf4j 的整合 1. 日志框架 Java 的日志框架分为日志门面和日志实现,这样的好处是为了解耦,配置更灵活,且通过日志门面可以以一种统一的方式输出日志。 常见的日志框架有以下几种: 日志门面 日志实现 JCL SLF4j jboss-logging log4j jul log4j2 logback 日志门面有三种: JCL: Jakarta Commons Logging,是 apache 的 Jakarta …
程序开发 Spring 创建自定义命名空间和自定义标签 之前有了解过 Spirng 是如何解析第三方 xml 标签的,那么可以根据该原理写一个自定义命名空间和自定义标签,有助于我们学习其他相关框架。 接下来就自定义一个命名空间下的 mybean 标签,往容器中存放 mybean 配置的对象对象。 一、自定义命名空间和标签 通常分为以下几个步骤: 1.确定命名空间名称、schema 虚拟路径、标签名称 2.编写标签约束文件和映射 3.编写处理器映射文件和…
程序开发 SpringBean 的生命周期以及如何解决循环引用 1. SpringBean的生命周期 Spring Bean 的生命周期从 Bean 实例化开始,即通过反射创建对象,到 Bean 成为一个完整的对象,最终存储到单例池中。整个过程被称为 Spring Bean 的生命周期,大致分为三个阶段。 第一阶段是 Bean 的实例化。Spring 框架根据 BeanDefinition 的信息判断 Bean 的范围是否是 singleton,是否延迟加载,…
程序开发 Spring 实例化 Bean 对象的基本流程 一、 实例化基本流程 基本流程图如下: Spring 容器在进行初始化时,会将 xml 配置的 <bean> 的信息封装成一个 BeanDefinition 对象,所有的 BeanDefinition 存储到一个名为 beanDefinitionMap 的 Map 集合中。 Spring 框架再对该 beanDefinitionMap 进行遍历,使用反射创建 Bean 实例对象,创建好…
程序开发 Spring 基于 xml 方式的 bean 的配置 一、简介 spring 可以通过读取 xml 配置文件的方式,生成 bean 实例对象。 现有如下 beans.xml 配置文件和实体类与接口。 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/be…
程序开发 Jackson 常用注解 一、 Read+Write注解 Jackson包含一组注解,这些注解会影响从 JSON 读取 Java 对象以及将 Java 对象写入 JSON,这些称为 Read + Write 注解。 1. @JsonIgnore @JsonIgnore 用于告诉 Jackson 忽略 Java 对象的某个属性(字段)。 在将 JSON 读取到 Java 对象中以及将 Java 对象写入 JSON 时,都将忽…