paulwong

          spring cloud項目讀取配置管理

          摘要
          spring cloud config server配置好了數據庫連接信息,這個項目讀取config,獲取連接信息。這里以mybtis作為列子。從服務器讀取jdbc信息后,運行mybatis程序。

          確認服務是否成功
          http://localhost:8888/demo-config/test
          {"name":"demo-config","profiles":["test"],"label":"master","version":"02d28ad4925aa9bd1bf8a48d2edbf04ce61aa45a","propertySources":[{"name":"https://git.oschina.net/penghaozhong/demo.git/demo-config-repo/demo-config-test.properties","source":{"jdbc.url":"jdbc:mysql://localhost:3306/demo?characterEncoding=UTF-8","jdbc.username":"root","jdbc.driver":"com.mysql.jdbc.Driver","jdbc.password":"xxxxxx","jdbc.type":"mysql"}}]}

              2. 配置讀取配置文件

            



          在bootstrap.properties中添加讀取配置管理的地址。

          3. 讀取配置文件屬性,這里采用@ConfigurationProperties
          /**
           * 讀取數據庫配置文件
           * 
          @author penghaozhong
           *
           
          */
          @ConfigurationProperties(prefix = DataSourceProperties.PREFIX, ignoreUnknownFields = false)
          public  class  DataSourceProperties {
              
                  public DataSourceProperties() {
                  super();
              }
                  //對應配置文件里的配置鍵
                  public final static String PREFIX="jdbc";    
                  
                  private String type; 
                  private String driver; 
                  private String url; 
                  private String username; 
                  private String password;
                  
                  public String getType() {
                      return type;
                  }
                  public void setType(String type) {
                      this.type = type;
                  }
                  public String getDriver() {
                      return driver;
                  }
                  public void setDriver(String driver) {
                      this.driver = driver;
                  }
                  public String getUrl() {
                      return url;
                  }
                  public void setUrl(String url) {
                      this.url = url;
                  }
                  public String getUsername() {
                      return username;
                  }
                  public void setUsername(String username) {
                      this.username = username;
                  }
                  public String getPassword() {
                      return password;
                  }
                  public void setPassword(String password) {
                      this.password = password;
                  }

          }


          4. 配置mybatis
          @Configuration
          @MapperScan("com.phz.test.spring.cloud.demo")
          @EnableConfigurationProperties(DataSourceProperties.class)
          @EnableTransactionManagement
          public class MybatisDataSource {

              // mybaits mapper xml搜索路徑
              private final static String MAPPERLOCATIONS = "classpath:/mappings/**/*.xml";
              private final static String CONFIGLOCATION = "classpath:/mybatis-config.xml";

              @Autowired
              private  DataSourceProperties dataSourceProperties;
              private DruidDataSource datasource = null;

              @Bean(destroyMethod = "close")
              public  DataSource dataSource(){
                  datasource = new DruidDataSource();  
                  datasource.setUrl(dataSourceProperties.getUrl());
                  datasource.setDbType(dataSourceProperties.getType());
                  datasource.setDriverClassName(dataSourceProperties.getDriver());
                  datasource.setUsername(dataSourceProperties.getUsername());
                  datasource.setPassword(dataSourceProperties.getPassword());
                  return datasource;
              }

              @PreDestroy
              public void close() {
                  if(datasource != null){
                      datasource.close();
                  }
              }

              @Bean
              public SqlSessionFactory sqlSessionFactoryBean() throws Exception {
                  SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
                  sqlSessionFactoryBean.setDataSource(dataSource());
                  PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
                  sqlSessionFactoryBean.setMapperLocations(resolver.getResources(MAPPERLOCATIONS));
                  sqlSessionFactoryBean.setConfigLocation(resolver.getResource(CONFIGLOCATION));
                  sqlSessionFactoryBean.setTypeAliasesPackage("com.phz.test.spring.cloud.demo.entity");
                  return sqlSessionFactoryBean.getObject();
              }

              @Bean
              public PlatformTransactionManager transactionManager() {
                  return new DataSourceTransactionManager(dataSource());
              }

          }











          posted on 2016-09-11 16:26 paulwong 閱讀(2005) 評論(0)  編輯  收藏 所屬分類: MICROSERVICESPRING CLOUD

          主站蜘蛛池模板: 揭阳市| 游戏| 乌兰县| 合肥市| 广西| 万年县| 黄龙县| 土默特左旗| 曲沃县| 额济纳旗| 象州县| 六盘水市| 刚察县| 东丽区| 辽宁省| 沙湾县| 和静县| 汶川县| 大新县| 民勤县| 马龙县| 和平县| 丹江口市| 荥经县| 彭州市| 湄潭县| 淮滨县| 呼图壁县| 兴文县| 肇州县| 岚皋县| 兰溪市| 永平县| 定州市| 黄石市| 安西县| 陵川县| 常州市| 临朐县| 封丘县| 江陵县|