自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

剪刀手何金银的技术博客

剪刀手何金银的技术博客

  • 博客(20)
  • 收藏
  • 关注

原创 springSecurity实现接口鉴权

定义认证处理认证filter指对当前的请求进行判断,如果含有登录凭证,判断凭证是否正确,如果正确加载用户的基本信息和权限信息到上下文对象中,如果不正确则不加载,在过滤器的最后springsecurity会判断有没有加载正确的认证对象,没有则走未认证处理器。定义filter这里只写了一个最简单的例子,判断内存中是否存有请求头中带的token,有则将基本信息添加到上下文中public class AuthFilter extends OncePerRequestFilter { @O

2021-12-28 16:01:38 4066 1

原创 springSecurity实现登录验证

文章目录实现AbstractAuthenticationToken自定义验证对象定义登录filter实现AbstractAuthenticationProcessingFilter的attemptAuthentication方法自定义身份验证处理器定义认证成功处理器定义认证失败处理器配置登录过滤器到springSecurity实现AbstractAuthenticationToken自定义验证对象在SpringSecurity认证过程中,最核心的对象为Authentication,这个对象用于在认证过

2021-12-28 15:57:26 4274

原创 springSecurity处理流程图

springSecurity处理流程图:

2021-12-28 15:55:31 334

原创 springboot使用servlet原生组件servlet、listener、filter

servlet原生组件servlet、listener、filter自定义servlet方式一首先实现HttpServlet接口,使用@WebServlet注解声明映射@WebServlet(urlPatterns = "/*")public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp

2021-11-14 22:41:11 292

原创 springboot异常处理

异常类似于springboot大部分的设计,当有异常发生时,springboot会在底层寻找所有的类型为HandlerExceptionResolver的组件来处理异常,核心源码:// Check registered HandlerExceptionResolvers... ModelAndView exMv = null; if (this.handlerExceptionResolvers != null) { for (HandlerExceptionResolver reso

2021-11-14 22:40:35 776

原创 springboot文件上传

文件上传springboot默认封装了一个文件上传,MultipartAutoConfiguration自动装配了一个处理文件上传的处理器StandardServletMultipartResolver,在处理请求参数的时候,如果使用了@RequestPart,参数类型为MultipartFile,请求的Content-type为multipart/开头就会被处理。@Bean(name = DispatcherServlet.MULTIPART_RESOLVER_BEAN_NAME)@Condit

2021-11-14 22:39:54 382

原创 springboot拦截器(Interceptor)和过滤器(Filter)

拦截器(Interceptor)springboot的核心思想是基于代理模式的,所有的Controller层方法都会被代理,基于代理模式,如果定义了拦截器,springboot就会在调用我们实际的controller代码之前调用拦截器的方法。springboot定义了一个HandlerInterceptor接口,我们只需要实现这个接口,就可以定义我们自己的拦截器public class LoginInterceptor implements HandlerInterceptor { //在

2021-11-14 22:38:51 706

原创 Springboot使用@JsonSerialize和@JsonDeserialize

@JsonSerialize和@JsonDeserialize在springboot将一个对象转换成json或json解析为对象时,如果需要对某些字段指定序列化和可以使用@JsonSerialize和@JsonDeserialize注解指定自定义的序列化和反序列号器。自定义序列化器,用于springboot将java对象解析为json时使用public class DateTimeSerializer extends JsonSerializer<LocalDateTime> {

2021-11-14 22:37:39 1245

原创 springboot的@JsonComponent

@JsonComponent用于针对某个对象的json解析特殊处理如果我们的请求参数传入了一个json对象或者返回一个jon对象,springboot默认使用Jackson进行json转换,它会自动的将我们的对象进行json转换,如果我们需要对某个对象自定义json转换处理器,根据官方文档,我们可以直接使用@JsonComponent注解,自定义一个处理器。@JsonComponentpublic class MyJsonComponent { public static...

2021-11-14 22:36:57 1581

原创 springboot自定义Converter和Formatter

Converter和Formatter(pojo参数绑定解析器)当我们在controller方法的入参为一个javabean类型并且没有使用任何注解进行标注,springboot将会使用ServletModelAttributeMethodProcessor方法处理器对请求参数和javaBean对象的属性进行绑定,在ServletModelAttributeMethodProcessor内部会调用参数转换器将请求参数与javaBean的属性对象进行类型转换再使用反射进行参数绑定,例如 请求参数时stri

2021-11-09 23:14:08 1240 1

原创 springboot自定义参数处理器和返回值处理器

参数处理器(ArgumentResolvers)和返回参数处理器(ReturnValueHandlers)在我们调用controller层组件时,Springboot实际上是使用代理模式进行调用,springmvc定义了一个DispatcherServlet实现HttpServlet方法,通过DispatcherServlet的doservice()方法处理请求,在doservice方法中,springboot先根据请求的request对象生成包含对应处理此请求的必要信息的对象mapperHandler

2021-11-09 23:13:13 1173 1

原创 springboot mvc相关常用注解

文章目录常用注解@PathVariable@RequestHeader@RequestParam@CookieValue@ResponseBody@RequestAttribute常用注解@PathVariable将请求谅解url中的字符串作为参数@GetMapping("/test/{param1}")public Map test3(@PathVariable("param1") String param1) { Map<String, String> map = new

2021-11-09 22:59:14 55

原创 springboot静态资源配置

静态资源默认springboot的静态内容从类路径下的四个文件夹/static/public/resources/META-INF/resources将静态资源放置在这四个路径下可以直接访问,如果想更改springboot的静态资源文件夹存放位置,可以在配置文件中添加spring.web.resources.static-locations=classpath:/res/spring: web: resources: static-locations: clas

2021-11-09 22:55:47 2623 1

原创 springboot yaml语法

文章目录yaml语法日期格式:数组:集合Map对象单引号和双引号的区别自动提示yaml语法key: value key和value之间有空格大小写敏感使用缩进表示层级关系,使用空格表示缩进#注释日期格式:默认日期格式: yyyy/MM/dd数组:两种方式定义:写法一:[xxxx,yyyy]写法二:array:-xxx-yyy集合与数组一致Map写法1:map:​ key1: value1​ key2: value2写法2:map: {key

2021-11-09 22:50:18 210

原创 Springboot常用的配置相关注解

文章目录一、常用配置注解:@Configuration注解@Import注解@Conditional注解@ConfigurationProperties@EnableConfigurationProperties二、自动加载注解@SpringBootConfiguration@EnableAutoConfiguration注解开启自动配置一、常用配置注解:@Configuration注解@Configuration用于声明一个配置组件。注意点 :proxyBeanMethods 属性,默认为

2021-11-09 22:46:46 1359

原创 mybatis(五)缓存

文章目录5、mybatis缓存5.1、一级缓存5.2、二级缓存5.2.1、二级缓存设置5.2.2、自定义缓存5、mybatis缓存所谓缓存是指mybatis在某个特定的作用域内执行完全相同的sql时,mybatis会在第一次查询时将查询结果存储在一个缓存介质中,第二次执行时会从缓存中直接取结果返回。5.1、一级缓存mybtais默认情况下,只启用了本地的会话缓存(一级缓存),它仅仅对一个会话(sqlSession)中的select数据进行缓存,其作用域为 Session,当 Session f

2021-10-09 10:44:22 110 1

原创 mybatis(四) 动态sql

文章目录4、动态sql4.1、if和where4.2、choose、when、otherwise4.3、trim、set4.3.1、trim 标签4.3.2、set标签4.4、foreach4.5、bind4.6 、script4、动态sql动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。

2021-10-07 16:29:48 106

原创 mybatis(三) XML映射器之select、update、delete、insert标签

3、XML映射器建表:user(用户表)、shoppingcart(购物车表)、goods(商品表)DROP TABLE IF EXISTS `goods`;CREATE TABLE `goods` ( `good_id` int(11) NOT NULL AUTO_INCREMENT, `good_name` varchar(255) DEFAULT NULL, PRIMARY KEY (`good_id`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEF

2021-10-04 03:15:11 3003 1

原创 mybatis(二)xml配置文件详细说明

mybatis(二)xml配置方式详细说明详细说明几个比较重要的mybatis配置项2.1、使用properties配置属性在日常工作中,我们可能需要将一些配置信息写在一个单独的properties配置文件中便于管理,mybatis对此进行了很好的支持2.1.1、引入外部properties文件或在properties标签内定义属性创建db.properties文件url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&useJDB

2021-09-30 15:35:25 1506 1

原创 mybatis(一)第一个mybatis入门程序用例

mybatis学习(一)1、第一个mybatis 程序用例1.1、官方文档地址https://mybatis.org/mybatis-3/zh/getting-started.html1.2、maven导入<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> &lt

2021-09-29 21:47:44 127

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除