springboot系列2-解析

SpringBoot2.x系列教程之SpringBoot2.x配置大全03 一. SpringBoot2.x配置大全03 #THREAD DUMP ENDPOINT(ThreadDumpEndpoint) management.endpoint.threaddump.cache.time-to-live = 0ms #可以缓存响应的最长时间。 management.endpoint.threaddump.enabled = true #是否启用threaddump端点。 #HEALTH INDICATORS management.health.db.enabled = t 阅读详情

1.解析

1、POM文件

1、父项目

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
    </parent>
    
    <!-- 他的父项目是:-->
    	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-dependencies</artifactId>
		<version>1.5.9.RELEASE</version>
		<relativePath>../../spring-boot-dependencies</relativePath>
	</parent>
	<artifactId>spring-boot-starter-parent</artifactId>
	<!-- 他来真正管理Spring Boot应用里面的所有依赖版本;-->

Spring Boot的版本仲裁中心;
以后我们导入依赖默认是不需要写版本;(没有在dependencies里面管理的依赖自然需要声明版本号)

2、启动器

	<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

spring-boot-starter-web:
帮我们导入了web模块正常运行所依赖的组件;

spring-boot-starter:
spring-boot场景启动器;
spring还有好多其他的启动器:
https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/html/using-boot-build-systems.html#using-boot-starter
在这里插入图片描述

Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter 相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器

2、主程序类,主入口类,注解配置解析

/**
 * @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用
 */
@SpringBootApplication
public class HelloWorld {
    public static void main(String[] args) {
        // Spring应用启动起来
        SpringApplication.run(HelloWorld.class,args);
    }
}

注解:
i @SpringBootApplication:
Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot 就应该运行这个类的main方法来启动SpringBoot应用;
其是一个组合注解,源码为:


@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
    @AliasFor(
        annotation = EnableAutoConfiguration.class,
        attribute = "exclude"
    )
    Class<?>[] exclude() default {};

    @AliasFor(
        annotation = EnableAutoConfiguration.class,
        attribute = "excludeName"
    )
    String[] excludeName() default {};

    @AliasFor(
        annotation = ComponentScan.class,
        attribute = "basePackages"
    )
    String[] scanBasePackages() default {};

    @AliasFor(
        annotation = ComponentScan.class,
        attribute = "basePackageClasses"
    )
    Class<?>[] scanBasePackageClasses() default {};
}

i-1 @SpringBootConfiguration:
Spring Boot的配置类; 标注在某个类上,表示这是一个Spring Boot的配置类;其包含:

  • i-1-1@Configuration:配置类上来标注这个注解;
    配置类 ----- 配置文件;配置类也是容器中的一个组件;@Component

i-2 @EnableAutoConfiguration:
开启自动配置功能;
以前我们需要配置的东西,Spring Boot帮我们自动配置;@EnableAutoConfiguration告诉SpringBoot开启自
动配置功能;这样自动配置才能生效;

@AutoConfigurationPackage
@Import(EnableAutoConfigurationImportSelector.class) 
public@interfaceEnableAutoConfiguration{
  • i-2-1 @AutoConfigurationPackage:自动配置包
@Import({Registrar.class})
public @interface AutoConfigurationPackage {
}

Spring的底层注解@Import,给容器中导入一个组件;
导入的组件由 Registrar.class将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器;

在这里插入图片描述

  • i-2-2 @Import(EnableAutoConfigurationImportSelector.class)
    给容器中导入组件?
    EnableAutoConfigurationImportSelector:导入哪些组件的选择器; 将所有需要导入的组件以全类名的方式返回;这些组件就会被添加到容器中;
    会给容器中导入非常多的自动配置类(xxxAutoConfiguration);
    就是给容器中导入这个场景需要的所有组件, 并配置好这些组件;
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    spring-boot-autoconfigure包中可以看到待导入的包
    在这里插入图片描述
    有了自动配置类,免去了我们手动编写配置注入功能组件等的工作; SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class,classLoader);
    Spring Boot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们进行自动配置工作。
    以前我们需要自己配置的东西,J2EE的整体整合解决方案和自动配置都在spring-boot-autoconfigure-1.5.9.RELEASE.jar;
SpringBoot2.x系列教程(六十七)Spring Boot注入RestTemplate及源码解析 引入SpringBoot本来就支持REST服务,因此在SpringBoot项目之间经常需要通过REST的形式来相互调用。本文以具体的实例带大家了解一下SpringBoot中怎么使用RestTemplate进行接口调用。同时,会讲解部分相关源码。 RestTemplate的实例化 RestTemplate实例通常需要自己进行定制,SpringBoot相关的自动配置bean。但是,SpringBoot提供了自动配置的RestTemplateBuilder,可以用它来创建RestTemplate实例。 那么,Sp 阅读详情

相关推荐

SpringBoot2.x系列教程(二十九)freemarker自动配置源码解析

在前几节中我们讲了SpringBoot中集成freemarker及其相关功能的使用。这篇文章我们从源码层面来看看,SpringBoot中freemarker相关的自动配置源码。 本篇文章源码以SpringBoot2.2.2版本为例。 FreeMarkerProperties 首先看对应application.properties的属性类FreeMarkerProperties。该类继承自Abstr...

程序新视界 1611

国内最全的Spring Boot系列之五

​ 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》

悟纤学院 6014

SpringBoot2.0:深入Spring Boot 2.0 系列内容,从入门到深入

Spring Boot 2.0 《深入Spring Boot 2.0》系列内容,持续更新!如您觉得该项目对您有用,欢迎点击右上方的Star按钮,给予鼓励与支持! 说明 在编写《深入Spring Boot (一):快速入门》和《深入Spring Boot (二):Spring Boot对构建系统的支持》时,2.0正式版还未发布,笔者在编写文中样例时对比了1.5.10稳定版和2.0开发版,这两部分内容基本没变化,基于对版本稳定性的考虑文中选择了1.5.10稳定版。 2018年3月1日Spring官网正式对外发布了2.0正式版,所以从《深入Spring Boot (三):Properties属性配置文件使用详解》开始,后续内容全部基于Spring Boot 2.0正式版。 目录 深入Spring Boot (十四):jar/war打包解决方案 深入Spring Boot (十五):web.xml

SpringBoot系列大全(一)SpringBoot入门

SpringBoot系列大全(一)-SpringBoot入门 SpringBoot官网链接:https://spring.io SpringBoot简介: 1.简化Spring应用开发的一个框架 2.整个Spring技术栈的一个大整合 3.J2EE开发的一站式解决方案; from all in one to micro-service 创建SpringBoot应用 方式一:使用...

随波的博客 3662

Zemax光学设计——单透镜设计

(1)在镜头数据编辑器中面2那一栏中的“曲率半径”栏右侧的方格中单击,弹出“在面2上的曲率解”对话框(2)将对话框中的求解类型设为“F数”(3)将“F/#”设置为10设置完成后,其中的一些数据会发生变化在初始结构中,透镜的曲率半径和厚度未知,,这些参数需要软件自动优化得到,但可以使用透镜后表面上边缘厚度解得到近轴焦平面的位置在透镜后表面的厚度上单击鼠标右键,选择边缘光线求解类型,它表示近轴边缘光线会自动在下一个表面上聚焦并确定距离值。

yangSHU21的博客 2万+

基于Super-Jacoco的精准测试实践之路

灵魂拷问这个版本的影响范围到底有多大?研发改动了代码,为什么不通知测试?测试用例真的全面覆盖了吗?测试同学的测试覆盖情况该怎么评估?什么是精准测试概念借助技术手段、通过辅助算法对软件测试过...

咻咻ing的专栏 5837

太全了!建议收藏!SpringBoot系列文章合集

最近加班太严重了,睡了一整天,爬起来整理一下以往发过的SpringBoot相关文章,最早的一篇追溯到2017年,部分原创和部分转载,SpringBoot作为近几年最热门的框架之一,学好...

JAVA葵花宝典 1211

在线考试系统源码+数据库+word+ppt(高分毕业设计)

本系统通过Spring Cloud实现微服务拆分,将授权、考试、监控等功能解耦,既保证了系统的扩展性,也便于后期维护。基于OAuth2.0的单点登录,解决多服务统一认证问题;考试与练习模式分离,满足不同场景需求;集成Druid与Hystrix,保障系统监控与稳定性。

weixin_44355158的博客 737

Spring Boot系列(一)---- Spring Boot入门详解

文章目录Spring Boot介绍SpringBoot优点微服务实现一个HelloWord应用环境说明实现功能具体步骤SpringBoot简化部署 Spring Boot介绍   Spring Boot用来简化Spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用。   随着Spring全家桶时代的到来,SpringBoot给我们带来了J2EE一站式解决方案 ,SpringCloud给我们带来了分布式整体解决方案。从此我们可以使用SpringBoot 快速的开发基于

chongzi的博客 1093

晶振(晶体振荡器)测试方法详解

晶振测试方法分为无源和有源两种类型。无源晶振(两脚)需用示波器测试波形,重点关注正弦波形状、200mV-1.5Vpp幅值和频率精度;有源晶振(四脚)通电后直接输出方波。测试要点包括:示波器使用10X探头、AC耦合,带宽需5倍于晶振频率;万用表可初筛短路/开路;替换法是工程最有效方法。常见故障排查顺序:供电→复位→焊接→型号→负载电容→波形观察→更换晶振→MCU配置。负载电容需按公式计算匹配,示波器观察是核心测试手段。

jiujiujinyuxi的博客 923

python实现ECMS算法

ECMS(Equivalent Consumption Minimization Strategy)算法是一种用于混合动力汽车能量管理系统的优化策略。它通过计算等效油耗来平衡电池电量消耗和燃油消耗,从而优化整体能耗。以下是一个简单的Python实现,用于演示ECMS算法的基本思想。这个实现假设了一个简单的混合动力汽车模型,其中电池电量和燃油消耗是主要的优化目标。

weixin_45570158的博客 921

[Spring-Boot 2.6.6源码解析系列]-5-SpringBoot容器的创建

目录5-SpringBoot容器的创建5.1 简介5.2 创建ApplicationContext对象5.2.1 容器工厂创建容器对象 5-SpringBoot容器的创建 5.1 简介 回顾一下我们 前面介绍的SpringBoot应用程序SpringApplication对象的运行方法的生命周期: 先直接贴代码,然后在代码上贴注释来看: public ConfigurableApplicationContext run(String... args) { //启动时间 long startTime

宋小生-中间件 530

基于simulink创建一个针对双馈异步风力发电机并网运行的仿真模型

摘要:本文详细介绍了基于Simulink的双馈异步风力发电机(DFIG)并网运行仿真建模方法。系统包含风速输入、风力机、双馈发电机、电力电子变换器、控制器和并网接口等模块,通过8个步骤完整呈现了建模流程,包括风速模拟、机械功率计算、发电机特性建模、变流器控制策略设计等关键环节。仿真可评估系统在不同风速条件下的动态响应、最大功率跟踪能力和发电效率,为风力发电系统的优化设计提供有效验证手段。模型可根据实际需求扩展环境因素和电网交互等细节,提高仿真精度。

amy_mhd的博客 333

springmvc无法解析视图前缀prefix_SpringBoot2.x系列教程之整合SpringMVC之内容协商视图解析器...

SpringBoot2.x系列教程28--整合SpringMVC之内容协商ContentNegotiatingViewResolver作者:一一哥我们在上一章节中,讲解了ContentNegotiating内容协商的使用及简单原理分析,上一章节主要是讲解内容协商在HttpMessage上的作用。其实内容协商不仅仅可以作用在HttpMessage上,还可以作用在View视图上,本章节我讲解该内容。一...

weixin_39890332的博客 799

Vue2 - 实现全景图Vr 720°全景效果查看预览功能,3D全景图流畅不卡顿渲染+手势拖拽+悬浮工具按钮,vue实现vr看720度全景效果方案讲解及示例代码(兼容电脑PC网页+手机H5移动端页面)

vue全景VR图,vue h5实现全景720预览,vue加载720全景图_vue怎么加载vr图片,vue实现vr全景看房,vue2实现全景效果,加载很慢卡怎么办,实现全景预览的插件,vue显示720度全景图,720°全景图显示,在h5中展示720°全景图,浏览全景图,基于vue实现vr全景预览,加载全景图,vue全景预览pannellum插件,vue实现3D全景图,实现720°全景图展示,在VUE 中使用three.js实现全景视频播放,vue项目中使用photo-sphere-viewer实现vr720度

🏆 前端领域优质创作者 3316

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SpringBoot源码解析系列(2) SpringBoot如何扫描并将对象注册Beandefinition

11

weixin_44669461的博客 445

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

死磕Spring系列:SpringBoot2.4.5源码解析

本文基于SpringBoot2.4.5。 1. 启动过程流程图 2. 源码解析 我们从一个SpringBoot的启动类自顶向下分析,常规的启动类是这样的(按照约定将此类放置在项目顶层包): package cn.javayuli; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.auto.

一半的博客 688

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SpringBoot系列(一):第2章SpringBoot 的依赖和自动配置解析

前言 本次主要对spring-boot-starter-web中pom.xml来解析SpringBoot为什么在很少的配置下就能运行起来? pom.xml &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://...

csdn_welearn的博客 513

SpringBoot2.x系列教程之整合SpringMVC之内容协商视图解析器

我们在上一章节中,讲解了ContentNegotiating内容协商的使用及简单原理分析,上一章节主要是讲解内容协商在HttpMessage上的作用。 其实内容协商不仅仅可以作用在HttpMessage上,还可以作用在View视图上,本章节我讲解该内容。 一.内容协商视图解析器 1.概述 ContentNegotiatingViewResolver自己并不解析视图,而是委派给其他的视图处理器。 为了使这个解析器正常工作,order序号需要设置成比其他的视图处理器高的优先级(默认就是最高的)。 2

qfchenjunbo的博客 303

[Spring-Boot 2.6.6源码解析系列]-1-从一个Demo入手

1-从一个Demo入手 在研究源码之前我们还是本地启动一个示例代码,来通过这个示例代码的启动过程来进行源码的解析。 SpringBoot使得创建独立的、生产级的、基于Spring的应用程序变得很容易,创建的项目可以直接启动。 我们对Spring平台和第三方库有一个独到的看法,这样您就可以用最少的麻烦开始了。大多数Spring引导应用程序需要最少的Spring配置。 可以使用SpringBoot创建可以使用的Java-jar或更传统的WAR部署启动的独立Java应用程序。还提供了一个运行spring脚本的命令

宋小生-中间件 964

springmvc视图解析器_SpringBoot2.x系列教程之整合SpringMVC之内容协商视图解析器

SpringBoot2.x系列教程28--整合SpringMVC之内容协商ContentNegotiatingViewResolver作者:一一哥我们在上一章节中,讲解了ContentNegotiating内容协商的使用及简单原理分析,上一章节主要是讲解内容协商在HttpMessage上的作用。其实内容协商不仅仅可以作用在HttpMessage上,还可以作用在View视图上,本章节我讲解该内容。一...

weixin_39884078的博客 79

SpringBoot源码解析系列(2)之@SpringBootApplication注解做了什么

springBoot源码解析系列(2)之@SpringBootApplication注解做了什么

m0_60907200的博客 738

Spring Boot 2.0 新特性系列 | 第一篇:配置绑定 2.0 全解析

推荐 Spring Boot/Cloud 视频: Java 微服务实践 - Spring Boot Java 微服务实践 - Spring Cloud &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在Spring Boot 2.0中推出了Relaxed Binding 2.0,对原有的属性绑定功能做了非常多的改进以帮助我们更容易的在Spring应用中加载和读取配置信息。下面本文就来说说Spr...

qq_43253123的博客 303
上一篇: springboot系列1
下一篇: springboot系列3-idea快速创建springboot
王小禾
博客等级 码龄11年 80粉丝 291原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值