一、通过Spring Initializr创建项目
使用Spring Initializr可快速生成标准的Spring Boot项目结构。该工具支持多种方式集成:网页端(https://start.spring.io)、Spring Tool Suite (STS)、IntelliJ IDEA 或命令行工具。无论哪种方式,核心流程一致:选择构建工具(Maven或Gradle)、定义项目坐标(Group ID、Artifact ID)、添加起步依赖(Starter Dependencies),并指定打包格式(jar或war)。完成后下载ZIP包解压,即可获得一个具备完整目录结构和配置文件的初始项目。
在IDE中,可通过菜单
New > Spring Starter Project 触发此过程,背后实际调用的是远程的start.spring.io服务。完成初始化后,可直接在IDE中右键启动类,选择
Run As > Spring Boot App,由嵌入式服务器自动运行应用。
二、启动应用的两种方式
1. **IDE集成运行**:在主启动类上右键执行"Run as → Spring Boot Application",IDE会自动加载上下文并启动内嵌服务器。
2. **命令行运行**:进入项目根目录(包含pom.xml),执行以下命令:
mvn spring-boot:run
Maven插件将自动编译、打包并运行应用,无需手动构建JAR。
三、主启动类的设计原理
Spring Boot应用通常以带有
@SpringBootApplication 注解的类作为入口点。该注解是一个组合注解,包含三个关键组件:
-
@ComponentScan:启用组件自动扫描,使控制器、服务等类能被注册为Spring Bean。
-
@Configuration:标识该类为配置类,允许使用Java配置替代XML。
-
@EnableAutoConfiguration:开启自动配置功能,根据classpath中的依赖项自动装配相应的Bean,如引入
spring-boot-starter-web后,会自动配置Tomcat和Web MVC。
此外,主类必须包含一个标准的
main 方法,其中调用
SpringApplication.run(Application.class, args) 启动应用上下文。这使得Spring Boot应用具备独立运行能力,不依赖外部容器。
若需禁用某项自动配置,可通过
exclude 属性排除特定配置类,例如:
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
四、全局配置文件管理
Spring Boot默认读取位于
src/main/resources 目录下的
application.properties 文件,用于覆盖默认设置。支持的配置项包括:
- 修改服务端口:
server.port=9090
- 更改根路径:
server.context-path=/helloboot
同时支持YAML格式(
application.yml)配置,语法更简洁,适合复杂层级结构。
五、Maven构建配置解析
项目中的
pom.xml 通常继承自
spring-boot-starter-parent,从而获得统一的依赖版本管理。此外,
spring-boot-maven-plugin 提供了关键功能:
- 将所有依赖打包进一个可执行的JAR文件;
- 添加
META-INF/MANIFEST.MF 文件,声明主类;
- 支持直接通过
java -jar app.jar 运行应用。
这种"可执行JAR"模式是Spring Boot微服务部署的核心优势之一。