我有 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();
}
}
我做错了什么,请帮忙!
答案 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);
}