Skip to content

@DS 注解是由 Dynamic DataSource库提供的,用于在方法或类级别指定要使用的数据源。当项目中配置了多个数据源时,可以使用 @DS 注解来动态切换不同的数据源。 在你的例子中: @DS("dwsuums,hzz") 这个注解告诉系统在执行 MonitorServiceImpl 中的方法时,要使用 dwsuums 和 hzz 两个数据源。这里需要注意的是,hzz 数据源需要在方法中显式调用,如果不指定该数据源,默认会使用 primary 数据源或者其他指定的数据源。

为什么加上 hzz 数据源后可以正常工作?

  1. 数据源的选择:在你执行操作的时候,需要访问 hzz 数据源中的表(例如 ATT_PDO_MONITOR_DATA 表),如果没有指定 hzz 数据源,系统可能会默认选择其他数据源(如 primary 或 dwsuums),导致表不存在的错误。
  2. 多数据源的支持:@DS("dwsuums,hzz") 指定了 MonitorServiceImpl 使用 dwsuums 和 hzz 数据源,因此在这个类的方法中,系统可以根据上下文动态选择合适的数据源。如果你只指定了 dwsuums 而没有 hzz,当访问 hzz 中的表时会出错。

总结 @DS 注解的作用是切换数据源。在 @DS("dwsuums,hzz") 中加入 hzz 后,系统能够识别并使用 hzz 数据源,确保查询 hzz 数据库中的表时使用正确的连接,从而避免了因为数据源错误导致的“表或视图名无效”错误。 注意:如果系统要求在同一个服务中频繁切换数据源,使用 @DS 注解可以灵活地控制每个方法访问的具体数据源。

本站总访问 — 次