译:使用java10中的Hazelcast迁移hibernate的二级缓存 | Spring For All

226 阅读2分钟
原文链接: www.spring4all.com

使用java10中的Hazelcast迁移hibernate的二级缓存

原文链接:dzone.com/articles/mi…

作者:Alok Ranjan Meher

译者:developlee

了解如何使用Java 10中的Hazelcast迁移Hibernate二级缓存工具

任何行业的技术都会随着时间而改变,Java技术也是如此。最近,Oracle在2018年3月20日发布了Java 10。这是Java项目结构的范式转变。Oracle Java已经将它的所有jar重构为不同的模块,如java.base 等。现在,就JDK而言,项目的模块也可以模块化。还有,某些包也即将从JDK 10 中删除,如java.xml.binding。这意味着在旧JDK中编译和运行的项目不会在JDK 10中编译。但是,Oracle Java提供了一些特性,通过这些特性,可以在JDK 10中编译和运行使用旧JDK编写的项目。正是因为这样,依赖于不同框架或工具的项目将不会被编译,也不会迁移到JDK 10。

我已经使用Hazelcast中的Hibernate二级缓存工具将项目迁移到JDK 10,并执行了一些测试用例,以确保它正常工作。项目pom文件的maven-surefire-plugin 应更改如下:

 <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.21.0</version>
        <dependencies>
            <dependency>
                <groupId>org.junit.platform</groupId>
                <artifactId>junit-platform-surefire-provider</artifactId>
                <version>1.2.0</version>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-engine</artifactId>
                <version>5.2.0</version>
            </dependency>
        </dependencies>
        <configuration>
            <argLine>
                --illegal-access=deny
                --add-modules=java.xml.bind
            </argLine>
        </configuration>
    </plugin>

如前所述,java.xml.binding 即将从JDK 10中删除。因此,Hibernate项目也无法在JDK 10中编译。在上面的代码片段中,标签 包含了在JDK 10中成功执行JUnit 5测试用例的附加参数。

为了实现缓存,HibernateHazelcast配置需要以下依赖项

   <!-- Hibernate Core -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.2.17.Final</version>
    </dependency>
    <!-- Hazelcast -->
    <dependency>
        <groupId>com.hazelcast</groupId>
        <artifactId>hazelcast-hibernate52</artifactId>
        <version>1.2.3</version>
    </dependency>
    <dependency>
        <groupId>com.hazelcast</groupId>
        <artifactId>hazelcast</artifactId>
        <version>3.9.4</version>
    </dependency>

Hibernate和Hazelcast版本的任何其他组合都不能在JDK 10中正确编译或运行。因此,通过在旧JDK中编写的项目中使用Hazelcast作为缓存对Hibernate的pom文件进行上述更改,将使项目在JDK 10环境下成功编译和执行。

源代码可以在:github.com/aloktech/Mi… 获得。