加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

一个项目的SpringCloud微服务改造过程

发布时间:2019-08-07 23:34:41 所属栏目:建站 来源:黄玲峰
导读:SSO是公司一个已经存在了多少年的项目,后端回收SpringMVC、MyBatis,数据库行使MySQL,前端展示行使Freemark。本年,我们对该项目举办了一次革命性的改造,将其改革成SpringCloud架构,而且把前后端疏散,前端回收Vue框架。 一、行使SpringCloud架构举办

通过引入mybatis-spring-boot-starter依靠,可以简朴设置mybatis上手行使。
下面简朴说明mybatis-starter的源码以及怎样设置mybatis。 
先看mybatis-spring-boot-starter中mybatis-spring-boot-autoconfigure的spring.factories文件。

  1. # Auto Configure 
  2. org.springframework.boot.autoconfigure.EnableAutoConfiguration=org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration 

可以看到自动注入类是MybatisAutoConfiguration,我们从这个类入手说明可以知道,必需先建设好了数据源后,才会加载MyBatis的sqlSessionFactory。

@EnableConfigurationProperties({MybatisProperties.class})注解指定了设置文件中 prefix = "mybatis" 那部门属性有用,这部门属性值将注入到已建设的SqlSessionFactoryBean中,最后天生SqlSessionFactory工具。

  1. @Configuration 
  2. //当SqlSessionFactory,SqlSessionFactoryBean存在的环境下加载当前Bean 
  3. @ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class}) 
  4. //当指定命据源在容器中只有一个可能有多个可是只指定首选数据源 
  5. @ConditionalOnSingleCandidate(DataSource.class) 
  6. @EnableConfigurationProperties({MybatisProperties.class}) 
  7. //当数据源注入到Spring容器后才开始加载当前Bean 
  8. @AutoConfigureAfter({DataSourceAutoConfiguration.class}) 
  9. public class MybatisAutoConfiguration implements InitializingBean { 
  10.     private final MybatisProperties properties; 
  11.     @Bean 
  12.     @ConditionalOnMissingBean 
  13.     public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception { 
  14.         SqlSessionFactoryBean factory = new SqlSessionFactoryBean(); 
  15.         factory.setDataSource(dataSource); 
  16.         factory.setVfs(SpringBootVFS.class); 
  17.        //配置mybatis设置文件地址路径 
  18.         if (StringUtils.hasText(this.properties.getConfigLocation())) { 
  19.           factory.setConfigLocation(this.resourceLoader.getResource 
  20.           (this.properties.getConfigLocation())); } 
  21.         } 
  22.       //配置其他MyBatisProperties工具中有的属性略.... 
  23.        return factory.getObject(); 
  24.    } 
  25. }

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读