鍍金池/ 問(wèn)答/Java  HTML/ spring boot 讀取.yml失敗

spring boot 讀取.yml失敗

1、application.yml

spring:
  profiles:
    active: dev
  datasource:
    url: jdbc:mysql://192.168.2.201:3306/pmsd?useUnicode=true&characterEncoding=utf8&ssl=false
    username: app_pmsd
    password: 635151_Itp
    driver-class-name: com.mysql.jdbc.Driver
    druid:
      initial-size: 1
      minIdle: 5
      maxActive: 20
      timeBetweenEvictionRunsMillis: 60000
      minEvictableIdleTimeMillis: 300000

2、DataSourceProperties.java

@Component
@ConfigurationProperties(prefix = "spring.datasource")
public class DataSourceProperties {
    private String url;
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
}

3、MybatisConfigurer.java

@Configuration
public class MybatisConfigurer {
    @Autowired
    private DataSourceProperties dataSourceProperties;
    @Bean(name = "dataSource")
    public DataSource dataSource() {
        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setUrl(dataSourceProperties.getUrl());
        //druidDataSource.setUsername(dataSourceProperties.getUserName());
        //druidDataSource.setPassword(dataSourceProperties.getPassWord());
        //druidDataSource.setDriverClassName(dataSourceProperties.getDriverClassName());
        return druidDataSource;
    }
   }

4、pom.xml有引用

 <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
  </dependency>

代碼如上,我在獲取dataSourceProperties得到的是null,請(qǐng)問(wèn)各位大神是哪里寫(xiě)的不對(duì)呢?謝謝

回答
編輯回答
過(guò)客

DataSourceProperties 里加入代碼

 public DataSource config(DruidDataSource dataSource){
        dataSource.setUrl(url);
        return dataSource;
 }

MybatisConfigurer里修改為

    @Bean
    public DruidDataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        druidProperties.config(dataSource);
        return dataSource;
    }
2018年5月6日 01:27
編輯回答
嫑吢丕

已經(jīng)解決。原因是我在MybatisConfigurer類(lèi)中還有另外一個(gè)方法MapperScannerConfigurer造成的,因?yàn)閟pring會(huì)首先執(zhí)行MapperScannerConfigurer方法,在執(zhí)行的時(shí)候還沒(méi)有創(chuàng)建sqlsessionFactory,所以就會(huì)造成空指針異常

2017年11月14日 19:27