用Java 17的Records加速Spring Boot开发在《Spring Boot 2.6新特性:使用Java 17的Record作为配置属性》,我们提到了使用Java Records来作为Spring Boot的配置属性(configuration properties),从而减少了大量样板代码的编写,我们本篇将进一步拓展Records在Spring Boot下的应用场景,从而进一步减少我们的样板代码,使代码看上去更简洁清晰。 1、什么是Records record是一种特殊类型的类声明,目的是为了减少样板代码。record引入的主要目的是快速创...Nov 11, 2022
Spring Boot 3.0第一个候选发布版来了,正式版11月报到在2022.10.12日,Spring发布了6.0的第一个候选发布版。在2022.10.20日,Spring发布了6.0的第二个候选发布版。 Spring 6.0最大的更新有: Java 17作为最低版本 迁移到Jakarta EE 9+(Tomcat 10/Jetty 11,最新的hibernate 6.1) AOT(Ahead-Of-Time ) 在2022.10.20日的下午,Spring Boot 3.0的第一个候选发布。我们可以从 https://repo.spring.io/mi...Oct 25, 2022
如何通过互联网访问本地Spring Boot程序当你需要别人远程访问你本地的Spring Boot的程序的时候,你可以通过Ngrok来帮助你来实现。 什么是Ngrok Ngrok可以创建一个http隧道,并为您提供一个公共URL,重定向到本地机器上的指定端口。它是一个很棒的开发或者测试目的使用的工具。 Ngrok的官网地址是:https://ngrok.com 。 Ngrok Spring Boot Starter Spring Boot的Web端口可以通过Ngrok Spring Boot Starter暴露到互联网。 Ngrok Spr...Oct 20, 2022
Spring Boot下如何记录SQL语句、SQL参数、慢SQL日志在我们程序在访问数据库,出现bug或者性能问题的时候,我们希望把SQL语句以及参数都打印出来,以便于我们定位bug和性能问题。 你可能会使用的方式 通常情况下,以使用Spring Data JPA和Hibernate为例(别走开,方案是和数据库访问技术无关的,理论上Mybatis,JDBC都可以使用),我们在application.yaml 里配置使用: spring.jpa.show-sql: true 但这样的设置只能在开发测试环境里设置,因为使用此属性等同于使用System.out.pr...Oct 19, 2022
Spring Boot 2.7新特性:@JsonMixin在我们普通的应用中,如果我们要定制一个类对象的Json输出的话,我们可以轻松的通过Jackson提供的注解如:@JsonProperties等注解在类上轻松实现对Json输出的定制。 但也存在着这样的Java类对象的源码不受控制的情况: 1、Java类在第三方的类库中,你无法修改; 2、不想修改已有的类的代码,因当前业务和已有业务在不同的模块中。 Jackson为我们mixin来解决这个问题,在不修改已有的Java类库的情况下,定制Json的输出。Spring Boot 2.7为我们提供了@Js...Oct 16, 2022
Spring 6.0新特性都有哪些Spring 6.x都有哪些新特性呢,我们在本文快速地罗列一下: JDK 17+和Jakarta 9+基线 整个框架的代码基于Java 17源码级别。 Servlet、JPA等从"javax"迁移到"jakarta"命名空间。 兼容最新一代的web容器:Tomcat 10,Jetty 11. JDK 19的“虚拟线程”的早期兼容。一般核心修订 升级到ASM 9.4和Kotlin 1.7。 完成CGLIB分支,支持捕捉CGLIB生成的类。 AOT(Ahead-Of-Time)转换的全面基础。 ...Oct 16, 2022
Spring Boot下如何实现数据库的多租户在我们常规开发的SaaS平台中,我们有个很常用的需求是通过多租户将不同用户之间的数据和资源隔离开。 通常情况下,多租户有三种形式: 1、分区(Partitioned)数据:不同租户的数据都在一张表里,通过一个值(tenantId)来区分不同的租户。 2、分结构(Schema):不同的租户数据放置在相同数据库实例的不同结构(Schema)中。 3、分数据库(Database):不同租户的数据放置在不同的数据中。 在Spring Boot中,多租户的能力是由Hibernate提供的,我们在本文...Oct 16, 2022