图源:简书 (jianshu.com) 在前面一篇文章从零开始 Spring Boot 27:IoC中,讨论过依赖注入集合(Java 容器)的内容,这里更深入地讨论注入集合的相关内容。 我们来看一个最基本的集合注入示例: public record BookCategory(String name) { } @Configuration public class WebConfig { //文学 //文学理论 @Bean BookCategory literaryTheory() { …
图源:简书 (jianshu.com) 在前面一篇文章从零开始 Spring Boot 27:IoC中,讨论过依赖注入集合(Java 容器)的内容,这里更深入地讨论注入集合的相关内容。 我们来看一个最基本的集合注入示例: public record BookCategory(String name) { } @Configuration public class WebConfig { //文学 //文学理论 @Bean BookCategory literaryTheory() { …
图源:简书 (jianshu.com) Lombok是一个java项目,旨在帮助开发者减少一些“模板代码”。其具体方式是在Java代码生成字节码(class文件)时,根据你添加的相关Lombok注解或类来“自动”添加和生成相应的字节码,以补完代码所需的“模板代码”。 实际上 Lombok 和 Spring 并没有关联关系,你开发任何Java应用都可以选择使用 Lombok,只不过日常的 Spring 开发中很容易看到 Lombok 的使用,所以这里就归类到这个系列博客。 为什么要使用 Lombok 我们先看一个Sp…
图源:简书 (jianshu.com) 在从零开始 Spring Boot 10:日志 - 红茶的个人站点 (icexmoon.cn)中,我简单介绍过如何在Spring Boot中整合SLF4J日志。实际上,如果没有特殊需求,完全可以不使用第三方日志,就使用Spring Boot的默认日志功能,这样在配置上会省很多事。下面介绍Spring Boot默认使用的 logback 日志功能。 日志格式 Spring Boot的默认的日志输出格式类似于下面的例子: 2023-03-03T21:18:18.827+08:00…
图源:简书 (jianshu.com) Null-safety(null安全)实际上是Java这个“古老”语言的历史包袱,很多新的语言(比如go或kotlin)在诞生起就在语言层面提供对null安全的解决方案。 实际工作中有相当一部分bug都是“空指针异常”。 Spring框架提供一些注解作为null安全这一问题的解决方案,可以通过在Spring框架中使用这些注解来在编码阶段尽早发现一部分“空指针异常”引起的bug。 Spring框架提供以下注解: @Nullable: 注解,表明一个特定的参数、返回值或字段可以是…
图源:简书 (jianshu.com) 之前写过一篇文章从零开始 Spring Boot 26:AOP - 红茶的个人站点 (icexmoon.cn),讨论了AOP的基本用法,但那篇文章相当粗疏,对Spring中的AOP技术讨论并不全面,所以这里在本篇文章中,将基于Spring官方文档的内容,全面讨论Spring中的AOP技术运用。 基本概念 老规矩,先看一个示例,来说明什么是AOP以及为什么要使用AOP。 假设我们有这么一个简单示例: @AllArgsConstructor public class User {…
图源:简书 (jianshu.com) Spring表达式语言(Spring Expression Language,简称 "SpEL")是一种强大的表达式语言,支持在运行时查询和操作对象图。该语言的语法与统一EL相似,但提供了额外的功能,最显著的是方法调用和基本的字符串模板功能。 评估 直接看一个简单示例: ExpressionParser expressionParser = new SpelExpressionParser(); Expression expression = expressionParser…
图源:简书 (jianshu.com) 在从零开始 Spring Boot 13:参数校验 - 红茶的个人站点 (icexmoon.cn)一文中,我讨论了一些可以用于参数校验的注解。实际上这些注解都是来自于Jakarta Bean Validation的Java数据验证体系的一部分。关于Bean Validation在Spring中的应用,还可以进行更进一步的探索,这将是本文接下来的内容。 关于Jakarta Bean Validation的更多介绍,可以参考Jakarta Bean Validation - Ho…
图源:简书 (jianshu.com) PropertyEditor Spring使用PropertyEditor进行String和具体类型之间的转换: public interface PropertyEditor { void setValue(Object value); Object getValue(); String getAsText(); void setAsText(String text) throws java.lang.IllegalArgumentException; // ... } 这…
图源:简书 (jianshu.com) Resource 接口 Spring中的资源被抽象为一个Resource接口: public interface Resource extends InputStreamSource { boolean exists(); boolean isReadable(); boolean isOpen(); boolean isFile(); URL getURL() throws IOException; URI get…
图源:简书 (jianshu.com) 自从开始学习和从事Spring Boot开发以来,一个一直让我很迷惑的问题是IoC和Bean到底是什么东西。这个问题一直到我翻阅完Spring开发文档Core Technologies (spring.io)后才真正得到解惑。 虽然中文互联网上关于IoC的文章很多,但很少有和官方文档那样从零开始讲解并且非常全面的文章。所以学习Spring及相关技术的最好途径依然是官方文档。缺陷是篇幅很长... 关于IoC,Spring的官方文档已经介绍的相当全面了,但对从Spring Boo…
魔芋红茶
加一点PHP,加一点Go,加一点Python......
COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由
提供CDN加速/云存储服务
Theme Kratos Made By Seaton Jiang