Spring mvc 获取所有带注释的类并调用每个方法以获取返回值
我正在使用SpringMVC创建一个小型验证应用程序。我是SpringMVC的新手,我想确保我想要的是可能的 我简化了我的问题 我已经设置了一个控制器,在执行URL时将调用该控制器Spring mvc 获取所有带注释的类并调用每个方法以获取返回值,spring-mvc,Spring Mvc,我正在使用SpringMVC创建一个小型验证应用程序。我是SpringMVC的新手,我想确保我想要的是可能的 我简化了我的问题 我已经设置了一个控制器,在执行URL时将调用该控制器localhost/validate/{SOME TEXT} 带有的{SOME TEXT}值将被发送到我创建的所有验证类。 我目前有4个类来进行验证,并返回另一个关于验证过程中发生的事情的对象数据 4个验证类别为: CreditCardValidator AddressValidator ZipcodeValidato
localhost/validate/{SOME TEXT}
带有的{SOME TEXT}
值将被发送到我创建的所有验证类。
我目前有4个类来进行验证,并返回另一个关于验证过程中发生的事情的对象数据
4个验证类别为:
CreditCardValidator
AddressValidator
ZipcodeValidator
AccountNumberValidator
我有一个主控制器bean,当调用它时,我希望将字符串传递给每个类,并存储从每个类返回的对象,最后在响应中返回所有结果
通常,我会在没有Spring的情况下通过创建每个验证类实现的接口来实现这一点。然后在类列表中迭代并执行一个方法
这样做的问题是,每当我需要添加新的验证类时,我都需要注册它,以便请求可以使用它。这涉及到修改现有类
由于我在这个应用程序中大量使用SpringQuick,我想知道这是否可以通过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
}
}
也许这会有帮助: