not registered via @EnableConfigurationProperties or marked as Spring component

 

利用@ConfigurationProperties(prefix = "")来绑定属性时报错:
not registered via @EnableConfigurationProperties or marked as Spring component
 
POM依赖
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>
 
注解需要
    @EnableAutoConfiguration
    @RestController
    @EnableConfigurationProperties({BookController.class})
    @ConfigurationProperties(prefix = "book")
    
    
    正是缺少@EnableConfigurationProperties({BookController.class}),才报该错的
    
    
代码
 
=========================BookController.class====================
 1 package controller;
 2  
 3 import org.springframework.beans.factory.annotation.Value;
 4 import org.springframework.boot.SpringApplication;
 5 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 6 import org.springframework.boot.context.properties.ConfigurationProperties;
 7 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 8 import org.springframework.web.bind.annotation.RequestMapping;
 9 import org.springframework.web.bind.annotation.RestController;
10 @EnableAutoConfiguration
11 @RestController
12 @RequestMapping
13 @ConfigurationProperties(prefix = "book")
14 public class BookController {
15 //    @Value("${book.author}")
16     private String author;
17 //
18 //    @Value("${book.name}")
19     private String name;
20  
21     @RequestMapping("/bookInfo")
22     public String showInfo(){
23         return author + ":" + name;
24     }
25  
26 }

 

==================================application.yml===============
1  
2 book:
3   author: Tom
4   name: Springboot

 

=========================DemoConfig.class====================
 1  
 2 package controller;
 3  
 4 import org.springframework.boot.SpringApplication;
 5 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 6  
 7  
 8 @EnableConfigurationProperties({BookController.class})
 9 public class DemoConfig {
10     public static void main(String[] args) {
11  
12         SpringApplication.run(BookController.class,args);
13     }
14 }

 

 
posted @ 2019-06-24 09:17  夏天换上冬装  阅读(3531)  评论(0编辑  收藏  举报