精通Spring全家桶系列
文章平均质量分 88
从入门到使用、从原理到源码、从进阶到精通,全面介绍Spring全家桶的各项技术,让你从小白一路成长为Spring技术专家
冰 河
这个作者很懒,什么都没留下…
展开
-
《Spring6核心源码解析》已完结,涵盖IOC容器、AOP切面、AOT预编译、SpringMVC,面试杠杠的
全网首个全面解析Spring6核心源码的专栏,涵盖:IOC容器、AOP切面、声明式事务、AOT预编译和SpringMVC,让你从根本上彻底掌握Spring6核心技术。原创 2023-07-24 10:16:35 · 302 阅读 · 1 评论 -
撸完Spring源码,我为Spring写了个分布式缓存插件,现已开源,快要裂开了!!(建议收藏)
经过三个月的时间,我终于撸完了Spring源码,快要裂开了!!随后,开源了这个分布式缓存框架,冰河强烈建议收藏!!!原创 2021-09-23 08:40:27 · 14528 阅读 · 31 评论 -
SpringMVC之——Filter需要配置多个url-pattern
最近做项目遇到一个Filter需要配置多个url-pattern,上网查了下资料,经测试,现总结下filter-mapping元素位于web.xml文件中filter元素之后serlvet元素之前。它包含如下三个可能的子元素。filter-name 这个必需的元素必须与用filter元素声明时给予过滤器的名称相匹配。url-pattern 此元素声明一个以斜杠(/)开始的模式,它指定过滤器应用...转载 2019-07-24 10:12:19 · 3270 阅读 · 0 评论 -
SpringMVC之——防止重复提交表单的方法(二)
本博文提供SpringMVC防止重复提交表单的第二种方法,就是判断请求url和数据是否和上一次相同。推荐,非常简单,页面不需要任何传入,只需要在验证的controller方法上写上自定义注解即可1、创建自定义注解SameUrlData注解的作用主要是用来标识哪些类需要被拦截,处理防重复提交的问题,具体代码如下:package io.mykit.filter.spring.repeat.annota...原创 2018-05-24 19:44:18 · 1811 阅读 · 0 评论 -
SpringMVC之——防止重复提交表单的方法(一)
这篇博文介绍第一种方法:判断session或其他缓存中保存的token,这里以session为例,具体大家也可以自行扩展以其他的缓存实现。这种方式比较麻烦,每次在提交表单时都必须传入上次的token。而且当一个页面使用ajax时,多个表单提交就会有问题。1、自定义注解FormToken注解的作用主要是用来标识哪些类需要被拦截,处理防重复提交的问题,具体代码如下:package io.mykit.f...原创 2018-05-24 19:26:29 · 6405 阅读 · 0 评论 -
UEditor之——与SpringMVC整合
一、引言相信大家做项目时,很多时候都会用到富文本编辑器。今天是2016年8月的最后一天,那么就给大家带来一篇关于JSP UEditor整合SpringMVC的文章吧,UEditor是百度的一款富文本编辑器产品,网址为:http://ueditor.baidu.com/website/ , 但是直接使用Editor时,会将编辑的图片直接上传到服务器的项目所在路径,如果每次部署项目的时候,都原创 2016-08-31 23:26:46 · 25061 阅读 · 21 评论 -
SpringMVC POI导出EXCEL
当今,J2EE企业级开发中SpringMVC无疑占据着举足轻重的地位,而POI又很好的支持了Excel操作,这两者的结合很好的支持了企业级报表系统的开发,废话不多说了,直接进入主题原创 2014-10-20 11:31:50 · 7095 阅读 · 5 评论 -
一个很多人不知道的SpringBoot小技能!!
你确定你知道?原创 2021-03-29 19:40:18 · 1834 阅读 · 11 评论 -
为啥你用@JsonFormat注解时,LocalDateTime会反序列化失败?
又学会一个新技能原创 2020-09-29 20:29:47 · 1462 阅读 · 0 评论 -
SpringBoot之——使用@JsonFormat注解时,LocalDateTime反序列化失败
我们可以使用SpringBoot依赖中的@JsonFormat注解,将前端通过json传上来的时间,通过@RequestBody自动绑定到Bean里的LocalDateTime成员上。具体的绑定注解使用方法如下所示。@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")出现问题的版本...原创 2020-05-02 09:17:13 · 5131 阅读 · 1 评论 -
SpringSecurity之——权限管理
1.只要能登录即可在继承org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter类的子类中覆写protected void configure(AuthenticationManagerBuilder auth) throws Exception方法,使用内存方式指...原创 2019-10-29 18:07:19 · 885 阅读 · 1 评论 -
SpringSecurity之——SpringBoot整合SpringSecurity
一、创建工程新建Maven工程springsecurity-demo,并编辑pom.xml文件如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XML...原创 2019-10-28 13:00:55 · 1082 阅读 · 2 评论 -
SpringBoot之——日志配置 (logback配置文件配置)
转载请注明出处:https://blog.csdn.net/l1028386804/article/details/90261225在resources 下面新增日志配置文件logback-spring.xml<?xml version="1.0" encoding="UTF-8"?><!-- 日志级别从低到高分为TRACE < DEBUG < INF...原创 2019-05-16 12:37:58 · 2642 阅读 · 1 评论 -
Spring Boot之——springboot做的controller服务,每隔一段时间后第一次请求耗时特别长
1、在访问任何一个接口后,此接口在短时间内访问速度都很正常。但就是在每隔一段时间后(大概几秒)第一个请求访问速度很慢,客户端显示耗时是3000ms,但服务器打印耗时正常就是60ms。2、本机windows环境调试的时候不会出现这种问题,部署到linux系统下出现此问题。问题:无论用浏览器、Postman、curl、Python(requests) 去访问接口,均得到第一次响应非常耗时,短时...转载 2018-11-01 21:01:50 · 5545 阅读 · 1 评论 -
SpringBoot之——集成 Druid + Mybatis
最近把一个项目的框架由 SpringMVC 转为 Spring Boot。Spring Boot框架的使用入门很快,尤其是 Spring Boot 其实相当于对 Spring 做了一些改进,去除配置,改为代码约定。但是,没了配置,第三方库如何集成进来就是我 Spring Boot 入门学习遇到的第一个坎,尤其是一些没有官方支持 Spring Boot 的库。我把我的项目框架转为 Spring Bo...转载 2018-10-22 00:39:27 · 1362 阅读 · 0 评论 -
SpringBoot之——SpringBoot+SpringSecurityOAuth2.0 实现SSO单点登录(一)--客户端
SSO Client准备:使用maven构建项目,导入1.5.4SpringBoot父jar包<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.4....转载 2018-07-12 21:53:08 · 3104 阅读 · 0 评论 -
SpringBoot之——SpringBoot+SpringSecurityOAuth2.0 实现SSO单点登录(一)--服务端
SSO Server前期准备:使用maven构建项目,导入1.5.4SpringBoot父jar包<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5....转载 2018-07-12 21:51:20 · 1930 阅读 · 0 评论 -
SpringBoot之——在Spring Boot中使用Redis
1、想要在spring boot中使用redis,需要在pom文件中增加如下的配置。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId></depende...原创 2018-07-08 12:19:58 · 1610 阅读 · 0 评论 -
SpringBoot之——Caused by: java.lang.IllegalArgumentException: At least one JPA metamodel must be prese
需要我们在JPA的配置类中新增如下的配置信息即可:@Beanpublic DataSource dataSource() { DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); ...原创 2018-07-08 10:48:15 · 3731 阅读 · 2 评论 -
SpringBoot之——Validator校验相关的注解信息
@null 验证对象是否为空@notnull 验证对象是否为非空@asserttrue 验证 boolean 对象是否为 true@assertfalse 验证 boolean 对象是否为 false@min 验证 number 和 string 对象是否大等于指定的值@max 验证 number 和 str...原创 2018-05-29 18:58:58 · 10755 阅读 · 0 评论 -
SpringBoot之——使用@Async实现异步调用
一、什么是“异步调用”?“异步调用”对应的是“同步调用”,同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行;异步调用指程序在顺序执行时,不等待异步调用的语句返回结果就执行后面的程序。二、同步调用下面通过一个简单示例来直观的理解什么是同步调用:定义Task类,创建三个处理函数分别模拟三个执行任务的操作,操作消耗时间随机取(10秒内)package com.lyz...原创 2018-05-28 22:23:04 · 1694 阅读 · 0 评论 -
SpringBoot之——LogBack日志配置与多环境实战
一、Slf4j+Logback的快速实践spring-boot默认支持logback,所以无需引用任何以来只需要,配置application.properties即可,如果要功能丰富些,则配置下logback.xml。1、在application.properties里配置的方式logging.file=./springboot.log这是最简便的方法,默认级别是info,要改级别的话还要在app...原创 2018-05-28 21:58:54 · 10521 阅读 · 1 评论 -
SpringBoot之——多环境配置
一、多环境配置我们在开发Spring Boot应用时,通常同一套程序会被应用和安装到几个不同的环境,比如:开发、测试、生产等。其中每个环境的数据库地址、服务器端口等等配置都会不同,如果在为不同环境打包时都要频繁修改配置文件的话,那必将是个非常繁琐且容易发生错误的事。对于多环境的配置,各种项目构建工具或是框架的基本思路是一致的,通过配置多份不同环境的配置文件,再通过打包命令指定需要打包的内容之后进行...原创 2018-05-26 22:51:34 · 1131 阅读 · 0 评论 -
SpringBoot之——log4j日志配置案例
在创建Spring Boot工程时,我们引入了spring-boot-starter,其中包含了spring-boot-starter-logging,该依赖内容就是Spring Boot默认的日志框架Logback,所以我们在引入log4j之前,需要先排除该包的依赖,再引入log4j的依赖,就像下面这样:一、引入log4j依赖<!-- 忽略自带的日志框架. --><depen...原创 2018-05-26 21:05:47 · 51520 阅读 · 2 评论 -
SpringBoot之——动态数据源(多数据源自动切换)
本文实现案例场景: 某系统除了需要从自己的主要数据库上读取和管理数据外,还有一部分业务涉及到其他多个数据库,要求可以在任何方法上可以灵活指定具体要操作的数据库。为了在开发中以最简单的方法使用,本文基于注解和AOP的方法实现,在spring boot框架的项目中,添加本文实现的代码类后,只需要配置好数据源就可以直接通过注解使用,简单方便。一配置二使用 1. 启动类注册动态数据源 2. 配置文件中配置...转载 2018-05-24 23:39:15 · 5055 阅读 · 2 评论 -
SpringBoot之——配置EHCache
第一步:在classpath下引入配置文件ehcache.xml<?xml version="1.0" encoding="UTF-8"?><ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehc...原创 2018-05-22 18:42:19 · 2808 阅读 · 0 评论 -
SpringBoot之——SpringBoot2.0 使用Redis
1、pom引入<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <exclusions> <exclusi...原创 2018-05-22 13:00:21 · 9646 阅读 · 2 评论 -
SpringBoot之——发布到外部Tomcat
1、修改打包方式将这个 spring Boot 项目的打包方式设置为 war。warSpringBoot 默认有内嵌的 tomcat 模块,因此,我们要把这一部分排除掉。即:我们在 spring-boot-starter-web 里面排除了 spring-boot-starter-tomcat ,但是我们为了在本机测试方便,我们还要引入它,所以我们这样写: org.sp原创 2017-04-10 00:40:01 · 1329 阅读 · 0 评论 -
SpringBoot之——热部署的两种方式
一、热部署在项目开发过程中,常常会改动页面数据或者修改数据结构,为了显示改动效果,往往需要重启应用查看改变效果,其实就是重新编译生成了新的 Class 文件,这个文件里记录着和代码等对应的各种信息,然后 Class 文件将被虚拟机的 ClassLoader 加载。而热部署正是利用了这个特点,它监听到如果有 Class 文件改动了,就会创建一个新的 ClaassLoader 进行加载该文件,原创 2017-04-10 00:33:05 · 23343 阅读 · 1 评论 -
SpringBoot之——spring boot + redis 实现session共享随笔
今天,我们一起来实现基于spring boot + redis的session共享,好了,我们直接进入主题。在spring boot的文档中,告诉我们添加@EnableRedisHttpSession来开启spring session支持,配置如下:@Configuration @EnableRedisHttpSession public class RedisSessionCon原创 2017-03-23 00:03:25 · 5631 阅读 · 2 评论 -
Spring中这么重要的AnnotationAwareAspectJAutoProxyCreator类是干嘛的?
跟冰河一起学习AnnotationAwareAspectJAutoProxyCreator类的源码!!原创 2021-03-11 00:11:13 · 1472 阅读 · 0 评论 -
小伙伴们在催更Spring系列,于是我写下了这篇注解汇总!!
写在前面由于在更新其他专题的文章,Spring系列文章有很长一段时间没有更新了,很多小伙伴都在公众号后台留言或者直接私信我微信催更Spring系列文章。看来是要继续更新Spring文章了。想来想去,写一篇关于Spring中注解相关的文章吧,因为之前更新Spring系列的文章一直也是在更新Spring注解驱动开发。这篇文章也算是对之前文章的一个小小的总结吧,估计更新完这篇,我们会进入Spring的AOP章节的更新。没有看过Spring其他文章的小伙伴,可以到【冰河技术】公号的【Spring系列】专题中进原创 2021-03-07 22:20:40 · 1407 阅读 · 0 评论 -
Spring整合Kafka实现批量消费和手动提交offset
Spring整合Kafka实现批量消费和手动提交offset原创 2020-12-07 01:41:57 · 1840 阅读 · 0 评论 -
【Spring】IOC容器注解汇总,你想要的都在这儿了!!
写在前面之前,我们在【Spring】专题中更新了不少关于Spring注解相关的文章,有些小伙伴反馈说,看历史文章的话比较零散,经常会忘记自己看到哪一篇了。当打开一篇新文章时,总感觉自己似乎是看到过了,又感觉自己没有看到过。那怎么办呢?为了小伙伴们查看方便,我在这里将Spring注解的使用方式做个汇总,也算是对之前写的Spring文章的一个总结吧!如果文章对你有点帮助,请点个赞,给个在看和转发,大家的支持是对我持续创作的最大动力。微信搜索并关注“冰河技术”微信公众号,每天推送超硬核技术干货!x原创 2020-09-09 00:36:34 · 913 阅读 · 0 评论 -
【Spring注解驱动开发】AOP核心类解析,这是最全的一篇了!!
【Spring注解驱动开发】AOP核心类解析,这是最全的一篇了!!昨天二狗子让我给他讲@EnableAspectJAutoProxy注解,讲到AnnotationAwareAspectJAutoProxyCreator类的源码时,二狗子消化不了了。这不,今天又来让我给他讲讲AOP的核心类。那我们就开始吧!关于 冰河技术 微信公众号,后台回复 “Spring注解”领取源码工程。如果文章对你有点帮助,麻烦点个赞,给个在看和转发,大家的三连是对我持续创作最大的动力!!类结构图我们先来看下Annota原创 2020-09-03 21:26:47 · 723 阅读 · 0 评论 -
【Spring注解驱动开发】二狗子让我给他讲讲@EnableAspectJAutoProxy注解
写在前面最近,二狗子入职了新公司,新入职的那几天确实有点飘。不过慢慢的,他发现他身边的人各个身怀绝技啊,有Spring源码的贡献者,有Dubbo源码的贡献者,有MyBatis源码的贡献者,还有研究AI的大佬,个个都是大神级别的人物。二狗子有点慌,想起自己虽然入职了,但是比起其他人确实差点远啊。怎么办呢?先从基础补起呗,他发现自己对于Spring的理解还不算太深。于是乎,他让我给他讲讲Spring的@EnableAspectJAutoProxy注解。好吧,二狗子要请我吃饭啊!关注 冰河技术 微信公众号原创 2020-09-02 21:59:44 · 816 阅读 · 0 评论 -
【Spring注解驱动开发】你敢信?面试官竟然让我现场搭建一个AOP测试环境!
写在前面今天是9月1号,金九银十的跳槽黄金期已拉开序幕,相信很多小伙伴也在摩拳擦掌,想换一个新的工作环境。然而,由于今年疫情的影响,很多企业对于招聘的要求是越来越严格。之前,很多不被问及的知识点,最近面试时都会被问到了。这不,有些面试官竟然让面试者现场搭建一个AOP测试环境。那怎么办呢?那就给他搭建一个呗!关注 冰河技术 微信公众号,后台回复 “Spring注解” 领取源码。什么是AOP?AOP (Aspect Orient Programming),直译过来就是 面向切面编程。AOP 是一种原创 2020-09-01 22:41:02 · 667 阅读 · 0 评论 -
【Spring】使用@Profile注解实现开发、测试和生产环境的配置和切换,看完这篇我彻底会了!!
写在前面在实际的企业开发环境中,往往都会将环境分为:开发环境、测试环境和生产环境,而每个环境基本上都是互相隔离的,也就是说,开发环境、测试环境和生产环境是互不相通的。在以前的开发过程中,如果开发人员完成相应的功能模块并通过单元测试后,会通过手动修改配置文件的形式,将项目的配置修改成测试环境,发布到测试环境进行测试。测试通过后,再将配置修改为生产环境,发布到生产环境。这样手动修改配置的方式,一方面增加了开发和运维的工作量,而且总是手工修改各项配置文件很容易出问题。那么,有没有什么方式可以解决这些问题呢?答原创 2020-08-24 21:38:39 · 1643 阅读 · 0 评论 -
【Spring】Spring如何实现多数据源读写分离?这是我看过最详细的一篇!!
写在前面很多小伙伴私聊我说:最近他们公司的业务涉及到多个数据源的问题,问我Spring如何实现多数据源的问题。回答这个问题之前,首先需要弄懂什么是多数据源:多数据源就是在同一个项目中,会连接两个甚至多个数据存储,这里的数据存储可以是关系型数据库(比如:MySQL、SQL Server、Oracle),也可以非关系型数据库,比如:HBase、MongoDB、ES等。那么,问题来了,Spring能够实现多数据源吗?并且还要实现读者分离?答案是:必须的,这么强大的Spring,肯定能实现啊!别急,我们就一点点原创 2020-08-21 20:34:56 · 1126 阅读 · 0 评论 -
【Spring注解驱动开发】自定义组件如何注入Spring底层的组件?看了这篇我才真正理解了原理!!
写在前面最近,很多小伙伴出去面试都被问到了Spring问题,关于Spring,细节点很多,面试官也非常喜欢问一些很细节的技术点。所以,在 Spring 专题中,我们尽量把Spring的每个技术细节说清楚,将透彻。关注 冰河技术 微信公众号,回复 “ Spring注解 ” 关键字领取源码。如果文章对你有所帮助,欢迎大家留言、点赞、在看和转发,大家的支持是我持续创作的动力!概述自定义组件要想使用Spring容器底层的一些组件(比如:ApplicationContext、BeanFactory原创 2020-08-19 00:46:48 · 854 阅读 · 0 评论