Spring Boot 入门教程

 1. 理解Spring Boot 


1.简化配置     

示例 1:Web 应用程序 

通过 @SpringBootApplication 注解启动一个简单的 Web 应用程序:

@SpringBootApplication
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}

这个注解包含了 @Configuration@ComponentScan@EnableAutoConfiguration,从而简化了配置。

2. 起步依赖(Starter Dependencies)

示例 2:Web 应用程序

使用 Spring Boot Starter Web,快速创建一个基本的 RESTful API :

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

这个 Starter 依赖包含了Spring MVC、Tomcat 等必需的库,可快速搭建一个 Web 应用。

3. 自动化配置

示例 3:数据库访问

添加 Spring Boot Starter Data JPA 依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

只需简单地配置数据源信息,Spring Boot 就会自动创建数据源和配置 JPA 等相关内容,无需手动配置大量的数据源和 EntityManager。

4. 外部化配置

示例 4:配置文件

application.propertiesapplication.yml 文件中配置数据库连接信息:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=username
spring.datasource.password=password

Spring Boot 会自动读取这些配置信息,并将其应用于相关的组件。

5. 基于注解 

示例 5:RESTful Controller

使用 @RestController 注解创建一个简单的 REST 控制器:

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello, Spring Boot!";
    }
}

这个简单的注解就能创建一个能够响应 HTTP GET 请求的控制器方法。

6. 外部化配置    

示例 6:监控和管理

Spring Boot 提供了诸如 /actuator/health/actuator/info 等端点,通过这些端点可以轻松地监控应用的健康状况和信息。

7. 整合生态系统   

示例 7:Spring Security

通过引入 Spring Boot Starter Security,轻松实现身份验证和授权,比如:

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    // 省略其他配置
}

2. 环境设置和配置


前提:需要准备的环境

Spring boot 2.x需要JDK 1.8.0_201(以上版本)Spring boot3.x需要JDK17
Apache Maven 3.6.0(以上版本)
IntelliJ IDEA Ultimate旗舰版


1. JDK安装

  • Jdk的下载与安装

通过官网下载https://www.oracle.com/java/technologies/downloads/
按步骤安装即可

  • 环境变量配置

1. 打开高级系统设置
右击主机,选择“属性”选项可以快速打开

2. 打开环境变量

 3. 新建系统变量

4. 新建JAVA_HOME变量,变量值为JDK安装路径

 5. 在系统变量中找到Path变量进行编辑

6. 将刚才新建的JAVA_HOME变量加入其中 

点击右边的新建即可

7. 利用CMD命令验证环境变量是否配置成功 java -version 

快捷键:windows + R 然后输入 cmd 命令

  • 环境变量配置说明

为什么需要配置环境变量?为了在命令行窗口下编译和运行Java程序。
我们所写的Java程序,都是保存在一个后缀名为.java的文件当中的,这个文件称之为源文件。源文
件并不能被执行,它需要首先被编译成二进制字节码文件,也就是后缀名为.class的文件。那么怎
样把源文件编译成二进制字节码文件呢?这时候就需要用到JDK当中提供的编译程序来完成这个任
务。编译程序是一个后缀为.exe的可执行文件,名字叫做javac,它存在于JDK安装路径下的bin文
件夹中。
我们的源文件文件有可能会被保存到磁盘上任何一个文件夹中。当我们在源文件所在的文件夹中
去调用javac编译程序,系统会发现根本就找不到这个它。
所以我们要设置在任何目录下都调用到该指定文件,为了在在任何文件夹下都调用到某一指定目
录下的文件,我们就应该配置环境变量(指定目录路径),让系统在你所配置的路径下去自己查找这
些文件然后运行
为什么需要新建JAVA_HOME变量?
方便引用
归一原则
当你JDK路径被迫改变的时候, 你仅需更改JAVA_HOME的变量值即可, 否则,你就要更改任何用绝对
路径引用JDK目录的文档, 要是万一你没有改全, 某个程序找不到JDK, 后果是可想而知的----系统崩
溃!
第三方软件会引用约定好的JAVA_HOME变量
JDK1.5之前的JDK版本还需要CLASSPATH的配置

2. Maven的安装

  • Maven的下载与安装

注意:maven的安装需要依赖jdk的安装,所以必须先安装完成jdk且配置好jdk环境变量后再进行maven的安装!!
通过官网下载https://maven.apache.org/download.cgi
按步骤安装即可

  • Maven环境变量配置

Maven环境变量配置步骤与JDK环境变量配置类似
官网下载的文件,注意路径要到无bin后缀的文件夹

添加环境变量

验证环境变量配置成功 mvn -v

  • Maven中央仓库配置(重要)  

配置maven中央仓库地址(参考https://blog.csdn.net/qq_47128897/article/details/131148421),中央
仓库是 Maven 的默认远程仓库,它包含了大量的开源 Java 项目和依赖库,我们可以通过 Maven 客户端
从中央仓库中下载需要的构建产物和依赖库,由于Maven默认的中央仓库地址较难访问,因此我们需要
配置国内镜像地址(镜像站,是指把现有的网站放在另外一个地方的服务器上的一个网站)提高下载速率,这里我们使用阿里云镜像。
打开你的maven配置文件找到 conf 文件夹


将下述代码复制到mirrors里,然后保存

<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/central/</url>
<mirrorOf>central</mirrorOf>
</mirror>

3. IntelliJ IDEA Ultimate旗舰版

为了方便Spring boot的开发,我们需要旗舰版的IDEA
通过官网下载https://www.jetbrains.com/idea/download/
IDEA旗舰版激活方式
学生认证(https://www.jetbrains.com/shop/eform/students)
配置IDEA(以IDEA2023为例)


1. 对项目进行全局配置

2. 对Maven进行配置

完成到这里,Spring boot的环境配置完成了!

3.Spring Boot基础

1. Spring Boot 项目结构

my-spring-boot-app/
  └── src/
      ├── main/
      │   ├── java/
      │   │   └── com/
      │   │       └── example/
      │   │           └── myapp/
      │   │               ├── MySpringBootApplication.java  // Spring Boot 应用入口
      │   │               ├── controllers/                  // 控制器层
      │   │               │   └── MyController.java         // REST 控制器
      │   │               ├── services/                     // 服务层
      │   │               │   └── MyService.java            // 服务类
      │   │               └── repositories/                 // 数据访问层
      │   │                   └── MyRepository.java         // 数据访问接口
      │   └── resources/
      │       └── application.properties (或 application.yml)  // 应用程序配置文件
      └── test/
          └── java/
              └── com/
                  └── example/
                      └── myapp/
                          └── MySpringBootApplicationTests.java  // 测试类
 

2. 主要注解示例

@SpringBootApplication

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MySpringBootApplication {
    public static void main(String[] args) {
        SpringApplication.run(MySpringBootApplication.class, args);
    }
}

@RestController

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello, Spring Boot!";
    }
}

3. 配置文件示例

application.properties

# 设置端口号
server.port=8080

# 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root_password

4. 服务层和依赖注入示例

服务(Service)

import org.springframework.stereotype.Service;

@Service
public class MyService {
    public String getMessage() {
        return "Hello from MyService!";
    }
}

依赖注入(Dependency Injection)  

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyController {
    private final MyService myService;

    @Autowired
    public MyController(MyService myService) {
        this.myService = myService;
    }

    @GetMapping("/message")
    public String getMessage() {
        return myService.getMessage();
    }
}

5. 数据访问示例 

Spring Data Repository

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface MyRepository extends JpaRepository<MyEntity, Long> {
    // 可以自定义查询方法
}

b. 使用 Repository

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyController {
    private final MyRepository myRepository;

    @Autowired
    public MyController(MyRepository myRepository) {
        this.myRepository = myRepository;
    }

    @GetMapping("/entities")
    public List<MyEntity> getAllEntities() {
        return myRepository.findAll();
    }
}

参考:ChatGPT   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值