前言 在编写项目代码时,我们要求更灵活的配置,更好的模块化整合。在 Spring Boot 项目中,为满足以上要求,我们将大量的参数配置在 application.properties 或 application.yml 文件中,通过 @ConfigurationProperties 注解,我们可以方便的获取这些参数值 使用 @ConfigurationProperties 配置模块 假设我们正在搭建一个发送邮件的模块。在本地测试,我们不想该模块真的发送邮件,所以我们需要一个参数来「开关」 disable 这个功能。另外,我们希望为这些邮件配置一个默认的主题,这样,当我们查看邮件收件箱,通过
通过如下前序两篇文章: 1. Spring Bean 生命周期之缘起 2. Spring Bean 生命周期之缘尽 我们了解了 Spring Bean 的生命周期核心内容,bean 是如何被初始化变为 Ready for Use 的状态,当资源被回收时又是如何被 destroy 的,但 Spring Bean Life Cycle图并未被全部点亮,这篇文章将点亮剩余内容,同时说说你常见的 XxxxAware 接口 为什么要说 Spring Bean 生命周期又说 Aware 呢?下来点亮剩下内容你也许就明白了: 1. 在 Spring Bean Ready for Us
上一篇文章 Spring Bean 生命周期之缘起 说明了我是谁? 和 我从哪里来? 的两大哲学问题,今天我们要讨论一下终极哲学我要到哪里去? 初始化 Spring Bean 有三种方式: 1. @PostConstruct 2. InitializingBean.afterPropertiesSet() 3. init-method 销毁 Spring Bean 同样有三种方式: 1. @PreDestroy 2. DisposableBean.destroy() 3. destroy-method 正所谓,天对地,雨对风; @PostConstruct 对 @Pre
Spring bean 的生命周期很容易理解。实例化 bean 时,可能需要执行一些初始化以使其进入可用 (Ready for Use)状态。类似地,当不再需要 bean 并将其从容器中移除时,可能需要进行一些清理,这就是它的生命周期 上一篇文章 面试还不知道BeanFactory和ApplicationContext的区别? 中说明了接口 Beanfactory 和 Applicationcontext 可以通过 T getBean(String name, Class requiredType) 方法从 Spring 容器中获取bean,区别是,前者是懒加载形式,后者是预加载的形式
前言 接口 BeanFactory 和 ApplicationContext 都是用来从容器中获取 Spring beans 的,但是,他们二者有很大不同 我看到过很多问 BeanFactory 和 ApplicationContext 不同点的问题,考虑到这,我应该使用前者还是后者从 Spring 容器中获取 beans 呢?请向下看 什么是 Spring Bean 这是一个非常简单而又很复杂的问题,通常来说,Spring beans 就是被 Spring 容器所管理的 Java 对象,来看一个简单的例子 1 2 3 4 5 6 7 8 9 10 package com.zolta
前言 上一篇文章 如何妙用 Spring 数据绑定? ,灵魂追问 环节留下了一个有关 equals 和 hashcode 问题 。基础面试经常会碰到与之相关的问题,这不是一个复杂的问题,但很多朋友都苦于说明他们二者的关系和约束,于是写本文做单独说明,本篇文章将循序渐进 ( 通过举例,让记忆与理解更轻松 ) 说明这些让你有些苦恼的问题,Let’s go ……. 面试问题 1. Java 里面有了 == 运算符,为什么还需要 equals ? == 比较的是对象地址,equals 比较的是对象值 先来看一看 Object 类中 equals 方法: 1 2 3 public boole
前言 在剖析完 「Spring Boot 统一数据格式是怎么实现的? 」文章之后,一直觉得有必要说明一下 Spring’s Data Binding Mechanism 「Spring 数据绑定机制」。 默认情况下,Spring 只知道如何转换简单数据类型。比如我们提交的 int、String 或 boolean类型的请求数据,它会自动绑定到与之对应的 Java 类型。但在实际项目中,远远不够,因为我们可能需要绑定更复杂的对象类型。 我们需要了解 Spring 数据绑定机制,这样我们就可以更灵活的做全局配置或自定义配置,进而让我们的 RESTful API 更简洁,可读性也更好。本文依旧先
前言 在 Java 应用程序中存在许多重复相似的、生成之后几乎不对其做更改的代码,但是我们还不得不花费很多精力编写它们来满足 Java 的编译需求 比如,在 Java 应用程序开发中,我们几乎要为所有 Bean 的成员变量添加 get() ,set() 等方法,这些相对固定但又不得不编写的代码浪费程序员很多精力,同时让类内容看着更杂乱,我们希望将有限的精力关注在更重要的地方。 Lombok 已经诞生很久了,甚至在 Spring Boot Initalizr 中都已加入了 Lombok 选项, 这里我们将 Lombok 做一下详细说明: Lombok 官网的介绍:Project Lom
近两年,Java 版本升级频繁,感觉刚刚掌握 Java8,写本文时,已听到 java14 的消息,无论是尝鲜新特性(Java12 中超级香的一个功能),还是由于项目升级/兼容需要,我们可能都要面临管理多个 Java 版本的情 另外 Oracle 自 Java11 开始,更改了用户协议,任何商用都会收费。在写本文时,得到消息「微软宣布加入 OpenJDK」,打不过就选择 OpenJDK。随便 G 一下,当个故事了解就可以 配置单个 Java 环境变量本身没什么技术含量可言,但当需要管理多个 Java 版本,重复配置环境变量显然是非常枯燥的,按照传统的配置方式我们又不能灵活的切换 Java 版
Java Web 人员经常要设计 RESTful API(如何设计好的RESTful API),通过 json 数据进行交互。那么前端传入的 json 数据如何被解析成 Java 对象作为 API入参,API 返回结果又如何将 Java 对象解析成 json 格式数据返回给前端,其实在整个数据流转过程中,HttpMessageConverter 起到了重要作用;另外在转换的过程我们可以加入哪些定制化内容? HttpMessageConverter 介绍 org.springframework.http.converter.HttpMessageConverter 是一个策略接口,接口说明如下



Copyright 2018-2019 Tanθ's Blog   |   辽ICP备19017651号-1   |     站点总字数: 162.6k 字   |   载入天数...载入时分秒...   |  站点地图   |  站长统计
  总访问量:  次  总访问人数:  人

博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议