Java 设计模式来验证请求?
我有下面的界面。我正在使用Java7和Spring3.0Java 设计模式来验证请求?,java,spring,validation,design-patterns,java-ee-7,Java,Spring,Validation,Design Patterns,Java Ee 7,我有下面的界面。我正在使用Java7和Spring3.0 public interface Maintain{ void save(Request request); Request getRequest(String id); void delete(Request request); void update(Request request); } public class MaintainImpl implements Maintain{ public void save
public interface Maintain{
void save(Request request);
Request getRequest(String id);
void delete(Request request);
void update(Request request);
}
public class MaintainImpl implements Maintain{
public void save(Request request){
//Need to validate the request before saving.
//Need to throw run time exception if validation fails
}
public void getRequest(String id){
//Need to validate the id before getting the results.
//Need to throw run time exception if validation fails
}
//Similarly i need to implement other 2 methods
}
要验证请求,请执行以下操作:
我计划编写一个接口和4个impl类,它们将具有验证逻辑
public interface validate{
boolan validate();
}
public class SaveRequestValidator implements validate{
public boolean validate(){
//validation logic
}
}
public class GetRequestValidator implements validate{
public boolean validate(){
//validation logic
}
}
public class DeleteRequestValidator implements validate{
public boolean validate(){
//validation logic
}
}
public class UpdateRequestValidator implements validate{
public boolean validate(){
//validation logic
}
}
现在,我可以通过将这四个验证器注入到maintainpl.java中来执行验证了吗
这是个好习惯吗?有更好的设计吗?或者我可以在一个类中保留所有验证并提供静态方法吗
谢谢 因为您使用的是Spring,所以可以使用Spring AOP或AspectJ在应用程序中执行非交叉关注点,如您要求的验证
请参阅Spring3支持JSR303bean验证规范- 这意味着您可以通过类上的注释验证(例如,您的请求)参数的某些方面
如果您想实现自定义验证方法,那么您可能应该使用javax.validation.ConstraintValidator。Phil,您能给我举个例子吗?谢谢蒂亚加,你能给我举个例子吗?谢谢看看这个url,其中定义了切入点使用方面。您可以使用Around注释拦截对maintainpl的调用,并在该Around注释中使用验证逻辑。