8.7.2及之后版本开始区分运行环境(Java/Spring/Solon/Vertx)

最后更新:2024-09-06 05:30:01 | 状态:未完成
8.7.2及之前的版本默认基于spring
8.7.2及之后的版本需要区分运行环境,目前支持:
  • Java(默认支持)
  • Spring
  • Solon
  • Vertx
主要的区别只是类加载机制不同,核心代码都是一样的,对项目代码没有影响
如果是纯java环境,需要调用一下 DefaultEnvironmentWorker.start();这个方法用来加载配置文件和bean,类似于SpringApplication.run()

注意以下依赖不添加也可以正常运行,加上后会替代anyline默认的上下文管理、连接管理、事务管理;会自动调用DefaultEnvironmentWorker.start();
但是不要混用,如不能既添加了anyline-environment-spring-data-jdbc 又调用DefaultEnvironmentWorker.start();因为他们是不同的上下文环境,混用会导致注册bean到第1个上下文,get bean又从另一个上下文中执行。


Spring环境(主要用到了org.springframework.jdbc.core.JdbcTemplate和TransactionManager)
<dependency>
	<groupId>org.anyline</groupId>
	<artifactId>anyline-environment-spring-data-jdbc</artifactId> <!--因为spring环境中用到了spring-jdbc的事务管理器和template所以多了个data-jdbc后缀-->
</dependency>

Solon环境
<dependency>
	<groupId>org.anyline</groupId>
	<artifactId>anyline-environment-solon</artifactId>
</dependency>
Vertx环境(主要用到了io.vertx.ext.jdbc.JDBCClient)
<dependency>
	<groupId>org.anyline</groupId>
	<artifactId>anyline-environment-vertx-data-jdbc</artifactId> 
</dependency>
数据源注册类统一成了DataSourceHolder.reg(...)不再需要区分是否JDBC类型
因为原来的事务处理基于spring 所以8.7.2中的事务管理修改成了
通过TransactionProxy.start(数据源key) 或servcice.start()启动
并通过Transactionproxy.commit(TransactionState)或service.commit(TransactionState)提交或回滚
首页 最近更新 搜索 提交 回复