Sping常见注解使用方法----持续更新中20240116

2024-02-06 21:28

本文主要是介绍Sping常见注解使用方法----持续更新中20240116,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

持续更新中~可以关注哦   底下也有博主碰到这些问题的项目具体操作时的原文。

目录

@Data:

@requestbody

@ExceptionHandler

@ResponseBody 

@WebFilter(filterName = "loginCheckFilter",urlPatterns = "/*")


@Data:

通用返回结果,服务的相应的数据最终都会封装成此对象

@requestbody

要返回json

@ExceptionHandler

全局异常处理
底层基于代理
@ExceptionHandler(SQLIntegrityConstraintViolationException.class)public  R<String> exceptionHandler(SQLIntegrityConstraintViolationException ex){log.error(ex.getMessage());//当前这个异常信息是否含有 Duplicate entry关键字 ,若含有则违反了唯一约束 。// ex.getMessage()就是Duplicate entry 'zss' for key 'employee.idx_username'if (ex.getMessage().contains("Duplicate entry")){String[] split = ex.getMessage().split(" ");String msg = split[2] + "已存在";return R.error(msg);}return R.error("未知错误");}
当前这个异常信息是否含有 Duplicate entry关键字 ,若含有则违反了唯一约束 。
// ex.getMessage()就是Duplicate entry 'zss' for key 'employee.idx_username'

@ResponseBody 


要写一个方法,最终要返回json数据的

@WebFilter(filterName = "loginCheckFilter",urlPatterns = "/*")

//路径匹配器,支持通配符。专门用来路径比较的
package com.itheima.reggie.filter;import com.alibaba.fastjson.JSON;
import com.itheima.reggie.common.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.AntPathMatcher;import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;/*** 检查用户是否已完成登录*/
@Slf4j
@WebFilter(filterName = "loginCheckFilter",urlPatterns = "/*")
public class LoginCheckFilter implements Filter {//路径匹配器,支持通配符。专门用来路径比较的public static final AntPathMatcher PATH_MATCHER = new AntPathMatcher();@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest request= (HttpServletRequest) servletRequest;//强转HttpServletResponse response = (HttpServletResponse) servletResponse;//1、获取本次请求的URIString requestURI= request.getRequestURI();//backend/index.htmllog.info("拦截到请求:{}",requestURI);//定义不需要处理的请求路径String[] urls= new String[]{"/employee/login", //表示点击的登录按钮 直接放行"/employee/logout", //表示点击的退出按钮 直接放行"/backend/**",//静态资源直接放行,页面没事 但是对应的数据 会发生ajax请求,无法访问。只拦截controller的请求。"/front/**"} ;//2、判断本次请求是否需要处理boolean check = check(urls, requestURI);//调用check方法  把urls和reqiestURI传进去// 3、如果不需要处理,则直接放行if (check){log.info("本次请求{}不需要处理",requestURI);filterChain.doFilter(request,response);return;}// 4、判断登录状态,如果已登录,则直接放行//session中可以取出用户,不为空,则说明已经登录了if(request.getSession().getAttribute("employee") != null){log.info("用户已登录,用户id微:{}",request.getSession().getAttribute("empliyee"));filterChain.doFilter(request,response);return;}// 5、如果未登录则返回未登录结果,过输出流的方式向客户端响应数据log.info("用户未登录");response.getWriter().write(JSON.toJSONString(R.error("NOTLOGIN")));//NOTLOGIN取自backend中request.js响应拦截器里的return;
//        log.info("拦截到请求:{}",request.getRequestURI());
//        filterChain.doFilter(request,response);}/**路径匹配,检查本次请求是否需要放行*  把URLS传进来 遍历* @param urls* @param requestURI* @return*/public boolean check(String[] urls,String requestURI){for (String url : urls) {boolean match = PATH_MATCHER.match(url, requestURI);if(match){return true;}}return false ;//匹配不上返回false}
}

这些都是目前博主在做项目碰到的,想看博主项目的可以点击链接~~~以及一些项目、代码问题,都会持续更新的哦!

Java项目实战--瑞吉外卖DAY01-CSDN博客

Java项目实战--瑞吉外卖DAY02-CSDN博客

idea日常操作:修改idea中的菜单栏大小和代码大小-CSDN博客

 

这篇关于Sping常见注解使用方法----持续更新中20240116的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/685583

相关文章

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain