Skip to main content

汪云飞的工具箱

Latest articles

  1. 如何通过互联网访问本地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

  2. 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

  3. 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

  4. 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

  5. Spring Boot下如何实现数据库的多租户

    在我们常规开发的SaaS平台中,我们有个很常用的需求是通过多租户将不同用户之间的数据和资源隔离开。 通常情况下,多租户有三种形式: 1、分区(Partitioned)数据:不同租户的数据都在一张表里,通过一个值(tenantId)来区分不同的租户。 2、分结构(Schema):不同的租户数据放置在相同数据库实例的不同结构(Schema)中。 3、分数据库(Database):不同租户的数据放置在不同的数据中。 在Spring Boot中,多租户的能力是由Hibernate提供的,我们在本文...

    Oct 16, 2022