为了账号安全,请及时绑定邮箱和手机立即绑定

Springboot框架资料:初学者快速上手指南

标签:
SpringBoot

本文介绍了Spring Boot框架的基本概念和优势,包括快速搭建项目、自动配置和嵌入式服务支持等功能。文章详细讲解了开发环境搭建、第一个Spring Boot应用的创建与构建,以及配置文件的使用。文中还深入解析了Spring Boot中的常用注解,并提供了创建RESTful服务的具体步骤。文中涵盖了丰富的Spring Boot框架资料。

Spring Boot简介

什么是Spring Boot

Spring Boot是由Pivotal团队提供的一个开源框架,旨在简化Spring应用程序的初始搭建和配置工作。它通过约定优于配置的原则,使得开发者无需过多关注配置细节,能够快速搭建基于Spring的应用程序。通过配置一些简单的属性,Spring Boot可以自动配置Spring应用程序的许多常见场景。

Spring Boot的优势

  1. 快速搭建项目:通过Spring Boot的约定优于配置原则,避免了大量的XML配置。
  2. 自动配置:许多常用配置已经内置,只需要在配置文件中简单指定即可。
  3. 嵌入式服务支持:支持Tomcat、Jetty、Undertow等多种嵌入式Web服务器,无需外部容器。
  4. 开箱即用:提供多种依赖的起步依赖,自动将常用的依赖添加到项目中。
  5. 监控与健康检查:内置了监控功能,如Actuator,方便开发人员了解应用的运行状态。

Spring Boot的核心概念

  • 起步依赖:Spring Boot提供了大量的起步依赖,如spring-boot-starter-web用于创建Web应用程序。
  • 自动配置:Spring Boot会根据类路径中的依赖自动配置Spring应用程序。
  • 命令行界面:Spring Boot提供了一个命令行界面,可以用来运行、打包应用程序。
  • Actuator:提供了监控和健康检查等功能,帮助开发人员查看应用的状态。
开发环境搭建

JDK安装与配置

  1. 下载JDK:首先需要从官方网站下载Java Development Kit (JDK)。
  2. 安装JDK:根据操作系统,按照安装向导进行安装。
  3. 环境变量配置:安装完成后,需要配置环境变量。
    • JAVA_HOME:指向JDK的根目录。
    • PATH:添加%JAVA_HOME%\bin(Windows)或$JAVA_HOME/bin(Linux/Mac)。
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$JAVA_HOME/bin:$PATH

Windows环境变量配置代码示例:

set JAVA_HOME=C:\Program Files\Java\jdk-11.0.1
set PATH=%JAVA_HOME%\bin;%PATH%

IDE选择与配置

常见的IDE选择有IntelliJ IDEA和Eclipse,这里以IntelliJ IDEA为例进行配置。

  1. 下载与安装IntelliJ IDEA
    • 访问官方网站下载对应版本的IntelliJ IDEA。
    • 按照安装向导进行安装。
  2. 创建Spring Boot项目
    • 打开IntelliJ IDEA,选择"Open"打开一个已有的项目,或者选择"File" -> "New" -> "Project"创建新项目。
    • 在打开的窗口中,选择"Spring Initializr",填入项目的基本信息,如组名(Group)、模块名(Artifact),并选择需要的依赖,如Web、Thymeleaf等。
  3. 配置Maven或Gradle
    • Spring Boot的项目通常使用Maven或Gradle进行构建。
    • 打开项目的pom.xml(Maven)或build.gradle(Gradle)文件,确保配置了正确的版本信息。
    • Maven示例:
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.4</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

Spring Boot项目创建与构建

  1. 创建项目
    • 使用IntelliJ IDEA的Spring Initializr创建项目,选择所需的依赖。
  2. 构建项目
    • 在IntelliJ IDEA中,可以通过"Build" -> "Rebuild Project"来构建项目。
    • 使用命令行构建项目,可以通过Maven或Gradle。
    • Maven命令:
mvn clean install
  • Gradle命令:
gradle build

通过命令行创建Spring Boot项目

可以通过Spring Initializr CLI工具创建Spring Boot项目:

spring init --dependencies=web my-first-spring-boot-app
第一个Spring Boot应用

创建第一个Spring Boot项目

  1. 使用Spring Initializr创建项目
    • 访问https://start.spring.io/,选择项目的基本信息(如组名、模块名)和依赖(如Web)。
    • 下载生成的压缩包,并解压到本地。
  2. 导入项目到IntelliJ IDEA
    • 打开IntelliJ IDEA,选择"File" -> "Open",选择解压后的项目文件夹。
    • IntelliJ IDEA会自动检测并加载项目依赖。

编写简单的Controller

  1. 创建Controller类
    • 创建一个新的Java类,命名为HelloController,并添加@Controller注解。
    • 在类中定义一个简单的HTTP请求处理方法,使用@GetMapping注解。
    • 示例代码:
package com.example.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {
    @GetMapping("/hello")
    @ResponseBody
    public String hello() {
        return "Hello, World!";
    }
}
  1. 测试Controller方法
    • 运行项目后,可以在浏览器中访问http://localhost:8080/hello,查看输出结果。

运行与测试项目

  1. 运行项目
    • 在IntelliJ IDEA中,可以通过"Run" -> "Run 'DemoApplication'"运行项目。
    • 或者使用命令行:
      • Maven命令:
mvn spring-boot:run
 - Gradle命令:
gradle bootRun
  1. 测试
    • 访问http://localhost:8080/hello,查看输出结果。
    • 可以通过浏览器或Postman等工具进行测试。
Spring Boot配置文件详解

application.properties配置文件

application.properties文件是Spring Boot项目的配置文件之一,可以设置各种应用级别的属性。

  • 示例
# DataSource settings
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# Server settings
server.port=8080
server.servlet.context-path=/api

# Logging settings
logging.level.root=INFO
logging.level.com.example.demo=WARN

application.yml配置文件

application.yml文件是另一种配置文件格式,使用YAML格式进行配置。

  • 示例
# DataSource settings
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver

# Server settings
server:
  port: 8080
  servlet:
    context-path: /api

# Logging settings
logging:
  level:
    root: INFO
    com.example.demo: WARN

配置文件的默认值和外部化配置

  • 默认值:Spring Boot会为许多属性提供默认值。例如,server.port的默认值是8080。
  • 外部化配置:可以通过外部文件或环境变量来覆盖配置文件中的值。
    • 外部文件
    • 将配置文件命名为application-<profile>.propertiesapplication-<profile>.yml,其中<profile>是环境标签,如devprod
    • Spring Boot支持多个配置文件,可以通过spring.profiles.active属性指定激活的配置文件。
    • 环境变量
    • 可以通过环境变量设置属性,例如SPRING_DATASOURCE_URL
    • 命令行参数
    • 可以通过命令行参数设置属性,例如--server.port=8081

实际配置文件应用场景

  • 示例配置:
    • 日志配置:
logging:
  file: ./logs/app.log
  level:
    root: INFO
    com.example.demo: DEBUG
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: always
Spring Boot常用注解解析

@SpringBootApplication

@SpringBootApplication是一个复合注解,包含以下三个注解:

  • @Configuration:标记一个类为配置类,可以包含@Bean方法。
  • @EnableAutoConfiguration:根据类路径中的类自动配置Spring应用。
  • @ComponentScan:自动扫描并注册标记了@Component及其衍生注解(如@Service@Controller@Repository)的类为Spring组件。

  • 示例
package com.example.demo;

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

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

@RestController与@RequestMapping

  • @RestController用于标记一个类为控制器类,适用于RESTful风格的应用程序,它会自动启用@ResponseBody
  • @RequestMapping用于将HTTP请求映射到控制器类的方法。
    • 示例
package com.example.demo.controller;

import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api")
public class HelloController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }

    @PostMapping("/post")
    public String post() {
        return "POST Request";
    }
}

@Service、@Repository与@Autowired

  • @Service用于标记一个类为服务层组件。
  • @Repository用于标记一个类为数据访问层组件。
  • @Autowired用于自动注入依赖。
    • 示例
package com.example.demo.service;

import org.springframework.stereotype.Service;

@Service
public class MyService {
    public String fetchData() {
        return "Data from Service";
    }
}
package com.example.demo.controller;

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

@RestController
public class HelloController {
    @Autowired
    private MyService myService;

    @GetMapping("/service")
    public String getServiceData() {
        return myService.fetchData();
    }
}

实际应用场景的示例代码

  • 例如服务层与数据访问层使用@Service@Repository注解的示例代码:
@Service
public class UserService {
    public User getUserById(Long id) {
        return userRepository.findById(id).orElse(null);
    }
}
创建RESTful服务

RESTful服务概念

REST(Representational State Transfer)是一种基于HTTP协议的软件架构风格。RESTful服务遵循HTTP方法(如GET、POST、PUT、DELETE)来操作资源。每个资源都有一个唯一的URL,通过不同的HTTP方法来执行不同的操作,如查询、创建、更新和删除资源。

创建RESTful服务接口

  1. 定义资源
    • 资源通常是一个名词,如用户、文章、订单等。
    • 为每个资源定义一个控制器类,并使用@RestController@RequestMapping注解。
  2. 实现资源操作
    • 使用HTTP方法来实现资源操作,如GET、POST、PUT、DELETE。
    • 示例:
package com.example.demo.controller;

import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/users")
public class UserController {
    @GetMapping("/{id}")
    public String getUser(@PathVariable Integer id) {
        return "User with ID " + id;
    }

    @PostMapping
    public String createUser() {
        return "User created";
    }

    @PutMapping("/{id}")
    public String updateUser(@PathVariable Integer id) {
        return "User with ID " + id + " updated";
    }

    @DeleteMapping("/{id}")
    public String deleteUser(@PathVariable Integer id) {
        return "User with ID " + id + " deleted";
    }
}

常见REST操作:CRUD

  • Create(创建)
    • 使用POST方法创建新资源。
    • 示例:
@PostMapping
public String createUser() {
    return "User created";
}
  • Read(读取)
    • 使用GET方法读取资源。
    • 示例:
@GetMapping("/{id}")
public String getUser(@PathVariable Integer id) {
    return "User with ID " + id;
}
  • Update(更新)
    • 使用PUT方法更新资源。
    • 示例:
@PutMapping("/{id}")
public String updateUser(@PathVariable Integer id) {
    return "User with ID " + id + " updated";
}
  • Delete(删除)
    • 使用DELETE方法删除资源。
    • 示例:
@DeleteMapping("/{id}")
public String deleteUser(@PathVariable Integer id) {
    return "User with ID " + id + " deleted";
}

通过上述步骤,你可以创建一个完整的RESTful服务,并实现基本的CRUD操作。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消