尝试读取属性文件Spring

时间:2019-02-02 04:20:28

标签: java spring spring-boot properties


我有 Employee 类,其中包含实用程序方法。

@Service
    public class Employee {

        @Value("${Employee.name}")
        private String firstName;

        List<String> employees = Arrays.asList(firstName);

        public List<String> allEmplyees() {
            System.out.println("First Name ::" + firstName);
            return employees;
        }

        public int numberOfEmployees() {
            return employees.size();
        }
    }

我正在读取Employee类中的属性文件,并在方法中使用值。
我有第二类消费者,该类自动装配 Employee 类并调用其方法。
问题
当我从Consumer类调用 allEmployees 方法时,我得到 [null]
示例:

消费阶层

@RestController
public class StudentController {
@Autowired
    private Employee employee;
    @RequestMapping(method = RequestMethod.GET, value = "/test")
    public String testMe(){
        return employee.allEmplyees().toString();

    }
}



我做错了什么,请帮忙!

1 个答案:

答案 0 :(得分:0)

 List<String> employees = Arrays.asList(firstName);

Arrays.asList()将返回一个ArrayList,它是Arrays内部的一个私有静态类,而不是java.util.ArrayList类。 要添加更多内容,在创建bean后,将处理@Value批注。因此,您可以在Spring注入@PostConstruct字段或将其作为构造函数的参数后,使用@Value来设置实例变量。

    private List<String> employees = new ArrayList<>();

    @PostConstruct
    public void init() {
        this.employees.add(firstName);
    }

    private String firstName;

    List<String> employees = null;


    public Employee(@Value("${Employee.name}") String name) {
        this.firstName = name;
        this.employees = Arrays.asList(firstName);
    }