myddd-vert.x 1.1.0版本发布

2021-06-21 19:53:11 浏览数 (1)

myddd-vert.x是myddd在后端的核心基础框架,它是基于Kotlin与Vert.x的响应式领域驱动基础框架。

myddd-vert.x更新至1.1.0版本,本次升级主要为核心依赖更新。

1.1.0更新说明

  1. 将Kotlin依赖升级至最新的1.5.10版本
  2. 将Vert.x依赖升级至最新的4.1.0版本
  3. 将hibernate-reactive依赖升级至1.0.0.CR6
  4. hibernate-reactive包发布到自有的maven.myddd.org仓库,将hibernate-reactive依赖由本地jar改为远程依赖
  5. 优化Config机制,将Config由Web层优化至整个项目层
代码语言:javascript复制
private val accessSecret by lazy { Config.getString("wpAccessSecret") }

现在开始,你可以在项目任何地方,通过Config类,获取你项目设定的配置

  1. 添加对postgres数据库的完整支持。myddd-vert.x现已支持mysql与postgres

myddd-vert.x的单元测试添加了mysql与postgres双数据库源支持,任何功能都将在此两种数据库上得到支持与验证。

  1. 添加多数据源支持

你可以在项目中可以轻松的引用多个数据源

第一步:在persiste.xml中定义多个数据源

代码语言:javascript复制
    <persistence-unit name="default">
        <provider>org.hibernate.reactive.provider.ReactivePersistenceProvider</provider>
        <class>org.myddd.vertx.repository.hibernate.User</class>
        <properties>
            <!-- MySQL -->
            <property name="javax.persistence.jdbc.url"
                      value="jdbc:mysql://127.0.0.1:3306/test"/>
        </properties>

    </persistence-unit>

    <persistence-unit name="pg">
        <provider>org.hibernate.reactive.provider.ReactivePersistenceProvider</provider>
        <class>org.myddd.vertx.repository.hibernate.User</class>
        <properties>
            <!-- PG -->
            <property name="javax.persistence.jdbc.url"
                      value="jdbc:postgresql://localhost/postgres"/>

        </properties>
    </persistence-unit>

第二步: 在IOC中申明多个数据源

代码语言:javascript复制
 InstanceFactory.setInstanceProvider(GuiceInstanceProvider(Guice.createInjector(object : AbstractModule(){
            override fun configure() {
                bind(Mutiny.SessionFactory::class.java).toInstance(Persistence.createEntityManagerFactory("default")
                    .unwrap(Mutiny.SessionFactory::class.java))
            bind(Mutiny.SessionFactory::class.java).annotatedWith(Names.named("pg")).toInstance(Persistence.createEntityManagerFactory("pg")
                    .unwrap(Mutiny.SessionFactory::class.java))
            }
        })))

第三步:仓储中指定数据源

代码语言:javascript复制
//未指定任何数据源名称,则使用default
class MediaRepositoryHibernate:EntityRepositoryHibernate(),MediaRepository {
}
//如果指定一个数据源,则使用指定的数据源
class MediaRepositoryHibernate:EntityRepositoryHibernate(dataSource = "pg"),MediaRepository {
}

myddd-starter更新

myddd-starter也同步更新,支持myddd-vert.x的最新版本

从现在起,你在myddd-starter上生成的myddd-vert.x项目就是基于1.1.0版本

访问 https://starter.myddd.org 进行尝试体验吧

质量报告

myddd-vert.x遵照TDD测试驱动进行开发与质量管控。

1.1.0-SNAPSHOT版本的质量总体如下:

image-20210605144939660

下一步

下一步的工作将集中在文档上,编写一个完整的使用myddd-vert.x的使用指引。

同时,myddd的官网也在计划与构建中。

myddd-vert.x预期很快会开源。

敬请期待!

附录

如果你想了解更多关于myddd-vert.x,以下文章可以查阅

  1. 为什么我会选择Vert.x与Kotlin
  2. 难以置信的性能优势,来自myddd-vert.x的性能测试报告
  3. myddd starter 发布第一个版本

0 人点赞