当前位置: 首页 > article >正文

Spring Boot 开发环境搭建及示例应用

文章目录

      • 1. 准备开发工具
        • 安装 JDK
        • 安装 IDE
        • 安装 Maven
      • 2. 创建 Spring Boot 项目
        • 使用 Spring Initializr 创建项目
        • 导入项目到 IDE
      • 3. 编写代码
        • 主类
        • 创建控制器
        • 创建实体类
        • 创建仓库接口
        • 创建服务类
        • 创建控制器
      • 4. 配置文件
      • 5. 运行应用程序
      • 6. 测试应用程序
      • 7. 调试与优化
      • 8. 部署应用

1. 准备开发工具

安装 JDK

确保你的系统上已经安装了 JDK。可以通过以下命令检查是否已安装以及版本信息:

java -version

如果没有安装,可以从 Oracle 官网或其他可靠来源下载并安装。

安装 IDE

推荐使用 IntelliJ IDEA 或 Eclipse。这里以 IntelliJ IDEA 为例。

安装 Maven

如果你选择 Maven 作为构建工具,确保已经安装并配置好了 Maven。可以通过以下命令检查 Maven 是否已安装:

mvn -v

2. 创建 Spring Boot 项目

使用 Spring Initializr 创建项目
  1. 访问 Spring Initializr。
  2. 填写项目信息:
    • Project: Maven Project
    • Language: Java
    • Spring Boot: 选择最新稳定版
    • Group: com.example
    • Artifact: demo
    • Name: demo
    • Description: Demo project for Spring Boot
    • Package name: com.example.demo
    • Packaging: Jar
    • Java: 11
  3. 添加依赖:
    • Spring Web
    • Spring Data JPA
    • H2 Database (内存数据库,用于测试)
  4. 点击 “Generate” 下载项目压缩包,解压到本地工作目录。
导入项目到 IDE
  1. 打开 IntelliJ IDEA。
  2. 选择 “File” -> “New” -> “Project from Existing Sources…”。
  3. 导航到解压后的项目目录,选择 pom.xml 文件,点击 “OK”。
  4. 按照提示完成项目的导入。

3. 编写代码

主类

src/main/java/com/example/demo 目录下,你会看到一个主类文件 DemoApplication.java,内容如下:

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

}
创建控制器

src/main/java/com/example/demo 目录下创建一个新的包 controller,并在其中创建一个控制器类 HelloController.java

package com.example.demo.controller;

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, Spring Boot!";
    }

}
创建实体类

src/main/java/com/example/demo 目录下创建一个新的包 entity,并在其中创建一个实体类 User.java

package com.example.demo.entity;

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

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

}
创建仓库接口

src/main/java/com/example/demo 目录下创建一个新的包 repository,并在其中创建一个仓库接口 UserRepository.java

package com.example.demo.repository;

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

public interface UserRepository extends JpaRepository<User, Long> {
}
创建服务类

src/main/java/com/example/demo 目录下创建一个新的包 service,并在其中创建一个服务类 UserService.java

package com.example.demo.service;

import com.example.demo.entity.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> findAllUsers() {
        return userRepository.findAll();
    }

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

}
创建控制器

src/main/java/com/example/demo/controller 目录下创建一个控制器类 UserController.java

package com.example.demo.controller;

import com.example.demo.entity.User;
import com.example.demo.service.UserService;
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.findAllUsers();
    }

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

}

4. 配置文件

src/main/resources 目录下编辑 application.properties 文件,配置 H2 数据库:

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.h2.console.enabled=true
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

5. 运行应用程序

在 IntelliJ IDEA 中,右键点击 DemoApplication.java 文件中的 main 方法,选择 “Run ‘DemoApplication.main()’”。

6. 测试应用程序

打开浏览器,访问以下 URL:

  • http://localhost:8080/hello 应该返回 “Hello, Spring Boot!”
  • http://localhost:8080/users 应该返回一个空列表(因为还没有用户)
  • 使用 Postman 或其他工具发送 POST 请求到 http://localhost:8080/users,请求体如下:
{
  "name": "John Doe",
  "email": "john@example.com"
}

再次访问 http://localhost:8080/users,应该能看到新增的用户。

7. 调试与优化

  • 日志配置:可以在 application.properties 中配置日志级别,例如:

    logging.level.root=WARN
    logging.level.org.springframework.web=DEBUG
    
  • 性能监控:可以使用 Actuator 模块来监控应用的健康状况和性能指标。在 pom.xml 中添加依赖:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    

8. 部署应用

打包应用:

mvn clean package

运行生成的 JAR 文件:

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

以上就是一个完整的 Spring Boot 应用程序从创建到运行的详细步骤。希望对你有所帮助!如果有任何问题或需要进一步的帮助,请随时提问。


http://www.kler.cn/a/416511.html

相关文章:

  • 如何使用 Chrome 无痕浏览模式访问网站?
  • 设计模式学习之——观察者模式
  • Spring MVC练习(前后端分离开发实例)
  • Linux操作系统2-进程控制3(进程替换,exec相关函数和系统调用)
  • go语言切片
  • 11.25.2024刷华为OD
  • 数据分析-52-时间序列分解之变分模态分解VMD
  • 【论文笔记】Tool Learning with Foundation Models 论文笔记
  • 泷羽sec-蓝队基础之网络七层杀伤链(上) 学习笔记
  • 【Datawhale组队学习】模型减肥秘籍:模型压缩技术6——项目实践
  • 工业一体机在自动化产线的作用及核心优势有哪些
  • Docker for Everyone Plus——Unbreakable!
  • uni-app写的微信小程序每次换账号登录时出现缓存上一个账号数据的问题
  • (转)Uni-app 之IOS生成Universal Link(通用链接)
  • 【数据结构-队列】力扣641. 设计循环双端队列
  • 什么是堆?
  • Redis的基本使用命令(GET,SET,KEYS,EXISTS,DEL,EXPIRE,TTL,TYPE)
  • ubuntu20配置mysql注意事项
  • 【Linux】nvidia-smi输出参数详解
  • Mac配置和启动 Tomcat
  • MySQL 查询 执行顺序
  • Node.js:开发和生产之间的区别
  • 中国前首富胡志标亮相创客匠人盛会,点燃创始人 IP 新思维火花
  • javaweb-day01-html和css初识
  • Jmeter进阶篇(28)结合AI做性能测试:开启性能测试自动化新篇章
  • 使用postcss动态设置fontsize,刷新时出现极小页面的问题