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

Springboot项目开发教程:轻松入门与实战

标签:
SpringBoot
概述

Spring Boot项目开发教程详细介绍了从环境搭建到项目部署的全过程,包括开发环境的配置、第一个Spring Boot项目的创建与运行、核心配置及数据库集成等内容。此外,教程还提供了打包部署与常见问题的解决方法,帮助开发者快速掌握Spring Boot项目开发。

Spring Boot 简介
Spring Boot 是什么

Spring Boot 是一个基于 Spring 框架的简化开发工具,它允许开发者快速构建独立、生产级别的基于 Spring 的应用。Spring Boot 通过提供一系列默认配置和约定,使得开发者能够以最少的配置完成应用的初始化和运行。它能够自动配置 Spring 应用所需要的组件,例如数据源、事务管理器、Web 服务器等,大大减少了初始配置的工作量。

Spring Boot 的优势
  1. 自动配置:Spring Boot 可以自动配置 Spring 应用,减少了手动配置的复杂性。例如,它可以根据添加的依赖自动配置数据源、事务管理器等。
  2. 独立运行的可执行 JAR 文件:使用 Spring Boot 创建的应用可以打包为独立的可执行 JAR 文件,可以直接运行,而不需要部署到传统的应用服务器上。
  3. 嵌入式 Web 服务器:Spring Boot 可以将 Web 服务器(如 Tomcat、Jetty 或 Undertow)嵌入到应用中,使得应用可以独立运行。
  4. 约定优于配置:Spring Boot 通过约定优于配置的方式来减少代码量。
  5. 不需要 XML 配置:Spring Boot 非常少用 XML 配置,主要使用注解来配置应用。
  6. 热部署:Spring Boot 支持热部署,代码修改后可以自动重启应用,方便开发和调试。
开发环境搭建

安装 JDK

确保安装了 Java 开发工具包(JDK),推荐版本为 Java 8 或更高版本。

安装 Maven

Maven 是一个强大的项目管理和构建工具,用于构建和管理 Java 项目。安装 Maven 后,确保环境变量已正确配置,可以在命令行中运行 mvn -v 来检查版本。

安装 IDE

推荐使用 IntelliJ IDEA 或 Eclipse 等 IDE。安装后,确保 IDE 中安装了 Maven 插件。

创建 Spring Boot 项目

  1. 打开命令行工具,运行以下命令来创建一个新的 Spring Boot 项目:

    $ mvn archetype:generate -DgroupId=com.example -DartifactId=demo -DarchetypeArtifactId=spring-boot-starter-web -DinteractiveMode=false
  2. 创建完成后,进入项目目录:

    $ cd demo
  3. 使用 IDE 打开项目。

配置 IDE

在 IntelliJ IDEA 中,可以按照以下步骤导入 Maven 项目:

  1. 打开 IntelliJ IDEA,选择 "File" -> "Open",然后选择项目根目录。
  2. 在打开的项目窗口中,选择 "Import Project"。
  3. 在打开的对话框中,选择 "Maven",然后点击 "Next"。
  4. 根据向导完成项目导入。

IDE 配置总结

  1. 导入项目后,确保 Maven 仓库已正确配置。
  2. 安装 Spring Boot 插件,可以提高开发效率。
第一个 Spring Boot 项目

创建项目

  1. 使用 Maven 创建一个新的 Spring Boot 项目,如上文所述,示例 pom.xml 文件如下:

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
  2. 确保项目结构正确,包含 src/main/javasrc/main/resources 目录。

编写第一个 Controller

创建 Controller 类

创建一个新的 Java 类 HelloController,并添加 @RestController 注解:

package com.example.demo;

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

@RestController
public class HelloController {

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

解释代码

  • @RestController:将此类标记为控制器,且所有返回类型均为字符串或 JSON 类型。
  • @GetMapping:映射到 HTTP GET 请求。
  • hello 方法:处理 /hello 路径的 GET 请求。

运行项目

启动应用

src/main/java 目录下找到 DemoApplication.java 文件,这个文件是 Spring Boot 应用的主入口点。确保它包含以下内容:

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);
    }
}

运行应用

  1. 打开命令行工具,切换到项目根目录。
  2. 运行 mvn spring-boot:run 命令启动应用。

或者在 IDE 中运行 DemoApplication 类的 main 方法,启动应用。

测试应用

在浏览器中输入 http://localhost:8080/hello,可以看到返回的字符串 "Hello World!"。

Spring Boot 核心配置
application.properties 与 application.yml

Spring Boot 项目中的配置文件主要有两种形式:application.propertiesapplication.yml。这两种文件都可以用来配置 Spring Boot 应用的属性。

application.properties

使用属性文件时,属性名和值之间用等号 = 分隔:

server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/testdb
spring.datasource.username=root
spring.datasource.password=root
logging.level.root=INFO

application.yml

使用 YML 文件时,属性名和值之间用冒号 : 分隔,支持嵌套属性:

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/testdb
    username: root
    password: root
logging:
  level:
    root: INFO
配置文件的常用属性

服务器配置

server.port:配置服务器监听端口

server.port=8080

数据源配置

spring.datasource.url:数据库连接 URL

spring.datasource.username:数据库用户名

spring.datasource.password:数据库密码

日志配置

logging.level.root:设置根日志级别

logging.level.root=INFO

环境变量配置

可以通过环境变量覆盖配置文件中的属性:

spring.datasource.url=${DB_URL}
spring.datasource.username=${DB_USERNAME}
spring.datasource.password=${DB_PASSWORD}

设置环境变量:

$ export DB_URL=jdbc:mysql://localhost:3306/testdb
$ export DB_USERNAME=root
$ export DB_PASSWORD=root
数据库集成
Spring Boot 与 MyBatis 集成

添加依赖

pom.xml 文件中添加 MyBatis 和 MySQL 的依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.4</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.26</version>
    </dependency>
</dependencies>

配置数据源

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

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

创建实体类

创建一个简单的实体类 User

package com.example.demo.model;

import lombok.Data;

@Data
public class User {
    private int id;
    private String name;
    private String email;
}

创建 Mapper 接口

创建一个 Mapper 接口 UserMapper

package com.example.demo.mapper;

import com.example.demo.model.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface UserMapper {
    @Select("SELECT id, name, email FROM users")
    List<User> getAllUsers();
}

创建 Service 类

创建一个 Service 类 UserService

package com.example.demo.service;

import com.example.demo.mapper.UserMapper;
import com.example.demo.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

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

创建 Controller 类

创建一个 Controller 类 UserController

package com.example.demo.controller;

import com.example.demo.service.UserService;
import com.example.demo.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/users")
    public List<User> getUsers() {
        return userService.getAllUsers();
    }
}
Spring Boot 与 JPA 集成

添加依赖

pom.xml 文件中添加 JPA 和 MySQL 的依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
</dependencies>

配置数据源

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

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

创建实体类

创建一个简单的实体类 User

package com.example.demo.model;

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 int id;
    private String name;
    private String email;

    // Getters and Setters
}

创建 Repository 接口

创建一个 JPA Repository 接口 UserRepository

package com.example.demo.repository;

import com.example.demo.model.User;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

public interface UserRepository extends JpaRepository<User, Integer> {
    List<User> findAll();
}

创建 Service 类

创建一个 Service 类 UserService

package com.example.demo.service;

import com.example.demo.model.User;
import com.example.demo.repository.UserRepository;
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> getAllUsers() {
        return userRepository.findAll();
    }
}

创建 Controller 类

创建一个 Controller 类 UserController

package com.example.demo.controller;

import com.example.demo.service.UserService;
import com.example.demo.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/users")
    public List<User> getUsers() {
        return userService.getAllUsers();
    }
}
项目打包与部署
使用 Maven 打包

打包命令

在项目根目录下,运行以下命令来打包项目:

$ mvn clean package

打包完成后,在 target 目录下会生成一个独立的可执行 JAR 文件。

手动启动 Jar 文件

可以在命令行中运行生成的 JAR 文件:

$ java -jar target/demo-0.0.1-SNAPSHOT.jar
部署 Spring Boot 应用到 Tomcat

打包为 WAR 文件

修改 pom.xml 文件,将打包方式改为 WAR:

<packaging>war</packaging>

添加 Tomcat 依赖:

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

src/main/webapp/WEB-INF 下创建 web.xml 文件:

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
          http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
          version="3.1">
    <display-name>Spring Boot Web App</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
</web-app>

部署到 Tomcat

将 WAR 文件复制到本地 Tomcat 安装目录的 webapps 文件夹中,启动 Tomcat 服务器后,应用会自动部署。

访问应用

在浏览器中输入 http://localhost:8080/app-name,其中 app-name 是 WAR 文件的名称。

常见问题与调试技巧
常见错误及解决方法
  1. 找不到类或包

    • 确保类路径配置正确,IDE 中的项目结构是否正确。
    • 检查依赖是否正确添加到 pom.xml 文件中。
  2. 无法连接到数据库

    • 检查数据库连接配置是否正确。
    • 确保数据库服务正在运行。
  3. 端口冲突

    • 修改 application.propertiesapplication.yml 文件中的端口号。
    • 确保没有其他应用占用该端口。
  4. 依赖冲突
    • 检查 pom.xml 文件中的依赖是否冲突。
    • 使用 mvn dependency:tree 查看依赖树。
调试工具的使用

使用 IDEA 调试工具

  1. 设置断点:在代码中需要调试的地方设置断点。
  2. 启动调试模式:右键点击 main 方法,选择 "Debug" 选项。
  3. 查看变量值:在调试模式下,可以通过查看变量窗口查看变量的实时值。

使用 Maven 插件调试

在命令行中使用 Maven 插件启动调试:

$ mvn spring-boot:run -Dspring-boot.run.jvmArguments="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"

使用 Java 调试工具

  1. 配置 Java 调试选项:在启动命令中添加 Java 调试选项。
  2. 连接调试器:使用 IDE 或其他调试工具连接到调试端口。
点击查看更多内容
TA 点赞

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

评论

作者其他优质文章

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

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消