![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SpringBoot
文章平均质量分 81
java小霜
有免费的视频资料 可以关注私信我哦~
展开
-
秀出新天际的SpringBoot笔记,让开发像搭积木一样简单
什么是 Spring BootJava (面向对象编程语言)经过30多年的发展,产生了非常多的优秀框架。Spring (为解决企业应用程序开发的复杂性而创建的框架)曾是最受欢迎的Java框架之一, 但随着Node、Ruby、Groovy、PHP等脚本语言的蓬勃发展,使用Spring开发应用就显得繁琐了,因为它使用了大量的XML配置文件,配置繁琐,整合不易,开发和部署效率低下。这时急切需要一-种新的能解决这些问题的快速开发框架,于是Pivotal Software公司在2013开始了Spring Boot原创 2022-01-24 21:04:26 · 129 阅读 · 0 评论 -
SpringBoot面试杀手锏——自动配置原理
引言不论在工作中,亦或是求职面试,Spring Boot已经成为我们必知必会的技能项。除了某些老旧的政府项目或金融项目持有观望态度外,如今的各行各业都在飞速的拥抱这个已经不是很新的Spring启动框架。当然,作为Spring Boot的精髓,自动配置原理的工作过程往往只有在“面试”的时候才能用得上,但是如果在工作中你能够深入的理解Spring Boot的自动配置原理,将无往不利。Spring Boot的出现,得益于“习惯优于配置”的理念,没有繁琐的配置、难以集成的内容(大多数流行第三方技术都被集原创 2022-01-13 19:06:29 · 60 阅读 · 0 评论 -
Spring Boot面试题(2022最新版)
概述什么是 Spring Boot?Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。Spring Boot 有哪些优点?Spring Boot 主要有如下优点:容易上手,提升开发效率,为 Spring 开发提供一个更快、更广泛的入门体验。 开箱即用,远离繁琐的配置。 提供了一系列大型项目通用的非业务性功能,例如:内嵌服务器、安全管理、运行数原创 2022-01-10 20:14:11 · 201 阅读 · 0 评论 -
基于SpringBoot与数据库表记录的方式实现分布式锁
同一进程内的不同线程操作共享资源时,我们只需要对资源加锁,比如利用JUC下的工具,就可以保证操作的正确性。对JUC不熟悉的同学,可以看看以下的几篇文章:浅说Synchronized Synchronized的优化 JUC基石——Unsafe类但是,为了高可用,我们的系统总是多副本的,分布在不同的机器上,以上同进程内的锁机制就不再起作用。为了保证多副本系统对共享资源的访问,我们引入了分布式锁。分布式锁主要的实现方式有以下几种:基于数据库的,其中又细分为基于数据库的表记录、悲观锁、乐观锁..原创 2022-01-08 19:45:43 · 1033 阅读 · 0 评论 -
SpringBoot基础之声明式事务和切面事务和编程式事务
前言事务是一个需要同时保证原子性、隔离性、一致性和持久性的一个或多个数据库操作本文会说明,springBoot中两种事务的实现方式,编程式事务配置和声明式事务配置还有切面事务,当然在此之前会说一些基础的东西:事务的四大特征,事务的隔离级别,事务的传播行为事务的四大特征(ACID)原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部执行,要么均不执行. 一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致. 隔离性(原创 2022-01-08 19:29:08 · 447 阅读 · 0 评论 -
Spring Boot 如何解决多个定时任务阻塞问题?
今天这篇文章介绍一下Spring Boot 中 如何开启多线程定时任务?为什么Spring Boot 定时任务是单线程的?想要解释为什么,一定要从源码入手,直接从@EnableScheduling这个注解入手,找到了这个ScheduledTaskRegistrar类,其中有一段代码如下:protectedvoidscheduleTasks(){if(this.taskScheduler==null){this.localExecutor=Executors....原创 2022-01-04 14:27:16 · 493 阅读 · 0 评论 -
已献出膝盖,GitHub上的宝藏级SpringBoot核心文档,讲得太清晰了
SpringBoot 以其轻量级、内嵌 Web 容器、一键启动、方便调试等特点被越来越多的微服务实践者所采用。然而知其然还要知其所以然,本 Chat 就来讲解 SpringBoot 核心模块的实现原理,在面试的时候也是会被经常问到的,核心内容主要包括:spring-boot-load 模块,正常情况下一个类加载器只能找到加载路径的 jar 包里面当前目录或者文件类里面的 *.class 文件,SpringBoot 允许我们使用 java -jar archive.jar 运行包含嵌套依赖 jar 的 j原创 2021-12-28 17:09:47 · 103 阅读 · 1 评论 -
apollo在Spring boot加载过程解析
前言apollo 是一个开源的配置中心项目,功能很强大,apollo 本身的配置项并不复杂,但是因为配置的路径特别多,非常容易搞混了, 所以本文试图聚焦 spring-boot 的场景,在 spring-boot 微服务场景下,搞清楚 apollo-client 的加载过程集成使用1、添加 gradle 依赖 implementation "com.ctrip.framework.apollo:apollo-client:1.6.0"2、配置 application.pro原创 2021-12-27 19:14:57 · 416 阅读 · 0 评论 -
SpringBoot配置加载原理(自定义加载配置)
前言在SpringBoot应用程序中会有很多的地方定义配置文件,如:bootstrap.propertiesapplication.properties或者是SpringCloud中定义的远程配置中心,在这些地方我们只需要定义好我们的配置属性,然后在代码中使用如下的两个注解就可以使用了:@Value(${server.port})--只能给一个属性赋值@ConfigurationProperties(prefix = "spring.datasource.druid")--可以将此前原创 2021-12-27 13:41:52 · 863 阅读 · 0 评论 -
SpringBoot + thymeleaf foreach踩坑记录
话说自从前后端分离之后,前后端放在一起的场景就很少了,最近写个简单的后台,突然踩坑了,使用themeleaf模板渲染时,发现th:each来遍历生成表单数据,一直抛异常,提示Property or field 'xxx' cannot be found on null接下来看一下这个问题到底是个什么情况I. 项目搭建1. 项目依赖本项目借助SpringBoot 2.2.1.RELEASE + maven 3.5.3 + IDEA进行开发开一个web服务用于测试<depende原创 2021-12-24 19:27:01 · 700 阅读 · 0 评论 -
SpringBoot基础之声明式事务和切面事务和编程式事务
前言事务是一个需要同时保证原子性、隔离性、一致性和持久性的一个或多个数据库操作本文会说明,springBoot中两种事务的实现方式,编程式事务配置和声明式事务配置还有切面事务,当然在此之前会说一些基础的东西:事务的四大特征,事务的隔离级别,事务的传播行为事务的四大特征(ACID)原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部执行,要么均不执行. 一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致. 隔离性(原创 2021-12-24 19:25:03 · 193 阅读 · 0 评论 -
Spring Boot 中的 AOP,到底是 JDK 动态代理还是 Cglib 动态代理?
大家都知道,AOP 底层是动态代理,而 Java 中的动态代理有两种实现方式: 基于 JDK 的动态代理 基于 Cglib 的动态代理 这两者最大的区别在于基于 JDK 的动态代理需要被代理的对象有接口,而基于 Cglib 的动态代理并不需要被代理对象有接口。那么小伙伴们不禁要问,Spring 中的 AOP 是怎么实现的?是基于 JDK 的动态代理还是基于 Cglib 的动态代理?1. Spring先来说结论,Spring 中的动态代理,具体用哪种,分情况: 如果代理对原创 2021-12-23 19:09:21 · 171 阅读 · 0 评论 -
配置浏览器信任的 Spring boot https 开发环境
日常大多数前端使用的都是 Chrome 浏览器,由于安全策略的限制,Chrome 不允许在 https 环境之下访问非 https 的资源,包括静态资源和非静态 http 请求,会报Mixed Content blocked错误,因此为了让前端同学可以在日常的环境中和后端同学联合调试就需要一套可信任的 https 环境,最终状态是通过自定义域名访问 http 服务事浏览器会显示证书安全的标志,如下访问 freecodecamp.org 一样本文详细记录了配合 Spring boot 在 Mac ..原创 2021-12-23 15:06:36 · 1652 阅读 · 0 评论 -
Spring Boot 自动配置数据源及操作数据库
数据库配置```application.properties``` springboot继承mybatis 测试类检查是否连接成功创建数据库CREATE DATABASE /*!32312 IF NOT EXISTS*/`lou_springboot` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `lou_springboot`;DROP TABLE IF EXISTS `tb_user`;CREATE TABLE `tb_user` (原创 2021-12-23 14:58:58 · 1085 阅读 · 0 评论 -
面试官:这份Spring Boot 核心知识点总结收好了
Spring Boot 核心功能1、独立运行Spring项目Spring boot 可以以jar包形式独立运行,运行一个Spring Boot项目只需要通过java -jar xx.jar来运行。2、内嵌servlet容器Spring Boot可以选择内嵌Tomcat、jetty或者Undertow,这样我们无须以war包形式部署项目。3、提供starter简化Maven配置spring提供了一系列的start pom来简化Maven的依赖加载,例如,当你使用了spring-boot原创 2021-12-22 13:57:16 · 176 阅读 · 0 评论 -
Spring Boot 切面的一种的测试方法
习惯了单元测试以后,一些代码在提交前如果不测试一下总是感觉心里面空空的,没有底气可言。Spring Boot提供的官方注释结合强大的Mockito能够解决大部分在测试方面的需求。但貌似对于代理模式下的切面却并不如意。情景模拟假设我们当前有一个 StudentControllor,该控制器中存一个 getNameById方法。@RestControllerpublic class StudentController { @GetMapping("{id}") public ..原创 2021-12-20 14:17:07 · 1068 阅读 · 0 评论 -
Spring Boot 解决跨域问题的 3 种方案
问题背景Same Origin Policy,译为“同源策略”。它是对于客户端脚本(尤其是JavaScript)的重要安全度量标准,其目的在于防止某个文档或者脚本从多个不同“origin”(源)装载。它认为自任何站点装载的信赖内容是不安全的。当被浏览器半信半疑的脚本运行在沙箱时,它们应该只被允许访问来自同一站点的资源,而不是那些来自其它站点可能怀有恶意的资源。注:具有相同的Origin,也即是拥有相同的协议、主机地址以及端口。一旦这三项数据中有一项不同,那么该资源就将被认为是从不同的Origin原创 2021-12-16 14:04:15 · 126 阅读 · 0 评论 -
SpringBoot之AOP面向切面编程
什么是AOPAOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率通俗点讲就是提供一个为一个业务实现提供切面注入的机制,通过这种方式,在业务运行中将定义好的切面通过切原创 2021-12-15 16:49:17 · 651 阅读 · 0 评论 -
基于 SpringBoot + MyBatis-Plus 的公众号管理系统
前言相信大家很多人都被公司领导要求过,说让大家来开发一个微信公众号的后台系统吧,大家是不是对微信这个各种繁琐的条件弄得非常头疼,今天给大家分享出一块源代码,大家以后如果有需要的,可以直接拿过来复制一下使用呦。wx-manage是一个支持公众号管理系统,支持多公众号接入。wx-manage提供公众号菜单、自动回复、公众号素材、简易CMS、等管理功能,请注意本项目仅为管理后台界面,需配合后端程序wx-api一起使用项目简介wx-manage是一个微信公众号管理系统,目前主要实现了如下功能:●原创 2021-12-15 14:41:47 · 112 阅读 · 0 评论 -
SpringBoot 五种热部署方式,提高生产效率
在SpringBoot中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在application.properties中关闭模版引擎的缓存,如下:1、模板热部署Thymeleaf的配置:spring.thymeleaf.cache=falseFreeMarker的配置:spring.freemarker.cache=falseGroovy的配置:spring.groovy.template.cache=false..原创 2021-12-15 14:36:21 · 187 阅读 · 0 评论 -
SpringBoot 中 Json 格式化配置
SpringBoot 针对 jackson 是自动化配置的,如果需要修改,也可以自定义配置。0x01:通过 application.yml配置属性说明:spring.jackson.date-format指定日期格式,比如 yyyy-MM-dd HH:mm:ss,或者具体的格式化类的全限定名。spring.jackson.deserialization是否开启 Jackson 的反序列化。spring.jackson.generator是否开启 json 的 generator...原创 2021-12-12 19:12:17 · 2307 阅读 · 0 评论 -
为什么 SpringBoot 的 jar 可以直接运行?
SpringBoot提供了一个插件spring-boot-maven-plugin用于把程序打包成一个可执行的jar包。在pom文件里加入这个插件即可:<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plug原创 2021-12-12 13:56:47 · 92 阅读 · 0 评论