第一个SpringBoot应用
项目结构
-
根package:com.zyj.learn
-
SpringBoot要求main()方法所在启动类放在根package下
-
Application
@SpringBootApplication public class Application {public static void main(String[] args) throws Exception {SpringApplication.run(Application.class, args);}}
-
核心注解
@SpringBootApplication
-
启动Spring Boot应用程序只需要对启动类加上一个注解@SpringBootApplication,相当于启动了自动配置和自动扫描
-
@SpringBootApplication包含:
-
@SpringBootConfiguration
-
@EnableAutoConfiguration
-
@ComponentScan
启动依赖
spring-boot-starter-parent
可以简单理解为一个“模板”,它为创建Spring Boot应用程序提供了一些预设的规则和配置。当你的Spring Boot项目使用这个“模板”能得到以下好处:
自动管理依赖版本:自动管理Spring Boot相关依赖的正确版本。
预设的构建插件:提供了一些已经配置好的构建插件,比如编译Java代码的插件,运行测试的插件等。
确保Spring Boot特性正常工作:确保Spring Boot的自动配置、微服务等特性可以正常使用。
简化配置:很多常用的配置都已经为你设置好了,你不需要从头开始配置。
spring-boot-starter-web
这个启动器是用于创建基于Spring的Web应用程序的。它包含了构建RESTful web服务或传统的web应用程序所需的所有Spring Web库。
主要组件包括:
spring-web:提供Web应用程序的基础支持。
spring-webmvc:提供Spring MVC实现,用于构建RESTful web服务或模型-视图-控制器(MVC)应用程序。
其他相关库,如用于JSON处理的jackson-databind。
引入spring-boot-starter-web时,自动创建了:
ServletWebServerFactoryAutoConfiguration:自动创建一个嵌入式Web服务器,默认是Tomcat;
DispatcherServletAutoConfiguration:自动创建一个DispatcherServlet;
HttpEncodingAutoConfiguration:自动创建一个CharacterEncodingFilter;
WebMvcAutoConfiguration:自动创建若干与MVC相关的Bean。
spring-boot-starter-jdbc
这个启动器提供了构建使用JDBC(Java Database Connectivity)数据库操作的应用程序所需的依赖项。
主要组件包括:
spring-jdbc:提供JDBC抽象和Spring的JDBC支持。
spring-boot-starter:包含了自动配置、日志和YAML属性处理等Spring Boot核心功能。
spring-boot-starter-aop:提供面向切面编程(AOP)的支持,可用于声明式事务管理等。
引入spring-boot-starter-jdbc时,启动时会自动扫描所有的XxxAutoConfiguration:
DataSourceAutoConfiguration:自动创建一个DataSource,其中配置项从application.yml的spring.datasource读取;
DataSourceTransactionManagerAutoConfiguration:自动创建了一个基于JDBC的事务管理器;
JdbcTemplateAutoConfiguration:自动创建了一个JdbcTemplate。