SpringBoot @value 注解取不到值的问题

关于 @value 的 springapplication 容器的问题

1. 在 src/main/resources 下创建 stu.properties 文件

##
student.name=Tom
student.age=22
student.birthday=1996/01/10
student.sex=true
student.hobbies[0]=swimming
student.hobbies[1]=basketball
student.skills[0]=programming
student.skills[1]=test
student.address.province=henan
student.address.city=zhengzhou

2. 创建实体类

package com.fcy.entity;

import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
@Component
@PropertySource({"classpath:stu.properties"})
public class Student {
		@Value("${student.name}")
		private String name;
		@Value("${student.age}")
		private int age;
		@Value("${student.sex}")
		private boolean sex;
		@Value("${student.birthday}")
		private Date birthday;
		private String[] hobbies;
		private List<String> skills;
		private Map<String, Object> address;
	//省略getter和setter方法
}

3. 错误的方法

@RestController
public class StudentController {
	@RequestMapping("/getStu")
	public Student getStu() {
		Student stu=new Student();
		System.out.println(stu);
		return stu;
	}
}

  1. 效果如图

20181017121608730.png

5. 正确的方法为
20181017121748888.png

在这里插入图片描述
总结:从上面方法得知,第一种方法没有获取到值是因为没有在 springapplication 容器里获取 student 的 bean,因为在实体类加上了 @comment 注解,这个注解就是把 student 变成一个 bean,才能读取到,不能 new 一个对象调用