手记

Springboot框架资料入门详解

概述

本文详细介绍了Spring Boot框架的入门知识,包括框架简介、环境搭建、第一个Spring Boot应用的创建、常用注解和配置、数据访问以及项目打包和部署。Spring Boot框架资料涵盖了从基础概念到高级功能的全面讲解,帮助开发者快速上手并充分利用Spring Boot的强大功能。

Spring Boot框架资料入门详解
Spring Boot简介

Spring Boot是什么

Spring Boot 是由Pivotal团队提供的一个基于Spring框架的开源项目。它的主要目标是简化Spring应用的初始搭建以及开发过程,使开发人员能够快速搭建独立的Spring应用。Spring Boot旨在提供“约定优于配置”的开发模式,减少开发人员在配置方面投入的时间,并且简化了Spring应用的配置。

Spring Boot的优点

  1. 快速启动:Spring Boot简化了创建独立的、生产级别的Spring应用的方式,它可以让你快速构建应用,无需配置XML或使用复杂性。
  2. 自动配置:Spring Boot提供了自动配置功能,能够根据应用所依赖的jar包,自动配置应用环境。
  3. 嵌入式Web服务器:Spring Boot自带嵌入式的Tomcat、Jetty或Undertow,开发者不需要安装和管理这些服务器,简化了部署过程。
  4. 健康检查和监控:内置了许多健康检查和监控功能,帮助开发者实时了解应用的运行状态。
  5. 数据库支持:内置了多种数据库的支持,包括JPA、MyBatis、Redis等。
  6. 日志配置简化:Spring Boot提供了一种简单的方式来配置日志框架(如Logback),并且集成了Spring Boot的Actuator,方便监控和管理应用。

Spring Boot与Spring的区别

  • Spring:Spring是一个全面的企业级应用开发框架,提供了依赖注入(DI)、AOP、事务管理等功能,需要手动配置大量XML或注解来完成功能装配。
  • Spring Boot:基于Spring框架,旨在简化配置,提供默认配置,让开发人员可以专注于业务逻辑,而不是配置细节。
Spring Boot环境搭建

安装JDK

  1. 下载JDK:访问Oracle官方网站或者OpenJDK官网下载适合自己操作系统的JDK版本。
  2. 安装JDK:运行下载的安装程序,按照向导完成安装。
  3. 配置环境变量:安装完成后,配置环境变量,编辑系统的环境变量,在系统变量中添加JAVA_HOME和Path变量。设置JAVA_HOME指向JDK的安装目录,Path变量添加%JAVA_HOME%\bin。
# 设置JAVA_HOME
set JAVA_HOME=C:\Program Files\Java\jdk-11.0.1

# 添加Path到环境变量
set PATH=%JAVA_HOME%\bin;%PATH%

安装IDE(推荐使用IntelliJ IDEA和Spring Tool Suite)

IntelliJ IDEA

  1. 下载并安装IntelliJ IDEA:访问官网下载并安装最新版本的IntelliJ IDEA,选择合适的安装路径。
  2. 创建项目:安装完成后,打开IDEA,选择创建新的项目,选择Spring Initializr。
  3. 配置项目:选择Spring Boot的版本,选择要集成的技术,如Web,JPA等。

Spring Tool Suite

  1. 下载并安装Spring Tool Suite:访问官网下载并安装最新版本的Spring Tool Suite,选择适合的操作系统。
  2. 创建项目:安装完成后,打开Spring Tool Suite,选择File -> New -> Spring Starter Project。
  3. 配置项目:选择Spring Boot的版本,选择要集成的技术,如Web,JPA等。

下载并安装Spring Boot Starter

  1. 下载Spring Boot Starter:Spring Boot Starter是Spring Boot应用的启动依赖,已包含所有的依赖,下载地址:https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-starter/
  2. 添加到项目中:在IDE中,右键项目,选择Add Framework Support,选择Spring Boot,然后选择添加Spring Boot Starter到项目中。示例如下:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
第一个Spring Boot应用

创建Spring Boot项目

  1. 创建项目结构:在IDE中创建一个新的Spring Boot项目。
  2. 编写简单的Hello World程序:在主类中编写一个简单的Hello World应用。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
public class HelloWorldApplication {

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

@RestController
class HelloController {

    @GetMapping("/")
    public String hello() {
        return "Hello, World!";
    }
}

运行并调试应用

  1. 运行应用:在IDE中,右键主类,选择Run 'HelloWorldApplication'运行应用。
  2. 调试应用:设置断点,右键主类,选择Debug 'HelloWorldApplication'调试应用。
Spring Boot常用注解和配置

@SpringBootApplication注解详解

@SpringBootApplication是Spring Boot的核心注解,它是一个组合注解,包含了@Configuration@EnableAutoConfiguration@ComponentScan三个注解的功能。

  • @Configuration:声明当前类是一个配置类。
  • @EnableAutoConfiguration:启用自动配置。
  • @ComponentScan:启用组件扫描,扫描指定包下的所有组件。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloWorldApplication {

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

@RestController和@RequestMapping注解使用

  • @RestController:表示该类中的方法将以JSON或XML格式输出,用于构建RESTful风格的Web服务。
  • @RequestMapping:映射HTTP请求到指定的方法,可以指定请求的URL、请求类型等。
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api")
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }
}

application.properties和application.yml配置文件介绍

application.propertiesapplication.yml是Spring Boot的配置文件,用于定义应用的各种属性。

# application.properties
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
# application.yml
server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: root
Spring Boot数据访问

使用Spring Boot访问MySQL数据库

  1. 添加依赖:在pom.xml文件中添加MySQL依赖。
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
  1. 配置数据源:在application.properties或application.yml中配置数据源。
# application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
# application.yml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: root
  1. 定义实体类:定义一个实体类,用于映射数据库中的表。
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String email;

    // getters and setters
}
  1. 定义Repository接口:定义一个Repository接口,用于操作数据库中的表。
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}
  1. 定义Service类:定义一个Service类,用于封装业务逻辑。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    public List<User> findAll() {
        return userRepository.findAll();
    }

    public User save(User user) {
        return userRepository.save(user);
    }
}
  1. 定义Controller类:定义一个Controller类,用于处理HTTP请求。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping
    public List<User> getAllUsers() {
        return userService.findAll();
    }

    @PostMapping
    public User createUser(@RequestBody User user) {
        return userService.save(user);
    }
}

配置JPA和Hibernate进行数据库操作

  1. 添加依赖:在pom.xml文件中添加JPA和Hibernate依赖。
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
  1. 启用JPA:在application.properties或application.yml中配置JPA。
# application.properties
spring.jpa.hibernate.ddl-auto=update
# application.yml
spring:
  jpa:
    hibernate:
      ddl-auto: update

实现简单的CRUD操作

  1. 创建数据:通过Controller中的save方法创建数据。
@PostMapping
public User createUser(@RequestBody User user) {
    return userService.save(user);
}
  1. 查询数据:通过Controller中的getAllUsers方法查询所有数据。
@GetMapping
public List<User> getAllUsers() {
    return userService.findAll();
}
  1. 更新数据:通过Controller中的save方法更新数据。
@PutMapping("/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User user) {
    return userService.save(user);
}
  1. 删除数据:通过Controller中的deleteById方法删除数据。
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable Long id) {
    userService.deleteById(id);
}
Spring Boot项目打包和部署

打包Spring Boot应用为可执行的JAR文件

  1. 打包项目:在IDE中,选择Build -> Package,打包项目为可执行的JAR文件。
mvn package
  1. 运行JAR文件:运行生成的JAR文件。
java -jar target/myapp.jar

使用Spring Boot Actuator监控应用

  1. 添加依赖:在pom.xml文件中添加Spring Boot Actuator依赖。
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  1. 配置Actuator:在application.properties或application.yml中配置Actuator。
# application.properties
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
# application.yml
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: always
  1. 访问Actuator端点:启动应用后,访问http://localhost:8080/actuator查看Actuator提供的各种端点。

部署Spring Boot应用到Tomcat或直接运行

  1. 部署到Tomcat:将打包好的JAR文件部署到Tomcat服务器,启动Tomcat服务器。
java -jar target/myapp.jar --server.port=8081
  1. 直接运行:在IDE中,选择Run -> Run Configuration,配置运行参数,启动应用。
0人推荐
随时随地看视频
慕课网APP