SpringBoot @Value 解析集合配置

一、前言

在日常开发中,经常会遇到需要在配置文件中,存储 List 或是 Map 这种类型的数据。Spring 原生是支持这种数据类型的,以配置 List 类型为例,对于 .yaml 文件配置如下:

test:
  list:
    - aaa
    - bbb
    - ccc

SpringBoot 普通 jar 与可执行 jar

前两天被人问到这样一个问题:

“为什么我的 Spring Boot 项目打包成的 jar ,被其他项目依赖之后,总是报找不到类的错误?”

大伙有这样的疑问,就是因为还没搞清楚可执行 jar 和普通 jar 到底有什么区别?今天就和大家来聊一聊这个问题。

Maven filter 实现 SpringBoot 多环境配置

一、前言

当我们正式开始工作生涯后,最先发现商业项目和我们自己写的项目的不同之一就是:怎么这么多配置文件啊!!

就按照最普遍的:开发、测试、预发(仿真)和线上来说,一个项目就至少有四套配置了,那么我们到底要如何配置多环境呢?

SpringBoot 条件注解

一、引言

当我们使用 SpringBoot 进行开发时,会引入许多的 starter 包,引入后就会为我们做一些自动化配置,省去了大量配置的时间,快速开发。

以 Redis 为例,当我们引入 Redis 的 starter 包时:

SpringBoot 远程调试

在配合 QA 进行代码测试,以及处理线上 BUG 时,代码往往已经被部署于服务器端,因此服务器端程序支持远程调试功能就尤为重要。

Java 原生支持调试功能,由于实际开发中使用 SpringBoot,因此本文探讨基于 jar 包的调试,远程调试的 IDE 为 IDEA

注: war 包调试、Eclipse 远程调试功能请另行了解,这不在本文的探讨范围内。

SpringBoot 整合 AOP

一、前言

AOP(Aspect Oriented Programming, 面向切面编程),是 Spring 的核心思想之一,即纵向重复,横向抽取,它在 Spring 中应用广泛,例如 拦截器、日志、事务等等,在 SpringBoot 中使用 AOP 之前,我们先复习下 AOP 的理论知识。

SpringBoot 配置 Logback

一、前言

SLF4J(Simple Logging Facade For Java), 它是针对各类 Java 日志框架的同一抽象,即日志门面。Java 的日志框架众多,SLF4J定义了统一的日志抽象接口。

默认情况下,SpringBoot 采用 Logback 来记录日志,并输出 INFO 级别日志到控制台。从下图可以看到,spring-boot-stater 的依赖中已经包含了 Logback,因此我们无需手动导入依赖。

SpringBoot 配置国际化

一、LocaleResolver

国际化的支持中一个重要的类是 LocaleResolver,它提供了四种默认实现:

  1. AcceptHeaderLocaleResolver
    没有任何具体实现,通过浏览器头部的语言信息来进行多语言选择。
  2. FixedLocaleResolver
    设置固定的语言信息,这样整个系统的语言是一成不变的,用处不大。
  3. CookieLocaleResolver
    将语言信息设置到 Cookie 中,这样整个系统就可以获得语言信息
  4. SessionLocaleResolver
    将语言信息放到 Session 中,这样整个系统就可以从Session中获得语言信息。