SpringBoot (2) 入门 HelloWorld 探究

一,pom 文件

父项目

<!-- 我们的父项目:-->
<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
 </parent>
       

<!-- spring-boot-starter-parent 的父项目是 -->
 <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.2.5.RELEASE</version>
    <relativePath>../spring-boot-dependencies</relativePath>
 </parent>  

<!--  spring-boot-dependencies 的父项目才是真正管理Spring Boot应用里面的所有依赖版本;-->

以后我们在pom文件中导入依赖(jar)默认不需要指定版本了,但没有在dependencies管理的依赖还是需要写版本的。

二,启动器

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

spring-boot-starter-web : 对全栈web的开发支持,包括tomcat和spring-mvc控制层框架。
spring-boot-starter : spring-boot的核心 自动配置支持 场景启动器
Spring Boot 将所有的功能场景都抽取出来,做出一个个的starter(启动器),只需要在项目里面引入这些starter,相关场景的依赖都会导入进来。要用什么功能就导入什么场景的启动器。Spring Boot 其实就是用 maven 把这些场景封装起来,做出一个个starter。要用的时候导入进来就有一大堆的操作了。

三,主程序,主入口类

@SpringBootApplication
public class Springboot1Application {
  
   public static void main(String[] args) {
       //spring启动
      	  SpringApplication.run(Springboot1Application.class, args);
   }

@SpringBootApplication : 标记某个类上说明这个是SpringBoot主配置类,SpringBoot就应该运行这个来启动SpringBoot应用;


Ctrl键+鼠标左键点击@SpringBootApplication 进入SpringBootApplication注解类:
在这里插入图片描述
@SpringBootApplication :Spring Boot 应用标注在某个类上,说明这个类是SpringBoot的主配置类,SpringBoot就要用这个类来启动SpringBoot应用;

@SpringBootConfiguration : Spring Boot 的配置类;
标注在某个类上,表示这是Spring Boot的配置类;

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

@EnableAutoConfiguration : 开启自动配置功能;

以前我们需要配置的东西,SpringBoot 帮我们自动配置;这个注解帮我们告诉SpringBoot 开启自动配置,这样自动配置才能生效。


Ctrl键+鼠标左键点击@EnableAutoConfiguration进入EnableAutoConfiguration注解类:
在这里插入图片描述
**@AutoConfigurationPackage:**自动配置包
@Impost(AutoConfigurationImpostSelector.class):
spring底层注解@Impost,给容器导入一个组件;导入的组件是 :AutoConfigurationPackages.Registrar.class;

将主程序类(@SpringBootApplication标注的类)的所在包以及下面所有子包里面的所有组件扫描到Spring容器;

给容器中导入组件?
EnableAutoConfigurationImportSelector : 导入哪些组件的选择器;
将所有所需要导入的组件以全类名的方式返回;这些组件就会被添加到容器中;
会给容器中导入非常多的自动配置类(xxxAutoConfiguration);就是给容器中导入这个场景需要的所有组件,并配置好这些组件。

有了此配置类,免去了我们手动编写注入功能组件等工作。
自动配置主要方法 :SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class,classLoader);


附:
Spring Boot 在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们进行自动配置工作;以前我们需要自己配置的东西,自动配置类都会帮我们配置;

J2EE的整体整合解决方案和自动配置都在 spring-boot-autoconfigure-1.5.9.RELEASE.jar;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赖伟春

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值