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

相关文章

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

poj3468(线段树成段更新模板题)

题意:包括两个操作:1、将[a.b]上的数字加上v;2、查询区间[a,b]上的和 下面的介绍是下解题思路: 首先介绍  lazy-tag思想:用一个变量记录每一个线段树节点的变化值,当这部分线段的一致性被破坏我们就将这个变化值传递给子区间,大大增加了线段树的效率。 比如现在需要对[a,b]区间值进行加c操作,那么就从根节点[1,n]开始调用update函数进行操作,如果刚好执行到一个子节点,

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

hdu1689(线段树成段更新)

两种操作:1、set区间[a,b]上数字为v;2、查询[ 1 , n ]上的sum 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdl

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma