1、主启动类
1.1 定义与功能
- Spring Boot的主启动类是一个特殊的Java类,用于启动Spring Boot应用程序。
- 该类通常使用@SpringBootApplication注解进行标注,这个注解是一个复合注解,包含@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan三个核心注解。
1.2 注解详解
- @SpringBootConfiguration:用于指定当前类是一个配置类,与@Configuration功能相同。
- @EnableAutoConfiguration:启动自动配置,它会根据类路径中的jar包依赖、各种属性设置和其他因素来自动配置Spring应用程序。
- @ComponentScan:让Spring扫描到Configuration类并把它加入到程序上下文。默认会扫描当前包及其子包下的所有类。
1.3 主方法
- 主启动类中的main方法是程序的入口点。
- 通过调用SpringApplication.run(SpringBootDemoApplication.class, args);来启动Spring Boot应用程序。
2、内置服务
2.1 内置Web服务器
- Spring Boot为Web应用提供了内置Web服务器,无需额外安装Tomcat、Jetty或Undertow等服务器。
- 通过添加相应的依赖(如
spring-boot-starter-web
),可以自动配置内置Web服务器。
2.2 支持的服务器
- Tomcat:默认内置Web服务器。
- Jetty:另一种轻量级的Web服务器。
- Undertow:一个高性能的Web服务器和Servlet容器。
- Netty:对于基于反应式编程的Web应用(使用Spring WebFlux),Netty是默认的选择。
2.3 自动配置机制
- 内置Web服务器的自动配置基于Spring Boot的自动配置SPI机制和BeanPostProcessor机制。
- 在项目启动时,Spring Boot会根据依赖关系和配置文件来选择合适的内置服务器并进行自动配置。
2.4 定制配置
- 如果需要定制内置服务器的配置,如端口号、访问日志等,可以通过配置文件(如application.properties或application.yml)进行设置。