猿问

如何在编译时使用 spring 加载任何属性文件?

我想在 spring POJO 类中加载任何属性文件。

实际上,我想使用 中的属性文件中的任何属性@Size@NotNull或 spring 模型类中的任何验证注释。

但问题是@Size@NotNulletc 注释在编译时调用,而任何属性文件的数据在运行时调用。

甚至,我想在其中接受唯一常量整数的max参数中使用@Size。如何加载值并将其转换为 Integer 作为常量值?

我可以使用自定义验证器或任何自定义注释来解决问题,但根据组织政策,我不能使用太多自定义。


眼眸繁星
浏览 140回答 1
1回答

DIEA

我发现这个问题的另一个解决方案是我们可以使用一类常量而不是属性文件。我可以在我工作区的任何地方使用这个常量文件,而属性文件不能在Size.max模型验证的属性中使用CommonConstants.javapublic class CommonConstants&nbsp;{&nbsp; &nbsp; public static final int NAME=4;&nbsp; &nbsp; public static final int ROLE=2;}Employee.javaprivate int id;@Size(max = CommonConstants.NAME, message = "length exceeds : name")private String name;@Size(max = CommonConstants.ROLE, message = "length exceeds : role")private String role;public int getId() {&nbsp; &nbsp; return id;}public void setId(int id) {&nbsp; &nbsp; this.id = id;}public String getName() {&nbsp; &nbsp; return name;}public void setName(String name) {&nbsp; &nbsp; this.name = name;}public String getRole() {&nbsp; &nbsp; return role;}public void setRole(String role) {&nbsp; &nbsp; this.role = role;}EmployeeController.java@Controllerpublic class EmployeeController {private static final Logger logger = LoggerFactory.getLogger(EmployeeController.class);private Map<Integer, Employee> emps = null;public EmployeeController() {&nbsp; &nbsp; emps = new HashMap<Integer, Employee>();}@RequestMapping(value = "/emp/save.do", method = RequestMethod.POST)public String saveEmployeeAction(@Valid Employee employee, BindingResult bindingResult, Model model)&nbsp;&nbsp; {&nbsp; &nbsp; if (bindingResult.hasErrors()) {&nbsp; &nbsp; &nbsp; &nbsp; logger.info("Returning empSave.jsp page");&nbsp; &nbsp; &nbsp; &nbsp; return "empSave";&nbsp; &nbsp; }&nbsp; &nbsp; logger.info("Returning empSaveSuccess.jsp page");&nbsp; &nbsp; model.addAttribute("emp", employee);&nbsp; &nbsp; emps.put(employee.getId(), employee);&nbsp; &nbsp; return "empSaveSuccess";&nbsp; }}输出
随时随地看视频慕课网APP

相关分类

Java
我要回答