Validator结构

在SpringBoot中使用javax.validation.Validator做校验时,因为涉及到国际化,想要改变语言环境,但没有发现改变的地方。所以就对整个校验的过程大概做了分析,并记录下学习心得,仅供参考。
下图是大概的结构图。
在这里插入图片描述
(1)入口类一般LocaleValidatorFactoryBean类,这个类中封装了 MessageInterpolator、ValidatorFactory等对象
(2)MessageInterpolator 类的实例是LocaleContextMessageInterpolator和AbstractMessageInterpolator,这个地方使用了代理模式,其中LocaleContextMessageInterpolator是代理类, AbstractMessageInterpolator是被代理类。
语言环境的设置, 就是在LocaleContextMessageInterpolator中。通过LocaleContextHolder.getLocale来获取Locale对象。 所以,改变LocaleContextHolder中的Locale,就可以改变语言环境。可以设置一个拦截器,每次从request中读取language参数,并更新LocaleContextHolder。
(3)根据是否有插件表达式,AbstractMessageInterpolator又可以分为两类:ParameterMessageInterpolator和ResourceBundleMessageInterpolator。 ResourceBundleMessageInterpolator会绑定指定的MessageSource, 实现多语言处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring MVC是一种基于Java的Web框架,用于开发灵活、可扩展的Web应用程序。它采用了MVC(Model-View-Controller)的设计模式,将应用程序分为三个主要的组件:模型(Model)、视图(View)和控制器(Controller)。 1. 模型(Model):模型代表应用程序的数据和业务逻辑。它可以是一个POJO(Plain Old Java Object)或者是一个持久化实体类。模型负责处理数据的读取、存储和验证,并提供数据给视图进行展示。 2. 视图(View):视图负责展示模型中的数据给用户。它可以是一个JSP页面、HTML页面或者其他类型的视图技术。视图通常使用模板引擎来动态生成页面内容,并将模型中的数据填充到相应的位置。 3. 控制器(Controller):控制器负责处理用户请求并决定如何响应。它接收用户请求,调用相应的业务逻辑处理方法,并将处理结果返回给用户。控制器通常使用注解或配置文件来映射URL和处理方法。 Spring MVC的结构可以简单描述为以下几个关键组件: 1. DispatcherServlet:作为前端控制器,接收所有的用户请求并将其分发给相应的处理器。 2. HandlerMapping:根据请求的URL映射到相应的处理器。 3. Controller:处理用户请求的业务逻辑,并返回相应的结果。 4. ViewResolver:根据处理器返回的逻辑视图名解析为具体的视图。 5. View:负责将模型数据渲染到具体的视图上,生成最终的响应结果。 6. Model:封装了处理结果的数据,供视图使用。 7. Interceptor:拦截器可以在请求处理的不同阶段进行预处理和后处理,例如权限验证、日志记录等。 8. Validator:用于对模型数据进行验证,确保数据的合法性。 以上是Spring MVC的基本结构,通过这种结构可以实现灵活、可扩展的Web应用程序开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhengjihao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值