注記レコード->ConfigurationProperties

1988 ワード

もともとこの簡単な注釈は文章だけで書く必要はないと思って、自分でテストして、バグを発見して、やはり書いてみましょう.
正しいコードを先に貼り付けます
package com.tianci.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * Create by tianci
 * 2019/2/14 17:10
 */

@Data
@ConfigurationProperties(prefix = "mysqlconfig")
@Component
public class MysqlConfig {

    private String url;

    private String driver;

    private String username;

    private String password;
}
mysqlconfig:
  username: root
  password: root
  url: jdbc:mysql://localhost:3306/test
  driver: com.mysql.jdbc.Driver
package com.tianci.controller;

import com.tianci.config.MysqlConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Create by tianci
 * 2019/2/14 17:16
 */

@RestController
public class MysqlController {

    @Autowired
    private MysqlConfig mysqlConfig;

    @GetMapping("/getMysqlConfig")
    public void getMysqlConfig() {
        System.out.println(mysqlConfig.getUrl());
        System.out.println(mysqlConfig.getDriver());
        System.out.println(mysqlConfig.getUsername());
        System.out.println(mysqlConfig.getPassword());
    }
}
// 
jdbc:mysql://localhost:3306/test
com.mysql.jdbc.Driver
root
root

異常内容
Description:

Configuration property name 'MysqlConfig' is not valid:

    Invalid characters: 'M', 'C'
    Bean: mysqlConfig
    Reason: Canonical names should be kebab-case ('-' separated), lowercase alpha-numeric characters and must start with a letter

Action:

Modify 'MysqlConfig' so that it conforms to the canonical names requirements.

なぜなら、ネーミングが規範的ではなく、大文字ではなく、小文字を使用して、中線を引くことができるからです.