2014-12-06 67 views
2

我正在使用Spring MVC创建一个小型验证应用程序。我对Spring MVC很新,希望确保我想要的是可能的。获取所有带注释的类并调用每种方法以获取返回值

我简化了我的问题。

我已经设置了一个控制器,当一个URL被执行时会被调用。 localhost/validate/{SOME TEXT}

{SOME TEXT}将值发送到我创建的所有验证类。 我现在有4个班,其确实验证,并返回有关验证过程中所发生的事情的另一个对象数据

4验证类:

CreditCardValidator 
AddressValidator 
ZipcodeValidator 
AccountNumberValidator 

我有一个主控制器豆调用,当我想要的将字符串传递给每个类,并从每个类返回的对象进行存储,然后最终将所有结果发回给响应。

通常,我会在没有Spring的情况下通过创建每个验证类实现的接口来执行此操作。然后迭代类的列表并执行一个方法。

这样做的问题是,无论何时我需要添加一个新的验证类,我都需要注册它,以便请求可以使用它。这涉及到修改现有的类。

因为我在这个应用程序中使用Spring很快,所以我想知道这是否可以通过Spring和注释类来完成。

我想创建一个自定义注释,每个验证类都有,然后使用spring组件扫描来获取类。这将允许我在不修改现有代码的情况下创建新的验证。

以下是我想要做的。

@Controller 
public class StringValidationController { 

    @RequestMapping(value = "/validate/{text:.+}", method = RequestMethod.GET) 
    public ModelAndView index(@PathVariable("text") String text) { 

     ModelAndView model = new ModelAndView(); 
     model.setViewName("index"); 
     model.addObject("result", getListOfValidatedData()); 

     return model; 

    } 

    public List getListOfValidatedData(){ 
     //Scan for IValidator annotation 
     //call each concrete class and pass in text 
     // get object with has validation information in it 
    } 

} 
+0

也许这将有助于:http://www.javacodegeeks.com/2013/07/spring-mvc-custom-validation-annotations.html – yname 2014-12-06 06:40:48

回答

0

here,如果你想获得它通过Spring或here做,如果你可以使用第三方解决方案。

相关问题