程序开发 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 平台上存储密钥和证书,它可以包含一个或多个密钥对以及与这些密钥对关联…
程序开发 Springboot 打包出来的 jar 很小不能启动 这种情况大概率是因为资源没有打包进去,在 pom 文件引入 maven 插件: <build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> &l…
程序开发 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<…