Spring Boot 实战篇(二):基础功能搭建与准备

目录

Spring Boot 实战篇(二):基础功能搭建与准备

一、项目创建

(一)使用 Spring Initializr 创建项目

(二)项目结构分析

二、数据库配置(假设使用 MySQL 和 MyBatis)

(一)添加数据库驱动依赖

(二)配置数据源

(三)配置 MyBatis

三、创建基础实体类和数据访问层接口(DAO)

(一)创建实体类

(二)创建数据访问层接口(DAO)

(三)创建 MyBatis 映射文件(如果不使用注解方式编写 SQL)


在开启一个 Spring Boot 实战项目时,前期的基础功能搭建和准备工作至关重要。以下将详细介绍这些步骤,包括项目创建、基础配置以及相关工具和技术的引入等,同时提供必要的代码示例。

一、项目创建

(一)使用 Spring Initializr 创建项目

  1. 访问 Spring Initializr 网站
  2. 配置项目信息
    • 在页面上选择项目的基本信息,如:
      • Project:选择使用 Maven 或 Gradle 构建项目,这里以 Maven 为例。
      • Language:选择 Java 作为开发语言。
      • Spring Boot 版本:根据需求选择合适的 Spring Boot 版本,如 Spring Boot 3.x。
      • Project Metadata:填写项目的相关信息,包括 Group(组织或公司域名倒序,如com.example)、Artifact(项目名称,如myproject)、Name(项目名称,与 Artifact 相同)、Description(项目描述)、Package Name(默认根据 Group 和 Artifact 生成,如com.example.myproject)等。
  3. 添加项目依赖
    • 在 “Dependencies” 部分,添加项目所需的初始依赖,如 Web 依赖(用于构建 Web 应用)、MyBatis 依赖(如果项目涉及数据库操作且选择使用 MyBatis)等。点击 “Generate” 按钮生成项目结构。
  4. 下载并导入项目
    • 下载生成的项目压缩包,解压后使用 IDE(如 IntelliJ IDEA、Eclipse 等)导入项目。在 IDE 中,选择 “Open” 或 “Import” 项目,找到解压后的项目目录,按照向导完成项目导入。

(二)项目结构分析

  1. 包结构
    • 导入项目后,观察默认的包结构。一般包含src/main/java用于存放 Java 源代码,src/main/resources用于存放配置文件、静态资源等,src/test/java用于存放测试代码。
    • src/main/java下,默认的包名是根据项目创建时填写的 Group 和 Artifact 生成的,如com.example.myproject。可以根据项目功能模块进一步划分包,例如com.example.myproject.controller用于存放控制器类,com.example.myproject.service用于存放业务逻辑类,com.example.myproject.dao用于存放数据访问层接口等。
  2. 启动类
    • 找到项目中的启动类,一般命名为Application或类似名称,位于项目的根包下。该类包含一个main方法,是 Spring Boot 应用的入口点。
    • 代码示例(默认的启动类):

package com.example.myproject;

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

  • @SpringBootApplication注解是一个组合注解,包含了@Configuration(表明该类是一个配置类)、@EnableAutoConfiguration(启用 Spring Boot 的自动配置功能)和@ComponentScan(扫描指定包及其子包下的组件,默认扫描启动类所在包及其子包)。

二、数据库配置(假设使用 MySQL 和 MyBatis)

(一)添加数据库驱动依赖

  1. pom.xml中添加依赖
    • 如果项目使用 MySQL 数据库,需要在pom.xml文件中添加 MySQL 驱动依赖。例如:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.30</version>
</dependency>

  • 确保版本号与实际使用的 MySQL 版本兼容。

(二)配置数据源

  1. application.propertiesapplication.yml中配置
    • src/main/resources目录下的配置文件中,添加数据源配置信息。如果使用application.properties,配置如下:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

  • 如果使用application.yml,配置如下:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

  • 这里的urlusernamepassworddriver-class-name需要根据实际的数据库连接信息进行修改。mydb是数据库名称,root是用户名,123456是密码,com.mysql.cj.jdbc.Driver是 MySQL 8.x 及以上版本的驱动类名。

(三)配置 MyBatis

  1. 添加 MyBatis 依赖(如果在创建项目时未添加)
    • pom.xml文件中添加 MyBatis 依赖,例如:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>3.0.1</version>
</dependency>

  • 确保版本与 Spring Boot 版本兼容。

  1. 配置 MyBatis 相关属性(可选)
    • 可以在配置文件中进一步配置 MyBatis 的属性,如映射文件位置、日志级别等。例如,在application.properties中:

# MyBatis映射文件位置
mybatis.mapper-locations=classpath:mapper/*.xml
# MyBatis日志级别
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

  • application.yml中:

mybatis:
  mapper-locations: classpath:mapper/*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

  • mapper-locations指定了 MyBatis 映射文件(包含 SQL 语句定义)的位置,log-impl设置了 MyBatis 的日志实现类,这里使用标准输出日志,方便在开发过程中查看 SQL 执行情况。

三、创建基础实体类和数据访问层接口(DAO)

(一)创建实体类

  1. 根据数据库表结构定义实体类
    • 假设项目中有一个用户表(user),包含字段id(用户 ID,主键)、username(用户名)、password(密码)、email(邮箱)等。创建一个User实体类,代码如下:

package com.example.myproject.entity;

import java.io.Serializable;

public class User implements Serializable {
    private Long id;
    private String username;
    private String password;
    private String email;

    // 生成getter和setter方法
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
}

  • 实体类中的属性与数据库表字段对应,实现Serializable接口(如果需要进行对象序列化操作,如在缓存或网络传输中)。

(二)创建数据访问层接口(DAO)

  1. 定义数据访问方法接口
    • 创建一个UserDao接口,用于定义与用户表相关的数据访问操作,如查询用户、插入用户、更新用户等。代码如下:

package com.example.myproject.dao;

import com.example.myproject.entity.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface UserDao {
    // 根据ID查询用户
    User findById(Long id);
    // 查询所有用户
    List<User> findAll();
    // 插入用户
    int insert(User user);
    // 更新用户
    int update(User user);
    // 根据ID删除用户
    int deleteById(Long id);
}

  • 使用@Mapper注解(如果使用 MyBatis 的注解方式)标识该接口是一个 MyBatis 的数据访问接口,MyBatis 会自动扫描并创建代理实现类。如果不使用注解方式,也可以在配置类中手动配置扫描路径等信息。

(三)创建 MyBatis 映射文件(如果不使用注解方式编写 SQL)

  1. 编写 SQL 语句映射
    • src/main/resources/mapper目录下(根据配置的mapper-locations)创建UserDao.xml文件,编写与UserDao接口方法对应的 SQL 语句。例如:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.myproject.dao.UserDao">
    <select id="findById" resultType="com.example.myproject.entity.User">
        SELECT * FROM user WHERE id = #{id}
    </select>
    <select id="findAll" resultType="com.example.myproject.entity.User">
        SELECT * FROM user
    </select>
    <insert id="insert" keyProperty="id" useGeneratedKeys="true">
        INSERT INTO user (username, password, email) VALUES (#{username}, #{password}, #{email})
    </insert>
    <update id="update">
        UPDATE user SET username = #{username}, password = #{password}, email = #{email} WHERE id = #{id}
    </update>
    <delete id="deleteById">
        DELETE FROM user WHERE id = #{id}
    </delete>
</mapper>

  • 在映射文件中,namespace指定了对应的接口全路径,每个 SQL 语句通过id与接口方法对应,resultType指定查询结果的映射类型(这里是User实体类)。

通过以上步骤,我们完成了 Spring Boot 实战项目的基础功能搭建与准备工作,为后续的功能开发和业务逻辑实现奠定了基础。在实际项目中,可以根据具体需求进一步优化和扩展这些基础配置,例如添加更多的数据源配置、集成其他数据库或持久层框架等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值