Spring Boot 初始(快速搭建 Spring Boot 应用环境)

提示:

① 通过下面的简介可以快速的搭建一个可以运行的 Spring Boot 应用(估计也就2分钟吧),可以简单的了解运行的过程。

② 建议还是有一点 Spring 和 SpringMVC的基础(其实搭建一个 Spring Boot 环境不需要也没有关系)

Spring Boot 初始(快速搭建 Spring Boot 应用环境)


一、脚手架

  • 脚手架是一种用在建筑领域的辅助工具,是为了保证建筑施工过程顺利进行而搭设的工作平台。软件工程中的脚手架是用来快速搭建一个小的可用的应用程序的骨架,将开发过程要用到的工具、环境都配置好,同时生成必要的模板代码。
  • 脚手架是辅助创建程序的工具,Spring Initializr 是创建 Spring Boot 项目的脚手架。快速建立一个 Spring Boot 应用的最好方式。它是一个 Web 应用,能够在浏览器中使用。IDEA 中继承了此工具,用来快速创建 Spring Boot 项目以及 Spring Cloud 项目。

1.脚手架网址

2.使用脚手架创建项目

  • 浏览器访问脚手架,创建项目。

  • IDEA 中使用脚手架。


二、目录结构


三、编写简单的代码运行

  • 在 controller 包中创建 HelloController.java 类如下:
  • 在 Application.java 类中添加如下代码:

四、运行 Spring Boot 项目的方式

  • 开发工具,例如 IDEA 执行 main 方法。
  • Maven 插件 mvn spring-boot:run。
  • java-jar jar 文件的路径。
  • 注意:
    • Spring Boot 项目可以打包为 jar 或 war 文件。因为 Spring Boot 内嵌了 web 服务器,例如 tomcat。能够以 jar 方式运行 web 应用。无需安装 tomcat 程序。
  • 普通的 jar 和 Spring Boot jar 的区别:
项目 Spring Boot jar 普通的 jar
目录 Boot-INF:应用的class和依赖jar;META-INF:清单;org.springframework.boot.loader:spring-boot-loader模块中的所有类 META-INF:清单;class 的文件:jar 中的所有类
BOOT-INF class:应用的类;lib:应用的依赖 没有BOOT-INF
spring-boot-start 执行 jar 的 spring boot 类 没有这部分
可执行 yes no

五、Spring Boot 初始的知识

1.starter

  • 带有 starter 单词的叫做启动器(启动依赖)
    • spring-boot-starter-xxxx : 是 spring 官方推出的启动器。
    • xxx-starter : 非官方推出的,由其他组织提供的。
  • starter 是一组依赖,应用中包含 starter,可以获取 spring 相关技术的一站式的依赖和版本。不必复制、粘贴代码。通过 starter 可以快速启动并运行项目。
  • starter 包含:
    • 依赖坐标、版本
    • 传递依赖的坐标、版本
    • 配置类,配置项
xml 复制代码
<dependencies>
		<!--
			Spring Web 依赖
			带有 starter 单词的叫做启动器(启动依赖)。
			spring-boot-starter-xxxx : 是 spring 官方推出的启动器。
			xxx-starter : 非官方推出的,由其他组织提供的。
		-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
	</dependencies>

2.Spring-boot-starter-parent

  • pom.xml 中 指定 spring-boot-starter-parent 作为坐标,表示继承 Spring Boot 提供的父项目。从 spring-boot-starter-parent 继承以获得合理的默认值和完整的依赖树,以便快速建立一个 Spring Boot 项目。父项目提供以下功能:

    • JDK 的基准版本,比如 <java.version>17</java.version>
    • 源码使用 UTF-8 编码格式
    • 公共依赖的版本。
    • 自动化的资源过滤:默认把 src/main/resources 目录下的文件进行资源打包。
    • maven 的占位符 '@'
    • 对多个 Maven 插件做了默认配置,如 maven-compile-plugin,maven-jar-plugin
  • 使用父项目的两种方式:

    • 在项目中,继承 spring-boot-starter-parent
    xml 复制代码
    <!-- 表示父项目-->
    <parent>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-parent</artifactId>
    	<version>3.2.2</version>
    	<relativePath/> <!-- lookup parent from repository -->
    </parent>
  • pom.xml 不继承,单独加入spring-boot-dependencies依赖

    xml 复制代码
    	<dependencyManagement>
    		<dependencies>
    			<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-dependencies</artifactId>
    			<version>3.1.1</version>
    			<type>pom</type>
    			<scope>import</scope>
    		</dependency>
    	</dependencies>
    </dependencyManagement>

3.核心注解 --- @SpringBootApplication

java 复制代码
package com.gdb.crm;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import java.util.Date;

/**
 * 核心注解功能
 * ① @SpringBootConfiguration:包含@Configuration注解的功能
 * 		@Configuration:Java Config 的功能,配置类,结合@Bean能够将对象注入到spring的IOC容器
 * 		@SpringBootConfiguration标注的类是配置类,Application是配置类
 *
 * ② @EnableAutoConfiguration:开启自动配置。将spring和第三方库中的对象创建好,注入到spring容器,避免写XML,去掉样例代码。需要使用的对象,由框架提供
 *
 * ③ @ComponentScan:组件扫描器。<context:component-scan base-package="xxxx包"/>
 * 		扫描@Controller,@Service,@Repository,@Component注解,创建它们的对象注入到容器。
 * 		springBoot约定:启动类,作为扫描包的根(起点),@ComponentScan从项目的根开始扫描(包括它的子包中的类)
 * 		所以默认将 Application 启动类放在根包的下面。
 * 总结:在入口做的事情是,将上面的三类对象放入到 spring 的 IOC 容器中。
 */
@SpringBootApplication
public class Application {
	@Bean
	public Date myDate(){
		return new Date();
	}

	public static void main(String[] args) {
		//run方法的第一个参数是 源(配置类),从这里加载 bean,找到 bean 注入到 spring 的容器中。
		SpringApplication.run(Application.class, args);
	}

}

六、总结

  • 创建一个可运行的 Spring Boot 应用的步骤。
    1. 使用脚手架搭建项目环境。
    2. 建立项目的目录结构。
    3. 编写简单的代码运行即可。

相关推荐
hrrrrb1 小时前
【Spring Security】Spring Security 概念
java·数据库·spring
小信丶1 小时前
Spring 中解决 “Could not autowire. There is more than one bean of type“ 错误
java·spring
摇滚侠3 小时前
Spring Boot 3零基础教程,IOC容器中组件的注册,笔记08
spring boot·笔记·后端
程序员小凯5 小时前
Spring Boot测试框架详解
java·spring boot·后端
你的人类朋友6 小时前
什么是断言?
前端·后端·安全
程序员小凯7 小时前
Spring Boot缓存机制详解
spring boot·后端·缓存
i学长的猫7 小时前
Ruby on Rails 从0 开始入门到进阶到高级 - 10分钟速通版
后端·ruby on rails·ruby
用户21411832636028 小时前
别再为 Claude 付费!Codex + 免费模型 + cc-switch,多场景 AI 编程全搞定
后端
hello 早上好8 小时前
深入 Spring 依赖注入底层原理
数据库·sql·spring
茯苓gao8 小时前
Django网站开发记录(一)配置Mniconda,Python虚拟环境,配置Django
后端·python·django