-
为什么取消了DynamicDataSource/ThreadLocal切换数据源的方式
关于切换数据源常用的方式是通过ThreadLocal干预DynamicDataSource返回值来实现。 理论是上可以的 但在JDK8实际应用中发现ThreadLocal并不可靠,特别是在线程池或线程共享环境中会导致数据源错乱。 大家经常百度的 为什么数据源切换失败,如果是偶尔失败&nbs -
执行流程-DML/DDL/metadata
这三部分的执行流程,基本上已固定,顶级父类统一实现。主要区别DDL命令合成、metadata命令合成、metadata结果集封装三个子流程。其中metadata的差异最大。 比较乐观的是大部分数据库可以归类到pg,mysql,oracle等几个系列,所在大部分方法在父类中已经实现了,只有极个别不 -
源码目录与结构
1 anyline-boot 这个有没有都可以,主要是为了配合IDE中编辑配置文件时的自动补齐,里面只有几个配置类 2 anyline-core -
XML中自定义复杂SQL
文件格式:用户角色列表 SELECT M.I -
三种方式切换数据源
切换数据源有两种试: 1.使用通用AnylineService实例 1.1)通过DataSourceHoldersetDataSource("crm")方式设置当前数据源,再调用service.query等方法操作数据库 1.2)service.query("USER");在表名前添加数据源名称 2.通过ServiceProxy返回数据源对应的service(推荐使用这一种方式,隔离性更强,不容易混淆) -
多数据源场景中service注入失败
如果是单个数据源默认情况下AnylineController中已经默认注入了一个AnylineService service;这个service可以操作多个数据源bean.id = @Service("anyline.service") 但是在多数据源情况下,为了更强的隔离性,避免线程共享 -
2.创建启动类
创建启动类,这里只需要注意一下启动时扫描一个org.anyline包,用来注入几个实例,最常用的是AnylineService -
3.创建Controller类(web项目)
每个项目中一般要有一个基础的父类用来实现一些公用的方法,最好是继承AnylineController,因为AnylineController中提供了利用HttpRequest构造查询条件的方法 -
SpringBoot环境(前后分离)
前后分离的项目不需要依赖anyboot(anyboot中的包主要用来支持JSP) 添加依赖org.anyline anyline-mvc -
SpringBoot环境
添加依赖org.anyline anyline-mvc& -
如果没有搜索到相关内容,就直接到群里喊一声,很快就有人回复
QQ群(86020680) 微信群 过期或满员联系管理员