当前位置: 首页 > news >正文

湖北省建设厅乡镇污水官方网站营销推广方式都有哪些

湖北省建设厅乡镇污水官方网站,营销推广方式都有哪些,外国网站架构,物联网软件开发JPA 的读写分离配置不能应用在 Mybatis 上, 所以 Mybatis 要单独处理 为了不影响原有代码, 使用了增加拦截器的方式, 在拦截器里根据 SQL 的 CRUD 来路由到不同的数据源 需要单独增加Mybatis的配置 Beanpublic SqlSessionFactory sqlSessionFactory(DataSource dataSource) t…

JPA 的读写分离配置不能应用在 Mybatis 上, 所以 Mybatis 要单独处理

为了不影响原有代码, 使用了增加拦截器的方式, 在拦截器里根据 SQL 的 CRUD 来路由到不同的数据源

需要单独增加Mybatis的配置

    @Beanpublic SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();sessionFactory.setDataSource(dataSource);// 注册插件sessionFactory.setPlugins(new Interceptor[]{new DataSourceInterceptor()});return sessionFactory.getObject();}

部署后发现没有生效, 打断点发现 SqlSessionFactoryBean 没有注册成功, 因为是老项目, 引入的包里已经有一个  Mybatis 的配置了, 我不能直接覆盖, 所以用 BeanPostProcessor 来在原有 SqlSessionFactoryBean 初始化时加入拦截器的配置

@Bean
@ConditionalOnBean(name="routingDataSource")
public BeanPostProcessor sqlSessionFactoryBeanPostProcessor(@Qualifier("routingDataSource") DataSource routingDataSource) {return new BeanPostProcessor() {@Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {if (bean instanceof SqlSessionFactory) {SqlSessionFactory SqlSessionFactory = (SqlSessionFactory) bean;try {SqlSessionFactory.getConfiguration().addInterceptor(new DataSourceInterceptor());} catch (Exception e) {throw new RuntimeException(e);}}return bean;}}
}

部署后发现还是未生效, 调试发现是引入的包里已经定义了一个默认的数据源,而且标注了@Primary, 而原有 Mybatis 的配置里直接使用了这个数据源

于是使用了一个hack的方法, 使用反射在 Mybatis 配置 SqlSessionFactoryBean 初始化时, 把数据源重新设置成有主从配置的数据源

@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {if (bean instanceof SqlSessionFactory) {try {SqlSessionFactory sqlSessionFactory = (SqlSessionFactory) bean;org.apache.ibatis.session.Configuration configuration = sqlSessionFactory.getConfiguration();Field dataSourceField = configuration.getEnvironment().getClass().getDeclaredField("dataSource");dataSourceField.setAccessible(true);dataSourceField.set(configuration.getEnvironment(), routingDataSource);} catch (Exception e) {throw new BeansException("Failed to modify SqlSessionFactory", e) {};}}return bean;
}

再次部署测试通过

http://www.tj-hxxt.cn/news/68.html

相关文章:

  • 沣东新城开发建设集团有限公司网站下载百度导航最新版本
  • 百度站长平台网站改版工具免费发链接的网站
  • 高端品牌服装福州seo博客
  • 成都企业网站建设费用百度有效点击软件
  • 深圳婚纱摄影网站建设公司调查公司
  • 即墨网站建设哪里有神马搜索seo优化排名
  • 专门做代购的网站武汉网站竞价推广
  • 3340网站建设与管理门户网站软文
  • 财务管理咨询太原seo推广外包
  • 策划案需要给做网站吗吉林关键词排名优化软件
  • 桐城做淘宝店铺网站公司百度推广登录后台
  • 网站开发技术 难点深圳网络营销运营
  • 织梦模板添加网站地图免费自助建站平台
  • 专业网站建设webmeng培训班报名
  • 深圳做营销网站公司全面网络推广营销策划
  • 成都企业网站维护成品网站源码
  • 网站诊断表近三天新闻50字左右
  • 可以做兼职的网站免费发布广告信息的网站
  • 加强网站硬件建设方案网站内容优化方法
  • 四川宜宾网站建设企业邮箱怎么注册
  • 网站信息批量查询工具百度有免费推广广告
  • 公司注册资本多少有什么关系seo优化资源
  • 很好的网站建设互联网营销案例分析
  • 软件工具有哪些seo网络推广招聘
  • 传奇私服列表网站怎么做大兵seo博客
  • 广州做网站哪里有seosem顾问
  • 梦幻西游网页版下载seo的中文意思
  • 网站建设与管理实训心得快速网站
  • 宁夏一站式网站建设百度快速排名 搜
  • 曲靖企业网站seo排名点击软件推荐