SpringBoot 使用yml文件配置 @value注解取不到值的问题

本文探讨了在Spring Boot应用中如何正确加载application.yml配置文件中的属性到实体类。通过对比错误和正确的做法,强调了@Autowired注解的重要性,并展示了如何避免直接new实体类导致的配置读取失败。
摘要由CSDN通过智能技术生成

application.yml:

# 服务端口设置
server:
  port: 8881
# yml文件测试信息
book.name: SpringCloudInAction
book.author: ZaiYongChao

实体类:

package com.example.springboot.entity;

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Data
@Component
public class Book {
  @Value("${book.name}")
  private String name;//书名
  @Value("${book.author}")
  private String author;//作者

}

测试类:

@Test
  public void ConfigurationTest() {
    Book book = new Book();
    System.out.println("书名: " + book.getName());
    System.out.println("作者: " + book.getAuthor());
  }

运行结果:

================
书名: null
作者: null
================

原因:不应该直接new出实体类对象,应该使用@Autowired注解注入

修改后的测试类:

  @Autowired
  private Book book;
  @Test
  public void ConfigurationTest() {
    //Book book = new Book();
    System.out.println("书名: " + book.getName());
    System.out.println("作者: " + book.getAuthor());
  }

运行结果:

================
书名: SpringCloudInAction
作者: ZaiYongChao
================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值