程序开发 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.编写处理器映射文件和…
程序开发 Spirng 是如何解析第三方 xml 标签的 本文主要了解 Spring 是如何解析第三方 xml 标签的,为什么我们引入了对应的名称空间和指定相应的 xsd 文件就可以使用第三方标签。 xsd 的全称是 XML Schema Definition,它是一种用于定义 XML 文档结构的语言。XSD 是一种基于 XML 的规范,用于描述 XML 文档中元素的结构、数据类型和约束。 这里以 spring-context 为例。 <?xml …
程序开发 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 时,都将忽…
程序开发 为什么 java 里面的布尔类型的字段不建议 is 开头 阿里开发手册里面强制规定,布尔类型的数据,无论是 boolean 还是 Boolean 都不准使用 isXXX 来命名,要理解为什么,首先要明确以下几点: 对于非 boolean 类型的参数,getter 和 setter 方法命名的规范是以 get 和 set 开头 对于 boolean 类型的参数,setter 方法是以 set 开头,但是 getter 方法命名的规范是以 is 开头 包装类…
程序开发 Springboot 配置 https 前言 Spring Boot 本身是一个 Java 应用程序框架,它可以内嵌一个嵌入式的 Web 服务器(如 Tomcat、Jetty 等),用于处理客户端请求。它默认使用的是 Java Keystore(JKS)格式的证书文件,用于配置内嵌的 Web 服务器的 SSL/TLS 加密。 JKS 是一种密钥库格式,用于在 Java 平台上存储密钥和证书,它可以包含一个或多个密钥对以及与这些密钥对关联…