在spring中验证构造函数

时间:2018-02-09 07:15:49

标签: spring validation notnull

问题非常简短。这两者有什么区别吗?如果不是,你使用哪一个?

第一个:

textBox1.Text=dataGridView.Rows[rowIndex].Cells[columnIndex].Value.ToString();

第二个:

private final UserRepository UserRepository;
private final UserService userService;

@Autowired
public UserServiceImpl(UserRepository userRepository, UserService userService) {
    Validate.notNull(this.userRepository = userRepository, "user cannot be null");
    Validate.notNull(this.userService = userService, "userService cannot be null");
}

1 个答案:

答案 0 :(得分:1)

事实上,null的验证是无用的,因为它从未使用过,通过在构造函数中自动装配弹簧检查它们,因为它们在doc中解释

  

Spring团队通常提倡构造函数注入,因为它使应用程序组件能够实现为不可变对象,并确保所需的依赖项不为空。

现在我们假设您为方法执行相同的模式,在这种方法中我使用第二种模式,因为它使我能够将我的验证代码与我的属性bean分开,因此在逻辑变得更复杂的任何时候我都可以简单地将验证逻辑放在另一个类中,通常我会在空验证后添加更多验证规则

一般规则任何验证过程都不需要了解有关您的属性的任何信息