当前位置: 首页 > news >正文

外管局网站怎么做报告网站域名所有权

外管局网站怎么做报告,网站域名所有权,成都手机网站设计,drupal还是wordpress好前言 欢迎来到《Spring MVC Day 11: 零XML配置》#xff01;在之前的学习中#xff0c;我们已经掌握了如何使用Spring MVC框架构建灵活、高效的Web应用程序。然而#xff0c;我们可能还记得那些繁琐的XML配置文件#xff0c;它们是我们在过去几天中使用的方式。 好消息是…前言 欢迎来到《Spring MVC Day 11: 零XML配置》在之前的学习中我们已经掌握了如何使用Spring MVC框架构建灵活、高效的Web应用程序。然而我们可能还记得那些繁琐的XML配置文件它们是我们在过去几天中使用的方式。 好消息是今天我们将告别这种繁琐的XML配置文件在本文中我们将介绍如何在Spring MVC中实现零XML配置通过使用全注解和Java配置类来代替传统的XML配置文件。这将使我们的代码更加简洁、可读性更强并且更加符合现代化的开发模式。 我们将逐步学习如何使用注解来替代XML配置文件的各个方面包括控制器、请求映射、视图解析器等。通过这种新的方式你会发现编写和维护Spring MVC应用程序将变得更加轻松和高效。 一、前期准备 1、新建项目结构如下 2、导入依赖 dependencies!-- springmvc 依赖会将spring的核心包一并添加进来 --!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion5.3.23/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.30/version/dependencydependencygroupIdch.qos.logback/groupIdartifactIdlogback-classic/artifactIdversion1.4.5/version/dependency!-- 集成 hibernata bean 验证器 --dependencygroupIdorg.hibernate.validator/groupIdartifactIdhibernate-validator/artifactIdversion6.0.13.Final/version/dependency!-- 上传组件 --dependencygroupIdcommons-fileupload/groupIdartifactIdcommons-fileupload/artifactIdversion1.3.1/version/dependency/dependencies 3、在 resources 包下新建一个 message.properties  user.username 请输入用户名 user.password 请输入密码 用于表单验证非空判断的信息。 4、新建一个 User 类 Data public class User {NotEmpty(message {user.userName})private String userName;NotEmpty(message {user.password})private String password;} 该类使用了Data注解这个注解是Lombok库中的一个注解它自动为类生成了一些通用的方法如equals()、hashCode()、toString()等。 此外User类中还有两个成员变量userName和password它们都使用了NotEmpty注解。NotEmpty注解是Hibernate Validator库中的一个注解用于验证字符串不能为空。在这个例子中如果userName或password为空将会抛出一个包含特定错误消息的异常。 总体而言这段代码定义了一个简单的用户类在进行数据校验时要求用户名和密码均不能为空。通过使用Data和NotEmpty注解我们可以简化代码并且在需要验证用户输入时提供了方便的方式。 5、编写一个登录拦截器 LoginInterceptor Slf4j public class LoginInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {log.info(执行拦截器的 preHandle 方法);return true;}Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {log.info(执行拦截器的 postHandle 方法);}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {log.info(执行拦截器的 afterCompletion 方法);}}在拦截器的postHandle方法中通过重写postHandle方法你可以在请求处理之后、渲染视图之前执行一些操作。在这个例子中拦截器又打印了一条日志信息表示正在执行postHandle方法。 在拦截器的afterCompletion方法中通过重写afterCompletion方法你可以在请求完成之后执行一些操作。在这个例子中拦截器同样打印了一条日志信息表示正在执行afterCompletion方法。 需要注意的是拦截器需要注册到Spring MVC的配置中才能生效。你可以通过配置WebMvcConfigurer或者使用Configuration注解的配置类来注册拦截器。 在实际应用中你可以根据具体需求在拦截器的各个方法中编写自己的业务逻辑例如登录验证、权限控制等。拦截器是一种强大的工具可以用于在请求处理过程中进行预处理和后处理操作。 6、编写一个 Controler  RestController public class UserController {PostMapping(/add)public Integer add(Valid User user){return HttpStatus.OK.value();}} 在方法上使用了PostMapping(/add)注解来指定对应的请求路径和请求类型。同时你还使用了Valid注解表示需要对User对象进行数据校验。 如果User对象中的userName或password为空将会抛出包含特定错误消息的异常。如果数据校验成功add方法将返回HTTP状态码200表示请求处理成功。 二、创建 MvcConfig、WebConfig 配置类 1、MvcConfig 配置类 1静态资源处理方式一 // 声明为配置类 Configuration // 启用包扫描 ComponentScan(basePackages edu.nf.ch11) // 启用 mvc 注解驱动(等效于mvc:annotation-driven/) EnableWebMvc // 实现 WebMvcConfigurer 接口用于覆盖默认的配置 public class MvcConfig implements WebMvcConfigurer {/*** 配置类支持依赖注入配置类也是容器管理的*/ // Autowired // private LoginInterceptor loginInterceptor;/*** 静态资源处理方式一使用容器默认的 servlet 来处理* 注意重写 WebMvcConfig 接口方法时不需要使用 Bean* 注解来装配*/Overridepublic void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {// enable() 方法表示启用容器默认 servlet 处理静态资源configurer.enable();} } 这段代码是Spring MVC的配置类具体功能和作用如下 Configuration注解表示这是一个配置类会被Spring容器扫描并进行管理。 ComponentScan注解启用包扫描指定要扫描的基础包路径为edu.nf.ch11。这个注解让Spring自动扫描并注入带有特定注解的组件使得它们能够被容器管理。 EnableWebMvc注解启用MVC注解驱动相当于XML配置文件中的mvc:annotation-driven/标签。这个注解会自动注册一些默认的组件例如处理器映射、参数解析器和视图解析器等以支持使用注解来简化开发。 实现WebMvcConfigurer接口用于覆盖默认的配置。通过实现这个接口可以对Spring MVC的配置进行个性化定制。 configureDefaultServletHandling方法重写了WebMvcConfigurer接口的方法通过调用configurer.enable()启用容器默认的servlet来处理静态资源。这样不需要再额外配置静态资源的处理容器会自动处理静态资源的访问请求。 注释掉了Autowired和private LoginInterceptor loginInterceptor部分代码。这部分代码可能是用于注入并配置一个登录拦截器但在这个配置类中被注释掉了可能是因为其他原因。 总之这段代码是Spring MVC的配置类用于配置和定制Spring MVC的行为和功能包括启用包扫描、启用MVC注解驱动以及处理静态资源等。可以根据具体需求进行个性化配置和定制。 2静态资源处理方式二 /*** 静态资源处理方式二由 springmvc 处理静态资源* 页面上以 page 开头的页面都放到 static 管理* param registry*/Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler(/page/**).addResourceLocations(/static/);} 具体功能和作用如下 创建一个ResourceHandlerRegistry对象实例该类是Spring MVC提供的静态资源处理注册器用于注册和配置静态资源的处理方式。 使用.addResourceHandler(/page/**)设置映射的URL路径模式即当请求路径符合/page/**的格式时将会被映射到静态资源处理器进行处理。 使用.addResourceLocations(/static/)设置静态资源的存放位置即指定静态资源文件所在的目录。在这个例子中将会把以/page/开头的请求映射到/static/目录下的对应静态资源文件。 通过这种方式可以方便地处理和管理静态资源使得在页面上以/page/开头的请求能够正常访问对应的静态资源文件。 3装配 Bean 验证器 /*** 装配 Bean 验证器*/Overridepublic Validator getValidator() {LocalValidatorFactoryBean factoryBean new LocalValidatorFactoryBean();// 使用 Hibernate 框架提供的 Bean 验证器factoryBean.setProviderClass(HibernateValidator.class);// 指定资源文件ReloadableResourceBundleMessageSource messageSource new ReloadableResourceBundleMessageSource();messageSource.setBasename(classpath:message);messageSource.setDefaultEncoding(UTF-8);// 装配给 factoryBeanfactoryBean.setValidationMessageSource(messageSource);return factoryBean;} 具体功能和作用如下 创建一个LocalValidatorFactoryBean实例该类是Spring提供的验证器工厂类用于创建验证器对象。 使用factoryBean.setProviderClass(HibernateValidator.class)设置验证器的提供者为Hibernate Validator。Hibernate Validator是一个基于Hibernate框架的验证器实现提供了丰富的验证规则和错误消息。 创建一个ReloadableResourceBundleMessageSource实例用于指定验证器的错误消息资源文件。setBasename(classpath:message)指定了资源文件的路径为classpath:message即在classpath下的message.properties文件中查找错误消息。 使用setDefaultEncoding(UTF-8)设置资源文件的编码格式为UTF-8确保正确读取错误消息中的中文字符。 将上述创建的messageSource对象通过factoryBean.setValidationMessageSource(messageSource)方法装配给factoryBean将资源文件配置到验证器中。 最后返回factoryBean即返回了一个已经配置好的Hibernate Validator作为Bean验证器。 通过这种方式可以使用Hibernate Validator作为验证器并配置自定义的错误消息资源文件从而实现对请求参数进行校验并返回相应的错误信息。 4) 装配 commons-upload 上传解析器 /*** 装配 commons-upload 上传解析器*/Beanpublic CommonsMultipartResolver multipartResolver(){CommonsMultipartResolver resolver new CommonsMultipartResolver();// 设置文件上传的大小resolver.setMaxUploadSize(104857600);// 设置编码resolver.setDefaultEncoding(UTF-8);return resolver;}具体功能和作用如下 创建一个CommonsMultipartResolver对象实例该类是Spring提供的文件上传解析器用于解析客户端传来的Multipart请求即包含文件流的请求。 使用setMaxUploadSize(104857600)设置最大上传文件的大小单位为字节。在这个例子中最大允许上传100MB的文件。 使用setDefaultEncoding(UTF-8)设置编码格式为UTF-8确保正确解析文件名和文件内容中的中文字符。 将创建好的resolver对象返回作为配置好的上传解析器Bean。 通过这种方式可以方便地配置和管理文件上传解析器以便处理文件上传相关的请求。 5装配拦截器 /*** 装配拦截器*/Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new LoginInterceptor()).addPathPatterns(/**).excludePathPatterns(/static/login.html,/static/js/**,/static/css/**,/login);} 具体功能和作用如下 创建一个InterceptorRegistry对象实例该类是Spring提供的拦截器注册器用于注册拦截器。 使用registry.addInterceptor(new LoginInterceptor())将自定义的LoginInterceptor拦截器添加到拦截器注册器中。 使用.addPathPatterns(/**)设置需要拦截的请求路径即所有请求都需要被该拦截器拦截。 使用.excludePathPatterns()设置不需要拦截的请求路径即在该拦截器之外的请求这里排除了静态资源文件和登录页面等请求。 最后的效果是当有请求时会先进入LoginInterceptor拦截器进行判断是否已经登录。如果未登录则将请求转发到登录页面进行登录如果已经登录则放行请求继续处理。 通过这种方式可以方便地配置和管理拦截器以便对请求进行统一处理和验证。 6跨域配置 /*** 跨域配置*/Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping(/**).allowedOrigins(*).allowedMethods(*).allowedHeaders(*).exposedHeaders(*);// 跨域时时候允许传递 cookie,默认是不允许的//.allowCredentials(true);}具体功能和作用如下 创建一个CorsRegistry对象实例该类是Spring提供的跨域配置注册器用于注册跨域请求的配置。 使用.addMapping(/**)设置需要进行跨域配置的请求路径模式这里使用通配符/**表示所有请求都需要跨域配置。 使用.allowedOrigins(*)设置允许的来源即允许跨域请求的来源域名。在这个例子中使用通配符*表示允许任何域名发起跨域请求。 使用.allowedMethods(*)设置允许的HTTP方法即允许跨域请求的HTTP方法。在这个例子中使用通配符*表示允许任何HTTP方法。 使用.allowedHeaders(*)设置允许的请求头即允许跨域请求携带的请求头。在这个例子中使用通配符*表示允许任何请求头。 使用.exposedHeaders(*)设置允许暴露的响应头即允许跨域请求返回的响应头信息。在这个例子中使用通配符*表示允许任何响应头。 可选的使用.allowCredentials(true)设置是否允许跨域请求携带cookie。默认情况下浏览器在跨域请求中是不会发送cookie的需要显示地设置为true才能够携带cookie。 通过这种方式可以方便地配置和管理跨域请求的相关参数以便应对跨域请求场景。 7配置内部资源解析器 /*** 配置内部资源视图解析器*/Beanpublic InternalResourceViewResolver viewResolver(){InternalResourceViewResolver viewResolver new InternalResourceViewResolver();viewResolver.setPrefix(/WEN-INF/jsp/);viewResolver.setSuffix(.jsp);return viewResolver;} 具体功能和作用如下 使用Bean注解将该方法声明为一个Spring Bean。 创建一个InternalResourceViewResolver对象实例该类是Spring MVC提供的视图解析器用于解析JSP视图。 使用.setPrefix(/WEN-INF/jsp/)设置JSP文件所在的目录路径即指定模板文件的存放位置。在这个例子中将会在/WEB-INF/jsp/目录下查找JSP文件。 使用.setSuffix(.jsp)设置JSP文件的后缀名即指定JSP文件的文件类型。在这个例子中将会查找后缀名为.jsp的文件。 返回InternalResourceViewResolver对象实例。 通过这种方式可以方便地进行JSP视图解析使得在控制器中返回的逻辑视图名能够正确解析对应的JSP视图文件。 2、配置 WebConfig /*** Date 2023-10-30* Author qiu* webConfig 配置类用于取代 web.xml* 在继承的父类中已经帮我们创建了 dispatcherServlet 并初始化* 只需要在重写的 getServletMappings 方法中指定映射的地址即可* 相当于 web.xml 中的 url-pattern//url-pattern*/ public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer {/*** 加载主配置类* return*/Overrideprotected Class?[] getRootConfigClasses() {return new Class[0];}/*** 加载 MVC 的配置类* return*/Overrideprotected Class?[] getServletConfigClasses() {return new Class[]{MvcConfig.class};}/*** 给 dispatcherServlet 配置 url-pattern* return*/Overrideprotected String[] getServletMappings() {return new String[]{/};}}具体作用和功能如下 继承自AbstractAnnotationConfigDispatcherServletInitializer这是Spring提供的一个抽象类用于帮助我们进行基于注解的Spring MVC配置。 重写getRootConfigClasses()方法用于加载主配置类。在这个例子中返回一个空数组表示没有额外的根配置类需要加载。 重写getServletConfigClasses()方法用于加载MVC的配置类。在这个例子中返回一个包含MvcConfig类的数组表示加载MvcConfig类作为MVC的配置类。 重写getServletMappings()方法用于给dispatcherServlet配置URL映射。在这个例子中返回一个包含/的字符串数组表示将所有请求都映射到dispatcherServlet上。 通过这种方式可以在Java代码中灵活配置Spring MVC取代传统的使用web.xml进行配置的方式。这样可以更方便地管理和维护项目的配置并且提高了代码的可读性和可维护性。 三、使用配置类配置 springMvc 有什么好处  使用配置类来配置Spring MVC有以下好处 基于JavaConfig无需XML使用配置类可以完全基于Java代码来完成Spring MVC的配置不再需要使用XML文件来进行配置。 可以使用更加面向对象的方式通过配置类可以使用更加面向对象的方式来进行配置而不是XML中的标签式配置这样更加符合Java开发者的习惯和编码风格。 代码结构清晰使用配置类可以将不同功能的配置分离到不同的类中使得代码结构更加清晰易于维护和扩展。 更加灵活使用配置类可以方便地实现条件化配置、根据环境变量或系统属性动态调整配置等功能从而让配置更加灵活。 与其他Spring特性集成使用配置类可以方便地与其他Spring特性如Spring Boot、Actuator、Security等集成从而让整个应用程序更加协调和一致。 总之使用配置类配置Spring MVC可以提高代码的可读性、可维护性和可扩展性并且可以更好地与其他Spring特性集成是目前推荐的一种配置方式。 四、gitee 案例 地址ch11 · qiuqiu/SpringMVC - 码云 - 开源中国 (gitee.com)
http://www.zqtcl.cn/news/724466/

相关文章:

  • 网站开发建设赚钱吗巩义旅游网站建设公司
  • 网站建设代码介绍网站顶部导航代码
  • 帮别人做网站需要什么能力sem专员
  • 无锡网站建设 app推广软件
  • 免费入驻的外贸网站网站建设怎么打开
  • 怎么做中英文网站网站建设费做什么
  • 信阳网站建设汉狮怎么样做曖視頻网站
  • 做电影电视剧网站推广移动应用开发是什么意思
  • 网站排名优化策划中山搜索引擎优化
  • 网站建设培训证书平台型网站建设预算表
  • 网站建设后压缩代码网站如何做进一步优化
  • 大型旅游网站源码 织梦襄阳网站建设楚翼网络
  • 快速搭建网站服务器做历史卷子的网站
  • 淘口令微信网站怎么做通化seo招聘
  • 帮人做传销网站违法吗深圳也放开了
  • 发布程序后网站有很多促销策略
  • 网页网站项目综合网站建设合同.doc
  • 网站建设公司黄页企业vi系统设计公司
  • 建设局网站新闻昆明个人网站建设平台
  • 清远市建设工程交易中心网站网站打开慢什么原因呢
  • 网站网址没有被百度收录做网站ddos攻击
  • 网站网站设计公司深圳建设工程交易服务网网址
  • 自学编程网站棋牌游戏在哪做网站
  • html做分页的网站以图搜图百度识图
  • 上虞区建设局网站网站建设好公司好
  • 一半都有哪些做影视外包的网站收录网站查询
  • 网站策划书撰写流程网站推广基本方法是
  • 杭州网站建设费用多少写一篇软文推广自己的学校
  • 意大利设计网站易优cms破解授权
  • 学校网站开发工程师wordpress手机博客