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

SpringBoot资料:新手入门必备教程

概述

本文详细介绍了SpringBoot的核心概念和优势,包括快速上手、自动配置和嵌入式容器等功能。文章还涵盖了SpringBoot开发环境的搭建步骤以及第一个SpringBoot项目的创建过程。此外,文中还提供了丰富的SpringBoot资料,帮助开发者深入了解并掌握SpringBoot的各项功能。

SpringBoot简介
SpringBoot是什么

SpringBoot是Spring框架的一个模块,旨在简化Spring应用的初始搭建以及开发过程。它通过提供一系列开箱即用的配置,使得开发者可以快速构建独立的、功能丰富的应用。SpringBoot的设计目标是尽可能减少项目配置的繁琐性,使得开发人员可以专注于业务逻辑的实现,而不需要过多地关注基础设施的配置。

SpringBoot的优势
  1. 快速上手
    • SpringBoot通过提供默认配置和自动配置,大大降低了项目启动的门槛。
  2. 约定优于配置
    • SpringBoot遵循一套约定,开发者只需遵守这些约定,就可以省去很多配置步骤。
  3. 嵌入式容器
    • SpringBoot内置了Tomcat、Jetty或Undertow等Web服务器,可以运行在任何Java环境中,无需配置外部容器。
  4. 自动配置
    • 通过@SpringBootApplication注解,SpringBoot可以自动配置应用所需的bean。
  5. 内嵌式应用
    • SpringBoot应用可以被打包成可执行的jar或war文件,并且可以内嵌Web容器。
  6. 依赖管理和自动配置
    • SpringBoot提供了一套依赖管理和自动配置机制,可以简化项目的构建和维护。
  7. 开发、测试、生产环境配置
    • SpringBoot支持使用profiles来区分不同环境下的配置,如开发环境、测试环境和生产环境。
  8. 命令行接口
    • SpringBoot提供了一个强大的命令行接口(CLI),可以简化开发和调试过程。
  9. 响应式编程
    • SpringBoot支持响应式编程模型,使得开发者可以构建高度可扩展和低延迟的应用。
  10. 充分的社区支持
    • SpringBoot拥有庞大的社区支持和丰富的插件生态系统,可以方便地扩展和定制应用功能。
SpringBoot的核心概念
  1. @SpringBootApplication注解:该注解是SpringBoot的核心注解,用于标记主类,并开启自动配置功能。
  2. Spring Boot Starter:SpringBoot提供的一套依赖管理模块,可以在项目中引入特定功能的依赖,如spring-boot-starter-web用于构建web应用。
  3. 自动配置:SpringBoot会根据类路径下的依赖自动配置Spring的应用上下文。
  4. 配置文件application.propertiesapplication.yml用于存储应用的配置信息。
  5. 命令行接口(CLI):SpringBoot CLI工具允许开发者使用Groovy脚本快速创建应用。
开发环境搭建
安装JDK
  1. 访问JDK官网下载JDK。
  2. 安装JDK,并确保环境变量配置正确。
  3. 通过命令行验证安装是否成功。
    • 打开命令行工具,输入java -version,如果显示版本信息,则安装成功。
      java -version
安装IDE(如IntelliJ IDEA或Spring Tool Suite)
  1. 安装IntelliJ IDEA:下载并安装IntelliJ IDEA
  2. 安装Spring Tool Suite:下载并安装Spring Tool Suite
  3. 安装完成后,在IDE中配置JDK路径。
    • 在IntelliJ IDEA中,打开File -> Project Structure -> Project -> SDK,选择已安装的JDK。
    • 在Spring Tool Suite中,打开Window -> Preferences -> Java -> Installed JREs,添加已安装的JDK路径。
  4. 配置完成后,可以通过IDE创建新的SpringBoot项目。
  5. 开发环境搭建完成后,可以启动IDE并新建一个SpringBoot项目进行测试。
下载并配置SpringBoot
  1. 访问SpringBoot官网获取最新版本。
  2. 下载并解压SpringBoot Starter,或使用Maven或Gradle依赖管理工具。
  3. 在IDE中配置项目,选择SpringBoot Starter依赖。
  4. 配置完成后,项目即可使用SpringBoot的功能。
第一个SpringBoot项目
创建SpringBoot项目
  1. 打开IDE,选择新建SpringBoot项目。
  2. 在Spring Initializr界面中选择项目配置:
    • 语言:Java
    • 编程模型:Maven或Gradle
    • 依赖:选择Web依赖
  3. 输入项目信息,如项目名称、包名等。
  4. 完成项目创建后,IDE会自动生成基本的项目结构。
运行Hello World程序
  1. 打开Application.java文件,这是项目的主类。
  2. 添加@SpringBootApplication注解以启用自动配置。
  3. 添加简单的main方法启动程序。
  4. 在IDE中运行项目。
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;

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

5. 启动后访问`http://localhost:8080`,查看是否返回"Hello World"。

## 项目结构介绍
src/main/java/com/example/demo -- Application.java -- DemoApplication.java -- controller -- HelloWorldController.java
-- service
-- HelloWorldService.java
-- repository
-- HelloWorldRepository.java
- `Application.java`:主类,启动应用程序。
- `DemoApplication.java`:配置类,包含应用程序的配置信息。
- `controller`:控制器层,处理HTTP请求。
- `service`:服务层,封装和处理业务逻辑。
- `repository`:数据访问层,与数据库交互。

### DemoApplication.java
```java
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);
    }
}
常用注解和配置
@SpringBootApplication注解

@SpringBootApplication是一个组合注解,包含@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan

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

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
  • @SpringBootConfiguration:启动配置类。
  • @EnableAutoConfiguration:开启自动配置功能。
  • @ComponentScan:扫描并注册组件。
@RestController注解

@RestController注解用于标记控制器类,表示该类处理HTTP请求。

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

@RestController
public class HelloWorldController {
    @RequestMapping("/")
    public String helloWorld() {
        return "Hello World";
    }
}
@Service和@Repository注解

@Service用于标记服务类,@Repository用于标记数据访问类。

import org.springframework.stereotype.Service;

@Service
public class HelloWorldService {
    // 业务逻辑
}
import org.springframework.stereotype.Repository;

@Repository
public class HelloWorldRepository {
    // 数据访问逻辑
}
properties和yml配置文件

SpringBoot支持application.propertiesapplication.yml两种配置文件格式。

application.properties示例

# 端口号
server.port=8080

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

application.yml示例

server:
  port: 8080

spring:
  datasource:
  url: jdbc:mysql://localhost:3306/test
  username: root
  password: 123456
数据库集成
使用SpringBoot集成MySQL数据库
  1. 修改配置文件,添加MySQL数据库配置。
  2. 使用JPA或MyBatis等ORM框架操作数据库。

    application.properties配置

    spring.datasource.url=jdbc:mysql://localhost:3306/test
    spring.datasource.username=root
    spring.datasource.password=123456
    spring.jpa.hibernate.ddl-auto=update
    spring.jpa.show-sql=true

    application.yml配置

    spring:
    datasource:
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: 123456
    jpa:
    hibernate:
    ddl-auto: update
    show-sql: true
基本的CRUD操作
  1. 创建实体类。
  2. 创建数据访问接口及实现类。
  3. 创建服务类实现CRUD逻辑。
  4. 创建控制器类处理HTTP请求。

    实体类

    
    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

}

### 数据访问接口
```java
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
}

服务类

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 User createUser(User user) {
        return userRepository.save(user);
    }

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

    public User getUserById(Long id) {
        return userRepository.findById(id).orElse(null);
    }

    public User updateUser(User user) {
        return userRepository.save(user);
    }

    public void deleteUser(Long id) {
        userRepository.deleteById(id);
    }
}

控制器类

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;

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

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

    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
        return userService.getUserById(id);
    }

    @PutMapping("/")
    public User updateUser(@RequestBody User user) {
        return userService.updateUser(user);
    }

    @DeleteMapping("/{id}")
    public void deleteUser(@PathVariable Long id) {
        userService.deleteUser(id);
    }
}
使用JPA进行数据操作

JPA(Java Persistence API)提供了对持久化数据进行管理的标准接口,SpringBoot集成了JPA,使得数据库操作简单高效。

  1. 使用@Entity注解标记实体类。
  2. 使用@Repository@JpaRepository注解标记数据访问层。
  3. 使用@Service注解标记业务逻辑层。
  4. 使用@Controller@RestController注解标记控制器层。
  5. 使用@Autowired注解注入依赖。
测试和部署
单元测试和集成测试

SpringBoot支持JUnit和Mockito进行单元测试和集成测试。

单元测试示例

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class UserServiceTest {
    @Autowired
    private UserService userService;

    @Test
    public void testCreateUser() {
        User user = new User();
        user.setName("John Doe");
        user.setEmail("john.doe@example.com");

        User savedUser = userService.createUser(user);
        assertNotNull(savedUser);
        assertNotNull(savedUser.getId());
        assertEquals("John Doe", savedUser.getName());
        assertEquals("john.doe@example.com", savedUser.getEmail());
    }
}

集成测试示例

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.web.servlet.MockMvc;

@WebMvcTest(UserController.class)
public class UserControllerTest {
    @Autowired
    private MockMvc mockMvc;

    @Test
    public void testGetAllUsers() throws Exception {
        mockMvc.perform(get("/users"))
               .andExpect(status().isOk());
    }
}
使用Maven或Gradle打包
  1. 使用Maven或Gradle构建工具进行打包。
  2. 在IDE中运行mvn packagegradle build命令。
  3. 打包完成后,生成的jar或war文件位于targetbuild/libs目录下。
    mvn package

    gradle build
部署到Tomcat或SpringBoot内置容器
  1. 使用内置容器部署应用。
  2. 将war文件部署到Tomcat。
  3. 使用命令行启动应用。

    内置容器部署

    java -jar target/demo-0.0.1-SNAPSHOT.jar

    Tomcat部署

    将生成的war文件复制到Tomcat的webapps目录下,Tomcat会自动解压并部署应用。

    cp target/demo-0.0.1-SNAPSHOT.war /path/to/tomcat/webapps/
点击查看更多内容
TA 点赞

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

评论

作者其他优质文章

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

100积分直接送

付费专栏免费学

大额优惠券免费领

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

举报

0/150
提交
取消