springboot007启动配置原理
几个重要的事件回调机制:ApplicationContextInitializer配置在META-INF/spring.factoriesSpringApplicationRunListener配置在META-INF/spring.factoriesApplicationRunner只需要放在ioc容器中CommandLineRunner只需要放在ioc容器中1. SpringBoot启动流程创建SpringApplication对象public SpringApplication(ResourceLoad...
2024-01-10spring boot启动原理
本文内容纲要:spring boot启动原理我们开发任何一个Spring Boot项目,都会用到如下的启动类1 @SpringBootApplication2 public class Application {3 public static void main(String[] args) {4 SpringApplication.run(Application.class, args);5 }6 }从上面代码可以看出,Annotation定义(@SpringBootApp...
2024-01-10SpringBoot自动配置原理详解
目录阅读收获一、SpringBoot是什么二、SpringBoot的特点三、启动类3.1 @SpringBootApplication四、@EnableAutoConfiguration4.1 @AutoConfigurationPackage4.2 @Import({AutoConfigurationImportSelector.class})五、流程总结图六、常用的Conditional注解七、@Import支持导入的三种方式阅读收获理解SpringBoot自动配置原理一、SpringBoot是什么S...
2024-01-10Springboot启动扫描包的原理
参考链接1 参考链接2 所参照代码为Springboot2.1.1 默认情况下,扫描范围是主类xxxApplication所在包及其子目录,可以在后面的具体实现中看到。 从主类中的SpringApplication.run(xxxApplication.class, args);一直点击进入run方法的实现,这里可以看到run方法里有几个关于context的方法分别是: createApplicationContext...
2024-01-10springboot mvc自动配置问题?
其中的自动配置类WebMvcAutoConfiguration里面的两个内部配置类:1:WebMvcAutoConfigurationAdapter;2:EnableWebMvcConfiguration。然后WebMvcAutoConfigurationAdapter上有个注解:@Import(EnableWebMvcConfiguration.class),有两个疑问:1:为啥EnableWebMvcConfiguration已经是个配置类了会随着WebMvcAutoConfiguration加载而一起...
2024-01-10浅析SpringBoot自动化配置原理实现
绪论什么是SpringBoot?Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。简单来说就是SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(...
2024-01-10spring boot(二):启动原理解析
本文内容纲要:spring boot(二):启动原理解析我们开发任何一个Spring Boot项目,都会用到如下的启动类1 @SpringBootApplication2 public class Application {3 public static void main(String[] args) {4 SpringApplication.run(Application.class, args);5 }6 }从上面代码可以看出,Annotation定义(@SpringB...
2024-01-10SpringBoot 自动配置失效的解决方法
目录问题描述@EnableConfigurationProperties 注解行为配置有效,AutoTestConfiguration 未刷新prefix-type@ConditionalOnProperty@ConditionalOnProperty match 逻辑@ConditionalOnProperty skip 逻辑总结本文源自近期项目中遇到的问题, bug 总是出现在你自以为是的地方...问题描述下面是一个简单复现的代码片段,在你没有阅读完本文时...
2024-01-10Springboot源码分析启动流程自动配置详解
上一篇:SpringBoot源码分析-启动流程-准备ApplicationContext概要阅读本篇博客需要对Spring源码有一定的阅读经验,比如Spring先将要实例化类信息封装为一个BeanDefinition,然后根据BeanDefinition实例化Bean。Spring提供了那些方式可以导入类并封装为BeanDefinition,在封装过程中可以通过什么扩展点进行干预。阅读...
2024-01-10这样讲SpringBoot自动配置原理,你应该能明白了吧
本文主要分为三大部分:SpringBoot 源码常用注解拾遗SpringBoot 启动过程SpringBoot 自动配置原理1. SpringBoot 源码常用注解拾遗 这部分主要讲一下 SpringBoot 源码中经常使用到的注解,以扫清后面阅读源码时候的障碍。组合注解 当可能大量同时使用到几个注解到同一个类上,就可以考虑将这几个注解到别的...
2024-01-10springboot的java配置方式(实例讲解)
1.创建User实体类。@Datapublic class User { private String username; private String password; private Integer age;}2.创建UserDao用于模拟数据库交互。public class UserDao{ public List<User> queryUserList() { List<User> result = new ArrayList<User>(); //模拟数据库查询 for(int i = 1...
2024-01-10springboot集成druid连接池配置的方法
在开发项目中如果数据库选型为mysql,很大概率下连接池会使用druid这里介绍springboot集成duridspringboot : 2.1.9druid : 1.1.10案例地址github地址springboot集成druid配置需要引入的pom <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</...
2024-01-10springboot自动装配扫描mapper失效?
使用springboot集成mybatis时,在配置文件中配置了扫描xml文件路径,但是运行的时候告诉我找不到对应的mapper这个bean,这貌似没有给我进行自动装配,如果所示:yml配置如下这个是mapper对应路径,在mapper接口上加上@Mapper注解或者启动类MapperScan后就可以正常使用,但是想知道为什么,在yml中不是配置的扫描路径没有生效,不会给我自动去扫描尝试着打断点 ...
2024-03-02基于spring boot 命令行启动的一些坑
目录spring boot 命令行启动的一些坑1.spring boot项目启动时可以指定启动的参数2.使用–spring.profiles.active=test,无论如何都没办法修改环境spring-boot命令行启动(指定端口启动)springboot指定端口的三种方式方法一方法二spring boot 命令行启动的一些坑1.spring boot项目启动时可以指定启动的参数例如:java -jar Proje...
2024-01-10Springboot系列(三)SpringBoot自动配置原理解析
文章已经收录在 Github.com/niumoo/JavaNotes ,更有 Java 程序员所需要掌握的核心知识,欢迎Star和指教。欢迎关注我的公众号,文章每周更新。注意:本 Spring Boot 系列文章基于 Spring Boot 版本 v2.1.1.RELEASE 进行学习分析,版本不同可能会有细微差别。前言关于配置文件可以配置的内容,在 Spring Boot 官方网...
2024-01-10springboot 多数据源配置不生效遇到的坑及解决
目录多数据源配置不生效遇到的坑解决方案踩坑SpringBoot配置多数据源,循环引用问题解决办法多数据源配置不生效遇到的坑**同步数据时遇到多个数据源切换的问题,配置了yml文件时候发现启动的时候不加载数据源的配置。**spring:datasource:db1:driver-class-name:xxxxxxxurl:jdbc:xxxxxxxusername:rootpassword:111111...
2024-01-10SpringBoot server.port配置原理详解
目录SpringBoot server.port配置原理1. autoConfigure2. embed tomcat如何使用小结一下server.port不起作用SpringBoot server.port配置原理我们经常配置server.port=xxx,但其实这是一个比较复杂的过程才生效的,这次讲讲生效的过程。1. autoConfigure本质来源于自动配置org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFacto...
2024-01-10SpringBoot异步使用@Async的原理以及线程池配置详解
目录前言使用步骤配置线程池类参数配置自定义线程任务总结原理刨析文章参考前言在实际项目开发中很多业务场景需要使用异步去完成,比如消息通知,日志记录,等非常常用的都可以通过异步去执行,提高效率,那么在Spring框架中应该如何去使用异步呢使用步骤完成异步操作一般有两种,消息...
2024-01-10springboot启动后卡住无日志的几种情况小结
目录1.场景复现1.1 说一下比较通用常见的场景1.2 不太常见的场景2.解决思路总结一下,出现的问题场景今天分享一下springboot启动后无日志的问题。1.场景复现springboot项目启动后卡住无日志,肯定是报错了或者其他原因,并且日志没有打印出来。1.1 说一下比较通用常见的场景检查一下 是否 exclude了spr...
2024-01-10Spring Boot日志技术logback原理及配置解析
一、logback日志技术介绍Spring Boot中使用的日志技术为logback。其与Log4J都出自同一人,性能要优于Log4J,是Log4J的替代者。在Spring Boot中若要使用logback,则需要具有spring-boot-starter-logging依赖,而该依赖被spring-boot-starter-web所依赖,即不用直接导入spring-boot-starter-logging依赖。二、添加配置属性该文件名为l...
2024-01-10springboot 基于Tomcat容器的自启动流程分析
Springboot 内置了Tomcat的容器,我们今天来说一下Springboot的自启动流程。一、Spring通过注解导入Bean大体可分为四种方式,我们主要来说以下Import的两种实现方法:1、通过实现ImportSerlector接口,实现Bean加载:public class TestServiceImpl { public void testImpl() { System.out.println("我是通过importSelector导入进来的servi...
2024-01-10springboot配置多数据源的实例(MongoDB主从)
相信看过上一篇文章的小伙伴已经知道了, 这章要讲的就是MongoDB主从配置。在这边文章中,你将要学到的是在项目中配置主从数据库,并且兼容其他数据库哟。。这些都是博主项目中需要并且比较重要的知识哦~好了,废话不多说,直接进主题。1.pom依赖<span style="white-space:pre"> </span><dependency> <group...
2024-01-10springBoot启动时让方法自动执行的几种实现方式
在springBoot中我们有时候需要让项目在启动时提前加载相应的数据或者执行某个方法,那么实现提前加载的方式有哪些呢?接下来我带领大家逐个解答1.实现ServletContextAware接口并重写其setServletContext方法@Componentpublic class TestStarted implements ServletContextAware { /** * 在填充普通bean属性之后但在初始化之前...
2024-01-10Nginx之upstream的四种配置方式
1、轮询(weight)指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。默认当weight不指定时,各服务器weight相同,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。upstream bakend { server 192.168.1.10 weight=1; server 192.168.1.11 weight=2;}2、ip_hash每...
2024-01-10springboot后端返回的下载路径如何设置成相对路径?
问题:在前端下载文件时,由于后端返回的是绝对路径,浏览器会报错Not allowed to load local resource无法直接下载,必须点击这个log链接才能进行下载。后端返回的这个下载路径是在idea项目目录下动态生成的,有没有办法将这个路径转换为相对路径呢?回答:你的地址路径应该自己管理,你可以自行拼...
2024-01-10