为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

眼眸繁星 2021-11-03 16:55:45
我想在 spring POJO 类中加载任何属性文件。实际上,我想使用 中的属性文件中的任何属性@Size,@NotNull或 spring 模型类中的任何验证注释。但问题是@Size, @NotNulletc 注释在编译时调用,而任何属性文件的数据在运行时调用。甚至,我想在其中接受唯一常量整数的max参数中使用@Size。如何加载值并将其转换为 Integer 作为常量值?我可以使用自定义验证器或任何自定义注释来解决问题,但根据组织政策,我不能使用太多自定义。
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

我发现这个问题的另一个解决方案是我们可以使用一类常量而不是属性文件。


我可以在我工作区的任何地方使用这个常量文件,而属性文件不能在Size.max模型验证的属性中使用


CommonConstants.java


public class CommonConstants 

{

    public static final int NAME=4;

    public static final int ROLE=2;

}

Employee.java


private 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() {

    return id;

}


public void setId(int id) {

    this.id = id;

}


public String getName() {

    return name;

}


public void setName(String name) {

    this.name = name;

}


public String getRole() {

    return role;

}


public void setRole(String role) {

    this.role = role;

}

EmployeeController.java


@Controller

public class EmployeeController {


private static final Logger logger = LoggerFactory.getLogger(EmployeeController.class);


private Map<Integer, Employee> emps = null;


public EmployeeController() {

    emps = new HashMap<Integer, Employee>();

}


@RequestMapping(value = "/emp/save.do", method = RequestMethod.POST)

public String saveEmployeeAction(@Valid Employee employee, BindingResult bindingResult, Model model) 

  {

    if (bindingResult.hasErrors()) {

        logger.info("Returning empSave.jsp page");

        return "empSave";

    }

    logger.info("Returning empSaveSuccess.jsp page");

    model.addAttribute("emp", employee);

    emps.put(employee.getId(), employee);

    return "empSaveSuccess";

  }

}

输出

//img1.sycdn.imooc.com//61824eae0001bc8104680122.jpg

查看完整回答
反对 回复 2021-11-03
  • 1 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信