Spring Boot 笔录
Spring Boot概述
SpringBoot是由Pivotal团队研发的一款全新开源的轻量级框架,以可看作是Spring框架的延续,基于Spring框架设计而来,目的是为了简化Spring的使用难度,省去了繁重的配置,提供了各种启动器,开发者能快速上手。SpringBoot的核心设计思想:约定优于配置,SpringBoot所有开发细节都是依据此思想进行实现的,开发者仅需专注写代码即可
Spring Boot的核心注解
@SpringBootApplication和入口类
Spring Boot 项目一般都会有一个“Application”的入口类,入口类里有一个main方法,标准的Java应用程序入口方法。
@SpringBootApplication是Spring Boot的核心注解,它其实是一个组合注解,主要注解:@SpringBootConfiguration、@EnableAutoConfiguration
@ComponentScan
package com.example.test;
@SpringBootApplication
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
-
@SpringBootConfiguration
@SpringBootConfiguration是一个组合注解,是对@Configuration的封装,我们可以认为是@Configuration注解。在项目中推荐使用@SpringBootConfiguration替代@Configuration注解。
知识扩充:Spring的 java 配置方式是通过@Configuration和@Bean这两个注解实现的:
1.@Configuration作用于类上,相当于xml配置文件;
2.@Bean作用在方法上,相当于xml中的配置。 -
@EnableAutoConfiguration
“开启自动装配”注解,开启后,SpringBoot就能根据当前类路径下的包或者类来配置Spring Bean。
如:我们添加spring-boot-starter-web的依赖,项目中也会引入SpringMVC的依赖,SpringBoot就会自动配置tomcat和SpringMVC -
@ComponentScan
开启组件扫描,自动扫描包路径下的@Component注解进行注册bean实例放到context(容器)中。默认扫描@SpringBootApplication所在类的同级目录及它的子目录
关闭自动配置
SpringBoot根据项目中的jar包依赖,自动配置,如果我们不需要SpringBoot 自动配置,想关闭某一项的自动配置,该如果设置呢?
比如:我们不想自动配置Redis
SpringBoot的优点
- 上手容易,可以快速搭建项目;
- 对主流开发框架的无配置集成;
- 项目可独立运行,内置tomcat等Servlet容器,无需外部依赖;
- 提供了一系列大型项目的通用非业务性功能;
- 提高了开发、部署效率,为Spring开发提供了一个更快、更广泛的入门体验;
- 避免大量的Maven导入和各种版本冲突。
自定义Banner
启动Spring Boot项目后会看到这样的图案:
自定义图片:
链接:https://www.bootschool.net/ascii
关闭banner,在启动类中,定义一个SpringApplication,将其banner属性设置为“Mode.off”即可:
@SpringBootApplication
public class TestApplication {
public static void main(String[] args) {
SpringApplication springApplication = new SpringApplication(TestApplication.class);
springApplication.setBannerMode(Banner.Mode.OFF);
springApplication.run(args);
}
}
全局配置文件
Spring Boot项目使用一个全局的配置文件application.properties或者是application.yml,在resources目录下。
如:更改端口号为8080
server.port=8080
Spring Boot的自动配置原理
Spring Boot在进行SpringApplication对象实例化时会加载META-INF/spring.factories文件,将该配置文件中的配置加载到Spring容器中。
SpringBoot启动过程
https://www.cnblogs.com/theRhyme/p/11057233.html
参考:
https://blog.csdn.net/acmman/article/details/81636291
https://blog.csdn.net/weixin_40353578/article/details/88256090