SpringBoot
文章平均质量分 96
SpringBoot
Apple_Web
吃苹果的程序员正在努力ing...
展开
-
探秘SpringBoot默认线程池:了解其运行原理与工作方式(@Async和ThreadPoolTaskExecutor)
/设置线程池参数信息//修改拒绝策略为使用当前线程执行//初始化线程池此时运行debug,可以看到不会启动报错,对应的线程池参数也是我们自定义的了注意当我们上面自定义了线程池疑惑,@Sync对应的线程池也是我们自定义的这个,不会再采用默认的SimpleAsyncTaskExecutor核心线程数:线程池中始终活跃的线程数量。最大线程数:线程池能够容纳同时执行的最大线程数量。原创 2024-05-22 21:56:40 · 1882 阅读 · 0 评论 -
你是否傻傻分不清SpringBoot默认线程池和内置Tomcat线程池?
在Java应用程序中,线程池是一种用于管理和重用线程的机制。线程池可以显著提高多线程应用程序的性能,避免不必要的线程创建和销毁开销,同时有效控制并发线程数量,防止系统资源被耗尽。对于SpringBoot程序,我们知道它是会有一个内置的Tomcat,但是我自己之前一直对于SpringBoot默认线程池和SpringBoot内置Tomcat线程池概念不是很清晰,很容易混淆,甚至以为它们就是一个东西,经过这次深入了解以后,发现两个完全是不同的东西,接下来跟我一起探索吧~我们可以通过在应用的配置文件(如或。原创 2024-05-12 23:27:55 · 3315 阅读 · 0 评论 -
全网最全解析!Spring与非Spring环境下获取动态代理对象的原始目标对象
为什么这个userSerivce代理对象里面又是一个CGLIB$CALLBACK_0变量???为什么这个userMapper代理对象里面是一个h变量???关于这个问题的话,我在之前的文章中其实已经讲到了,这里面涉及到了两种动态代理的原理,可以看我之前文章深入探索JDK动态代理:从入门到原理的全面解析探索Cglib:解析动态代理的神奇之处今天我们不讨论这个问题,我们讨论另外一个问题,如何获取这两种动态代理对象里面的原始目标对象???原创 2024-04-01 20:59:31 · 1972 阅读 · 0 评论 -
带你拿捏SpringBoot自动装配的核心技术?模块装配(@EnableXXX注解+@Import)+ 条件装配(@ConditionalXXX)
之前文章我们完整的学习了模块装配的核心使用方法,通过模块装配,咱可以通过一个注解,一次性导入指定场景中需要的组件和配置。使用的时候就只需要传入对应的.class即可,原来的是直接传入Condition接口的实现类,现在这个ConditionalOnBean注解相当于封装了一层。等重要对象信息,根据这些对象就可以获取和检查spring容器初始化时所包含的所有信息,再结合业务需求,就可以实现组件注册时的自定义条件判断。根据条件的不同,这个自动配置类可能会在Spring容器中自动配置一些与JPA相关的Bean。原创 2024-01-14 15:49:52 · 1138 阅读 · 0 评论 -
@EnableXXX注解+@Import轻松实现SpringBoot的模块装配
最早我们开始学习或接触过 SSH 或者 SSM 的框架整合,大家应该还记得那些配置文件有多烦吧,又多又不好记真的很让人头大。在处理配置文件的同时,大家是否有想过:如果能有一种方式,可以使用很少的配置,甚至不配置就可以完成一个功能的装载,那岂不是省了很多事?这个疑问在 SpringBoot 中得以解决,也就是我们常说的自动装配,而这个自动装配的核心技术就是模块装配 + 条件装配。今天我们这里主要讲解模块装配,条件装配我们后续再讲解!原创 2024-01-02 20:04:42 · 1909 阅读 · 1 评论 -
解析Spring Boot中的CommandLineRunner和ApplicationRunner:用法、区别和适用场景详解
在Spring Boot应用程序中,CommandLineRunner和ApplicationRunner是两个重要的接口,它们允许我们在应用程序启动后执行一些初始化任务。本文将介绍CommandLineRunner和ApplicationRunner的区别,并提供代码示例和使用场景,让我们更好地理解和使用这两个接口。原创 2023-11-19 13:50:10 · 3914 阅读 · 0 评论 -
SpringBoot +JdbcTemplate+VUE 实现在线输入SQL语句返回数据库结果
想起来要做这个功能是因为我们公司的预生产环境和生产环境如果想要连接数据库都需要登录堡垒机,然后再通过堡垒机进行跳转到对应定制的Navicat 连接工具进行查询。每次这个过程十分繁琐,所以就想直接在我们的系统上直接做个口子,登录以后,可以直接输入SQL查询,跟直接连接Navitcat效果是一样的。原创 2023-10-22 18:59:25 · 1426 阅读 · 6 评论 -
每天debug/run一键启动的Spring Boot控制台启动日志,你了解过吗?
每次打开Idea点击debug/run启动SpringBoot项目时,都在坐等启动成功的最后一行日志,然而对于启动过程中,控制台里面的每一行日志代表什么?你可能从来没去管他!是的,曾经我也是这样的,然而今天对此引起了我的好奇心。。。接下来,随着跟我一探究竟Spring Boot启动日志的真相!......启动日志可以分为两部分1、JDK执行Spring Boot应用的启动命令2、Spring Boot本身启动时的日志。原创 2023-10-15 16:57:34 · 531 阅读 · 0 评论 -
Nginx与Spring Boot的错误模拟实践:探索502和504错误的原因
刚工作那会,最常见的报错是,曾经也碰到过前端反馈或者,那时候傻傻的搞不懂,以为这种都是外部服务或者网络运维部那边的问题。当时那个服务里正好有个调用日志,平时会记录各种200,4xx状态码的信息。于是我跑到服务日志里去搜索了一下502这个数字,毫无发现。于是跟反映错误的前端说,“服务日志里并没有502的记录,你是不是搞错啦?现在想想,果然那时候还是个小白。。。在Nginx中,access.log和error.log是两个重要的日志文件,用于记录服务器的访问和错误信息。原创 2023-10-04 23:21:59 · 4674 阅读 · 1 评论 -
深入探究Spring Boot自动配置原理及SPI机制:实现灵活的插件化开发
在传统的Spring应用程序中,我们需要手动配置各种组件、依赖和属性,以满足应用程序的需求。这通常涉及编写大量的XML配置文件或Java配置类,并进行复杂的依赖注入和组件装配。这种手动配置过程可能非常繁琐且容易出错。而Spring Boot的自动配置机制通过约定大于配置的原则,基于应用程序的依赖和配置信息,自动推断和配置应用程序所需的各种组件。它通过提供默认的配置和装配规则,减少了我们的工作量,使得我们可以更专注于业务逻辑的开发。接下来就讲解一下自动配置的原理实现。原创 2023-09-17 20:44:40 · 790 阅读 · 0 评论 -
SpringBoot启动指定profile的8种方式你懂了吗?
配置文件中设置通常在公司级别的项目中,我们可能会写多个application- dev/prod.yml ,然后我们通常会在application.yml配置文件中写入spring: profiles: active: dev这里会指定激活的profile是application- dev.yml注意:application.yml中类似Java中的父类,其他application- dev/prod.yml会继承这个文件,可以进行重写,没有进行重写的属性我们也是能直接读取的,比如a原创 2021-09-11 17:24:41 · 11195 阅读 · 3 评论 -
@Component 和,@Bean和@ImportResource的区别
spring帮助我们管理Bean分为两个部分,一个是注册Bean,一个装配Bean。完成这两个动作有三种方式:一种是使用自动配置的方式:@Compent一种是使用JavaConfig的方式:@Configuration再结合@Bean一种就是使用XML配置的方式:< bean id=“student” class=“com.apple.Student”/>在自动配置的方式...原创 2019-09-24 23:46:35 · 2440 阅读 · 1 评论 -
springboot使用logback及配置文件讲解
文章目录一、日志级别二、SpringBoot引入logger三、通过springboot配置文件配置logback四、通过XMl文件自定义logback配置4.1configuration父标签4.2 contextName属性4.3 property属性4.4 appender节点4.4.1 控制台输出appender4.4.2 文件输入appender4.5 root节点-启用配4.6 logger节点4.7 root和logger的关系4.8多环境日志配置日志处理是一个正式项目必备的功能,日志要能够原创 2020-09-07 16:48:19 · 8746 阅读 · 1 评论 -
Spring Validation最佳实践及其实现原理,参数校验没那么简单!
之前也写过一篇关于Spring Validation使用的文章,不过自我感觉还是浮于表面,本次打算彻底搞懂Spring Validation。本文会详细介绍Spring Validation各种场景下的最佳实践及其实现原理,死磕到底! 项目源码:spring-validation简单使用Java API规范(JSR303)定义了Bean校验的标准validation-api,但没有提供实现。hibernate validation是对这个规范的实现,并增加了校验注解如@Email、@Length等。Sp转载 2020-08-10 15:55:37 · 411 阅读 · 0 评论 -
41 道 Spring Boot 面试题,帮你整理好了!
今天跟大家分享下SpringBoot 常见面试题的知识。1 什么是springboot ?用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件)创建独立的spring引用程序 main方法运行嵌入的Tomcat 无需部署war文件简化maven配置自动配置spring添加对应功能starter自动化配置答:spring boot来...转载 2020-05-08 16:37:41 · 3449 阅读 · 0 评论 -
Idea实现Springboot热部署三步骤
注意:总共会有三个步骤,漏掉某一个就很有可能不可以在maven的pom.xml文件添加以下依赖(热部署功能spring-boot-1.3开始有的)<groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><!-...原创 2019-09-01 15:32:14 · 1595 阅读 · 0 评论 -
Springboot实现方法异步调用
文章目录SpringBoot中使用 async实现异步调用定义线程池使用实战单元测试注意事项Spring中用ThreadPoolTaskExecutor实现异步调用SpringBoot中使用 async实现异步调用基于注解的使用方式包括如下三步:启动类加上@EnableAsync(也可以在配置类中加上)配置类中完成异步线程池的导入(这一个可以不要,采用默认的)需要异步调用的方法加上@A...原创 2020-01-15 22:18:31 · 5196 阅读 · 0 评论 -
问题排查记录:如何解决spring-boot项目启动卡住
文章目录问题背景问题分析假设问题小心求证问题总结问题背景一个spring boot开发的项目,spring boot版本是1.5.7,携带的spring版本是4.1.3。开发反馈,突然在本地启动不起来了,表象特征就是在本地IDEA上运行时,进程卡住也不退出,应用启动时加载相关组件的日志也不输出。症状如下图:问题分析因为没有有用的日志信息,所以不能从日志这个层面上排查问题。但是像这种没有输...转载 2019-12-04 11:08:56 · 2580 阅读 · 0 评论 -
最全面的spring boot启动原理整合
我们开发任何一个Spring Boot项目,都会用到如下的启动类1 @SpringBootApplication2 public class Application {3 public static void main(String[] args) {4 SpringApplication.run(Application.class, args);5 }...原创 2019-11-26 09:24:16 · 472 阅读 · 0 评论 -
44种Spring Boot应用启动器你懂了吗?
spring Boot应用启动器基本的一共有44种,具体如下:1)spring-boot-starter这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。2)spring-boot-starter-actuator帮助监控和管理应用。3)spring-boot-starter-amqp通过spring-rabbit来支持AMQP协议(Advanced Messag...原创 2019-10-01 18:24:57 · 288 阅读 · 0 评论 -
springboot配置两个parent的方法
在向pom.xml 文件中添加依赖之前需要先添加spring-boot-starter-parent。springboot-starter- parent主要提供了如下默认配置: .Java版本默认使用1.8.编码格式默认使用 UTF-8.提供Dependency Management进行项目依赖的版本管理。默认的资源过滤与插件配置。spring-boot-starter-paren...原创 2019-09-30 09:17:35 · 6833 阅读 · 0 评论 -
springboot路径映射和跳板页
路径映射一般情况下,使用了页面模板后,用户需要通过控制器才能访问页面。有-些页面需要在控制器中加载数据,然后渲染,才能显示出来;还有一些页面在控制器中不需要加载数据,只是完成简单的跳转,对于这种页面,可以直接配置路径映射,提高访问速度。例如,有两个Thymeleaf做模板的页面login.html和index.html,直接在MVC配置中重写addViewControllers方法配置映射关系即...原创 2019-09-30 09:00:36 · 878 阅读 · 0 评论 -
Spring Boot如何配置静态资源的地址与访问路径
静态资源,例如HTML文件、JS文件,设计到的Spring Boot配置有两项,一是“spring.mvc.static-path-pattern”,一是“spring.resources.static-locations”,很多人都难以分辨它们之间的差异,所以经常出现的结果就是404错误,无法找到静态资源。1. “spring.mvc.static-path-pattern”spring.m...转载 2019-09-20 17:28:40 · 598 阅读 · 0 评论 -
springBoot属性注入的三种常用方式
注意:SpringBoot是默认识别application.properties和application.yml文件的。如果在application配置文件写信息:jdbc.username=rootjdbc.password=123456不需要写@PropertySource(“classpath:jdbc.properties”)注解,如果自己定义jdbc.properties里面写...原创 2019-09-05 23:49:29 · 3226 阅读 · 0 评论