如何在Spring Boot中使用休眠类型-52时禁用Hypersistence横幅?选项 1:附加属性文件选项 2:绕过休眠类型检查进行黑客攻击

我在我的Spring Boot Project中使用了依赖关系。而且,我注意到在应用程序启动时,添加了一些大型日志消息:com.vladmihalcea:hibernate-types-52

2020-04-09 11:43:59.535  WARN 3465 --- [           main] Hypersistence Optimizer                  : You should use Hypersistence Optimizer to speed up your Hibernate application!
2020-04-09 11:43:59.535  WARN 3465 --- [           main] Hypersistence Optimizer                  : For more details, go to https://vladmihalcea.com/hypersistence-optimizer/
2020-04-09 11:43:59.536  INFO 3465 --- [           main] Hypersistence Optimizer                  : 
 _    _                           _     _
| |  | |                         (_)   | |
| |__| |_   _ _ __   ___ _ __ ___ _ ___| |_ ___ _ __   ___ ___
|  __  | | | | '_ \ / _ \ '__/ __| / __| __/ _ \ '_ \ / __/ _ \
| |  | | |_| | |_) |  __/ |  \__ \ \__ \ ||  __/ | | | (_|  __/
|_|  |_|\__, | .__/ \___|_|  |___/_|___/\__\___|_| |_|\___\___|
         __/ | |
        |___/|_|

           ____        _   _           _
          / __ \      | | (_)         (_)
         | |  | |_ __ | |_ _ _ __ ___  _ _______ _ __
         | |  | | '_ \| __| | '_ ` _ \| |_  / _ \ '__|
         | |__| | |_) | |_| | | | | | | |/ /  __/ |
          \____/| .__/ \__|_|_| |_| |_|_/___\___|_|
                | |
                |_|

提示很好,项目听起来很有趣,但仍然希望从我的应用程序中删除横幅。


答案 1

项目所有者描述了为什么引入横幅,为什么默认情况下不会禁用它以及如何手动禁用它。

如何删除休眠类型横幅

自动横幅删除模式

简而言之,您可以购买Hypersistence Optimizer许可证并将项目添加为依赖项,以从JPA和Hibernate自动调优检查中受益。

手动移除横幅广告

或者,您可以使用 one 属性将 或 文件添加到项目中以禁用横幅:hibernate.propertieshibernate-types.properties

hibernate.types.print.banner = false

或者,您可以将此属性作为 Java 系统属性传递:

java -Dhibernate.types.print.banner=false -jar target/high-performance-java-persistence-1.0.0.jar

弹簧靴

从 Hibernate 5.5 的发布和依赖项开始,您现在可以在文件中提供该属性,如下所示:hibernate-types-55hibernate.types.print.bannerapplication.properties

spring.jpa.properties.hibernate.types.print.banner=false

如果您使用的是或较旧的依赖项,则无法通过 Spring Boot 文件提供此设置。hibernate-types-52 application.properties


答案 2

上述答案的替代方法,如果您无权访问 JVM 参数。

这两种方法都适用于在2.2.x上测试的Spring Boot。

选项 1:附加属性文件

在 处创建一个文件。src/main/resources/hibernate-types.properties

hibernate.types.print.banner=false

选项 2:绕过休眠类型检查进行黑客攻击

创建以下任一文件(取决于您的版本)。hibernate-types

最新的做事方式: .src/main/java/io/hypersistence/optimizer/core/License.java

package io.hypersistence.optimizer.core;

public class License {
  public static class Signature {
  }
}

较旧版本会检查 。src/main/java/io/hypersistence/optimizer/HypersistenceOptimizer.java

package io.hypersistence.optimizer;

public class HypersistenceOptimizer {
}

推荐