游戏网站建设与策划网站开发与运营怎么样

web/2025/10/1 9:36:19/文章来源:
游戏网站建设与策划,网站开发与运营怎么样,怎样制作网站平台,网站建设列表【JavaEE】AOP#xff08;2#xff09; 文章目录 【JavaEE】AOP#xff08;2#xff09;1. 统一登录校验处理1.1 自定义拦截器1.2 将自定义拦截器加入到系统配置1.3 测试1.4 对于静态资源的处理1.5 小练习#xff1a;统一登录拦截处理1.6 拦截器原理1.6.1 执行流程1.6.2 源… 【JavaEE】AOP2 文章目录 【JavaEE】AOP21. 统一登录校验处理1.1 自定义拦截器1.2 将自定义拦截器加入到系统配置1.3 测试1.4 对于静态资源的处理1.5 小练习统一登录拦截处理1.6 拦截器原理1.6.1 执行流程1.6.2 源码分析 1.7 扩展统一访问前缀添加 2. 统一异常处理2.1 为什么需要异常处理2.2 应用异常处理器 3. 统一数据格式返回处理3.1 为什么要统一数据格式3.2 数据格式统一方法3.3 应用数据格式返回统一处理器3.4 String类型无法处理的问题3.5 ControllerAdvice 源码分析 【JavaEE】AOP2 在前面的Spring AOP的学习之中Spring AOP去实现AOP虽然比较灵活可以实现很多想法但是也有一些现实的问题 没办法获取到HttpRequest一些功能难以实现 进而无法获取HttpSession对象这样登录校验功能就无法实现 我们要对⼀部分方法进行拦截而另⼀部分方法不拦截如注册方法和登录方法是不拦截的这样的话排除方法的规则很难定义甚至没办法定义 我们手动去实现太难了 所以本文讲解的重点就是Spring全家桶实现AOP的几种固定的机制虽然较不灵活但是实现的功能有针对性且代码简单 只要我们按照框架的要求去写就可以实现对应的功能这些功能都是很常见、很必要的功能 所以不要纠结于这个框架不够全面不能实现一些极端特殊的要求因为它只是 把一切常见的功能打包成现成的模块 方便开发如果有其他特殊要求用Spring AOP等等偏底层地去实现就好了框架就是这样的方便一些常见开发的操作我们不需要过多了解底层实现“坐享其成”即可Spring全家桶实现AOP更偏向于具体的统一处理功能而Spring AOP实现AOP更偏底层 网路资料 Spring AOP是Spring框架中的一个模块用于实现面向切面编程。它通过动态代理或者字节码生成的方式在运行时将横切逻辑织入到目标对象的方法中从而在目标对象执行前、执行后或者执行异常时执行额外的操作。Spring AOP主要基于代理模式来实现。 Spring Boot框架是基于Spring框架的扩展用于简化和加速Spring应用程序的开发。 Spring Boot并没有重新实现AOP概念而是直接继承了Spring框架中的AOP模块因此在Spring Boot中使用AOP的方式和Spring框架中的方式是一样的。Spring Boot提供了更方便的自动配置和默认约定使得使用AOP更加简单。 因此Spring AOP和Spring Boot框架实现的AOP的本质是相同的都是通过代理方式实现的面向切面编程。区别主要在于Spring全家桶提供了[更简化的配置]和[默认约定]使得使用AOP更加方便。 因为代码的运行就是通过 Spring Boot框架来运行的以此来控制一些逻辑也很合理 本文讲解的几个统一处理 统一登录校验处理 Spring 拦截器 统一异常处理统一数据格式返回处理 没学到不代表不重要需要用到什么统一处理的功能再专门去学 1. 统一登录校验处理 框架的学习说到底就是学习一个约定按照约定才能实现方便功能~ Spring全家桶提供了具体的现成拦截器HandlerInterceptor 应用拦截器分为两步 创建自定义拦截器实现 HandlerInterceptor接口重写 preHandle方法 preHandle() 目标方法执行之前要执行的预处理方法 其返回值为true/false true目标方法可执行放行 false目标方法不可执行拦截 //伪代码 HandlerInterceptor o new LoginInterceptor(); if(!o.preHandle(...)) {return; } targetMethod();重写 WebMvcConfigurer 的addInterceptors(InterceptorRegistry registry)方法 添加拦截器到registry中登记 可以添加多个拦截器按顺序进行拦截如果逻辑冲突按照顺序以第一个结果为准 添加拦截的路由/排除拦截的路由 1.1 自定义拦截器 Ctrl O重写方法 默认返回true放行 Java对于一些常量通常会放在一个类里面以访问的形式去获取常量而不是每次都手敲 1.2 将自定义拦截器加入到系统配置 Ctrl O重写方法 加Configuration否则项目启动不会加载这个类自然不会进行系统配置实现MebMvcConfigurer自然就是跟Spring Mvc网络相关有关的配置不仅仅只有配置文件才能配置配置类也可以哦 拦截器对象加入到Spring容器里 一般写成这样 PathPatterns路径的样式 其实直接new一个咱们的拦截器对象甚至匿名内部类重写那个方法也行因为这个参数只是定义预处理方法 这个类只是游离在外的普通类一个拦截器的定义罢了~ 为什么可以怎么写 其实就是因为每个加或者减后返回的都是同一个对象~ 1.3 测试 为了突出结果做出以下改动 拦截成功跳转百度 提示执行了拦截器 排除路由/test/say_hello 效果 1.4 对于静态资源的处理 比如图片/html/js/css等资源如果是服务器的都是向服务器请求来的 html等等很常规无非就是:.excludePathPatterns(/**/*.html) 但是图片不一样图片的格式很多很多我们没办法一一列举而我们可以这么做 将图片保存到一个目录image里然后排除整个image目录.excludePathPatterns(/image/**) 1.5 小练习统一登录拦截处理 将我们之前做的博客前端资源拷贝到static里 后端基本上代码不变主要是对静态资源和一些路由的拦截排除 有可能有缓存的问题刚才的资源没有出现在target中所以要删掉重新启动 效果 重定向只是 对应的路径 相当于重定向后的路径所以如果只是请求资源或者请求响应数据不是访问 对应的路径 的网页是不会触发跳转的~ 只会表现为访问不到资源/响应状态码为302 例如 背景消失~ 补充静态资源以static为起始接受多级目录访问 注意删除target重新启动 1.6 拦截器原理 1.6.1 执行流程 之前 现在 就在请求的传递路上截胡 1.6.2 源码分析 所有的Controller执行都会通过一个调度器DispatcherServlet来实现可以通过控制台的日志观察到前提是拦截器工作了 双击shift查找DispatcherServlet 这个就是我们重写的方法循环拦截器集合多个拦截器的情况 true就可以继续进行后面的程序我们的目标方法就在后面 false就直接return响应通过输出型参数response返回 客户端发送请求后在Spring MVC框架中会经过一系列的组件处理其中就有可能被拦截器 “截胡” 1.7 扩展统一访问前缀添加 所有请求地址添加api前缀 Configuration//不是Configurable public class AppConfig implements WebMvcConfigurer {Overridepublic void configurePathMatch(PathMatchConfigurer configurer) {configurer.addPathPrefix(api, c - true);} }api原有路由多一级 但是不代表默认不被拦截还是要去排除/api/…还会导致原有路由不能用 c - true是一个表达式不需要了解感兴趣可以了解表示启动前缀false则无效果 2. 统一异常处理 2.1 为什么需要异常处理 如果后端报异常 监视器已关掉此处重点观察异常 信息太过杂我们需要总结要点但是不能边开发边写这些异常处理操作而且几个开发者写的可能都不一样后期也不方便维护所以要统一处理~ 所以我们希望异常返回的时候应该有明确统一的信息 网路资料了解 错误处理的一致性通过统一处理异常可以确保应用程序在遇到异常时采取一致的处理方式。这样可以提供更好的用户体验避免不一致的错误展示或处理方式。 代码的可维护性通过将异常处理逻辑集中到一个地方可以提高代码的可维护性。如果每个控制器方法都有自己的异常处理逻辑会导致代码重复和冗余难以维护和更新。 封装敏感信息统一处理异常可以帮助我们封装敏感信息防止泄露给客户端。在异常处理过程中我们可以选择性地披露或隐藏敏感信息并返回友好的错误消息给客户端。 日志记录和监控通过统一处理异常我们可以方便地进行日志记录和监控。在异常处理过程中我们可以记录异常的详细信息包括异常类型、堆栈跟踪等以便后续的故障排查和系统监控。 异常转换和包装有时候我们可能需要将底层的异常转换为更高级别的异常或者将多个异常包装为一个更通用的异常。通过统一处理异常可以方便地进行这些异常转换和包装操作以便更好地传递和处理异常。 错误页面的统一管理通过统一处理异常可以将错误页面的管理集中到一个地方。这样可以更方便地自定义错误页面并确保所有的异常都有对应的错误展示界面。 总之通过统一处理异常我们可以提高代码的可维护性和可读性封装敏感信息方便日志记录和监控进行异常转换和包装以及统一管理错误页面。这些都有助于提升应用程序的质量和用户体验。 大概了解一下就行了实际项目遇到去使用体验会更好 2.2 应用异常处理器 我们仍然有现成的异常处理器可以用如何应用 ControllerAdvice 加在类上代表其为控制器通知类此类会“监听”后端环境随着项目启动的加载如果抛出异常会被此类感知到 ExceptionHandler(Exception.class) 顾名思义这就是异常处理器加在方法上其返回值就是格式化后的数据注解的括号内应该为对应异常的类对象并且这个方法可以有一个参数e名字自取e会被注入刚才的异常对象会在获取到异常后调用这个方法AOP advice的位置 补充 返回的格式以json为最佳所以返回的方式有两种 自定义对象/自定义对象集合Map对象自定义映射关系 方便以这个为例 返回值的类型可以是Object包括其泛型或者其属性系统会自动去获取每一个都是谁向上转型而来的 无论什么异常都会被这个异常处理器捕捉到因为Exception是所有异常的父类而参数e则是被向上转型来的所以其getMessage方法被重写了仍然可以正常使用随便写的只是示例 但是对于潜在的个别异常如NullPointerException应该单独处理并且被子类捕获就不会被父类捕获了~ 因为异常太多了所以还是需要Exception这个老父亲来兜底 效果 其他异常效果 3. 统一数据格式返回处理 3.1 为什么要统一数据格式 其实每个公司都会对字段名严格必须符合规范但是返回的格式则千奇百怪 统一数据格式的优点很多比如以下几个 方便前后端程序员对接数据降低前后端沟通成本所有接口都按一个格式返回有利于项目统一数据的维护和修改有利于后端技术部门的统一规范不会出现稀奇古怪的返回内容 3.2 数据格式统一方法 一样可以按照刚才的两种方式 自定义对象 本次演示这种因为有个小坑 Map 现在我们分为两种情况 成功是一个方法 失败是一个方法 3.3 应用数据格式返回统一处理器 我们仍然有现成的数据格式返回统一处理器可以用如何应用 ControllerAdvice 加在类上代表其为控制器通知类此类会“监听”后端环境随着项目启动的加载如果有返回值就会被捕获到 实现接口ResponseBodyAdvice 重写supports方法表示我们是否要重写beforeBodyWrite方法 通过这个方法以及参数我们可以动态的选择性的对一些控制器和方法不重写/重写return true代表可以重写反之不能重写 重写beforeBodyWrite方法 顾名思义就是“篡改”返回值这个方法会在方法返回之前调用替原方法返回值AOP advice的位置默认返回像加了ResponseBody 测试 返回值类型已经不重要了因为都会被返回值统一处理掉当然写原来的类型会更好因为这样有利于代码的正确性并且此接口可能被处理器排除了~ 效果 3.4 String类型无法处理的问题 因为异常处理把异常处理的信息再次看成返回值了实际上返回值处理器运行了两次 因为框架在对返回数据格式处理的时候分为两类 body是非String类型向上转型而来 跟原来一样返回值Result类型可以直接返回框架自动转换为json字符串 body是String类型向上转型而来 也跟原来一样应该返回String类型并且视作html代码Result类型的返回值尝试转换为String类型但是Result类型无法直接转换为String类型因为框架【并没有】将它看成非String对象返回然后按非String对象的方式转换为json字符串然后把Result对象看成String对象返回显然直接报异常 证据就是Result对象是完好的只要调用toString方法返回不会报异常但是直接返回Result会报异常。说明返回值必须是字符串并且最终会被渲染 所以我们应该对String类型单独处理 效果 在浏览器中这段字符串被认为是html 3.5 ControllerAdvice 源码分析 跟其他类注解一样派生于Component而所有的组件都会调用InitializingBean接口 Spring MVC中的RequestMappingHandlerAdapter实现了它 实现了afterPropertiesSet方法 异常处理器和返回值处理器的核心前提就是有这个注解原因归功于它的监听机制 我们发现这些ControllerAdvice注解类Bean对象特殊地被查找和存储在容器之中它们比较“忙”当发生某个事件的时候调用对应的Advice方法比如统一异常处理统一返回值格式处理… 文章到此结束谢谢观看 可以叫我 小马我可能写的不好或者有错误但是一起加油鸭 本文重点讲基本使用方法具体功能实现要结合实际应变 例如拦截后咋样异常处理格式咋样统一数据格式返回咋样…都不是固定的是根据实际情况的 代码spring_boot_aop_demo/src/main/java/com/example/demo · 游离态/马拉圈2023年8月 - 码云 - 开源中国 (gitee.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84974.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

郸城网站建设温州市网站建设哪家公司好

目录 1.登录入口 2.点击“账号密码登录” 3.输入账号、密码并点击登录 4.滑块验证过程 5.小结 本次主要是使用selenium模拟登录网页端的TX新闻,本来最开始是模拟请求的,但是某一天突然发现,部分账号需要经过滑块验证才能正常登录&#x…

山东外贸网站推广wordpress 文章打不开

除了上一节讲到的插入table标签,可以使父元素高度确定的多行文本垂直居中之外,本节介绍另外一种实现这种效果的方法。但这种方法兼容性比较差,只是提供大家学习参考。 在 chrome、firefox 及 IE8 以上的浏览器下可以设置块级元素的 display 为…

适合做网站背景音乐网站建设最好的教程

华为手机 鸿蒙系统 或者安卓系统的百度网盘下载的文件保存在手机什么位置如何查看 连接电脑后一般在这里位置 计算机\Mate 20 Pro (UD)\内部存储\Download\BaiduNetdisk 也就是用usb(数据线,不是充电线,要四心的 )连接手机后,打…

网站描述在哪里写关于加强网站建设的建议

碳资产是绿色资产的重要类别,在全球气候变化日益严峻的背景下备受关注。在“双碳”目标下,碳资产管理是企业层面实现碳减排目标和低碳转型的关键。 一、什么是碳资产? 碳资产是以碳减排为基础的资产,是企业为了积极应对气候变化&…

网站备案ps百度广告推广费用年费

域环境共享文件夹-容量配额管理 要求 1/李斯用户配额10G云盘空间,张珊用户配额30G云盘空间 2/D:\ 配额-启用配额-启用配额管理-拒绝将磁盘空间给超过配额限制的用户-勾选 3/将磁盘空间限制为:55GB,将警告等级设为50GB 4/选择该卷的配额记录选项-勾选…

做网站创业需要注册公司吗网站建设开发网站案例项目费用

现在很多页面在使用表单提交时&#xff0c;都会使用到验证码的使用、如何制做一个验证码呢&#xff1f;这里有一个用PHP的方法 以及代码1、首先在php.ini 配置文件里面把GD库打开 // 在php.ini里面找到 extensionphp_gd2.dll 把前面的分号删去。2、代码&#xff1a;<?php …

在青岛做阿里巴巴网站找谁禁用wordpress 昵称

在C语言中&#xff0c;指针通常与字符数组或字符串打交道时会涉及到ASCII码的转换&#xff0c;而不是用于表现多位数的第一位。48这个值对应的是ASCII码表中数字字符0的编码。 如果你有一个表示多位数的字符数组&#xff0c;例如&#xff1a; c char number[] "1234&qu…

办网站用什么证件wordpress无法更换主题

文章目录 一、RDB持久化1、概念2、生成、载入RDB文件3、执行时机&#xff08;1&#xff09; 执行save命令&#xff08;2&#xff09;执行bgsave命令&#xff08;3&#xff09;Redis停机时&#xff08;4&#xff09;触发RDB条件 4、bgsave原理5、小结 二、AOF持久化1、概念2、AO…

做pc端网站精英政务服务中心网站建设实施方案

一、介绍 Intro.js 是一个用于创建网站用户引导、功能介绍和教程的 JavaScript 库。它允许开发者通过步骤和提示突出显示网站上的特定元素&#xff0c;以帮助用户更好地了解和使用网站的功能。以下是 Intro.js 的一些关键特点和用法介绍&#xff1a; 更多Intro.js 功能网址&a…

怎样取消网站备案公司形象墙设计效果图大全

要让大模型更加聪明&#xff0c;可以采取以下方法&#xff1a; 增加数据量&#xff1a;大模型需要足够的数据来学习和理解复杂的问题。通过增加训练数据的数量&#xff0c;可以帮助模型更全面地学习和推理。 提高模型的复杂度&#xff1a;大模型往往有更多的层和参数&#xff…

成都手机网站建设哪网站改版 重定向

这些文档是我在2023年学习owl的时候翻译的官方的英文文档&#xff0c;当然在翻译过程中做了分类整理&#xff0c;总共有十篇&#xff0c;基本上涵盖了owl的方方面面&#xff0c;现在将它们归纳成合集。 关于OWL的中文文档&#xff1a; OWL教程1 OWL架构以及为什么要设计OWL h…

网站推广的策略有哪些代理服务器上外网

实时时钟(RTC)是一种IC&#xff0c;可以跟踪当前时间。微处理器通常可以通过串行接口读取此信息&#xff0c;以方便软件执行与时间有关的功能。RTC专为超低功耗而设计&#xff0c;因为它们通常在主系统断电时仍可继续运行。这样一来&#xff0c;他们就可以根据绝对时间基准(通常…

商业网站模板wordpress文章调用标签

如今网站建设可以说已经是企业必备。而在众多的网站建设工具中&#xff0c;WordPress无疑是其中的佼佼者。作为一款开源的CMS&#xff08;内容管理系统&#xff09;&#xff0c;WordPress拥有丰富的插件和主题&#xff0c;以及强大的功能&#xff0c;使得用户可以轻松地构建出符…

wordpress添加修改记录重庆seo优

我是neo4j的新手,根据我到目前为止所做的阅读,似乎有两种方法可以使用Neo4j REST和Embedded与neo4j进行交互.我有点困惑的是,“嵌入式”选项是否仅使您能够使用本机Neo4j API操纵数据存储,还是可以嵌入Neo4j并将其与Java应用程序打包,如果可以的话,我该怎么做&#xff1f;解决方…

网站建设公司哪家好 干净磐石网络室内设计效果图qq群

在Spring Boot应用中使用Flyway插件进行数据库迁移时&#xff0c;可以在应用的配置文件中配置相关参数。下面是常用的Flyway配置参数及其说明&#xff1a; flyway.enabled: 是否启用Flyway插件&#xff0c;默认为true&#xff0c;表示启用Flyway插件进行数据库迁移。flyway.ur…

素马网站建设服务收费标准网站开发的预算

my.cnf配置文件在linux上是位于路径“/etc/my.cnf”下&#xff0c;在window上则位于安装目录的根目录下&#xff1b;可以使用命令“mysql --help”查看关于MYSQL对应配置文件“my.cnf”搜索顺序。一般linux上都放在 /etc/my.cnf ,window 上安装都是默认可能按照上面的路径还是没…

广西麒铭建设有限公司网站泉州百度首页优化

效果 整体效果 局部图片放大效果 视频转换后带雪花特效,凑合看吧, 视频地址 准备工作 安装FFmpeg 电脑上安装ffpeg处理视频并设置环境变量, windows可以参考FFmpeg的安装教程这篇博客安装 mac可以直接执行brew install ffmpeg安装 安装python依赖包 执行pip3 install -…

检察院前期网站建设mx动漫wordpress主题

指定检索策略并检索 确定检索词 检索课题&#xff1a;查找与“新型冠状病毒疫苗研制进展”有关的学术论文 检索式(2019-nCoV or 2019新型冠状病毒 or nCov-2019 or SARS-CoV-2 or COVID-19) and (疫苗 or 预防针 or 防疫针 or vaccin or vaccine) 扩展检索词的方式 同义词…

网站开启伪静态wordpress 最强大主题

选择题 题目&#xff1a; 大数据是指&#xff08;&#xff09;及以上级别的数据量。 题目&#xff1a; 大数据的所谓6个V的特征不包括&#xff08;&#xff09; 题目&#xff1a; 目前所获取的总数据量的80%以上都是&#xff08;&#xff09;数据 题目&#xff1a; 大数据的…

网站做水印有没有影响吗东莞汽车网站建设

1、Spring实现了工厂模式的工厂类&#xff0c;这个类名为BeanFactory实际上是一个接口&#xff0c;在程序中通常BeanFactory的子类ApplicationContext。Spring相当于一个大的工厂类&#xff0c;在其配置文件中通过<bean>元素配置用于创建实例对象的类名和实例对象的属性。…