Spring Boot快速开发

ops/2025/2/10 23:15:44/

主要特点

  1. 简化配置:通过自动配置和起步依赖简化项目配置过程

  2. 集成性强:提供大量特性和功能(Servlet容器:Tomcat、Jetty、Undertow;健康检查;指标监控等)、整合库和框架(Spring Data、Spring Security等)

  3. 微服务支持:通过Spring Cloud进行微服务架构的开发,集成服务发现、配置中心、负载均衡等

  4. 内嵌服务器:将应用程序打包成一个可执行的JAR文件,内置Servlet容器(无需部署到外部应用服务器)

  5. 生态丰富:各种扩展和插件

项目结构

  1. Service层:具体实现业务逻辑,具体操作

  2. Data Access层:直接访问数据库的代码(Mybatis)。

    • 数据库是关系型,java是面向对象的,需要将关系型的数据库表结构转化成面向对象的对象

开始

初始化一个springboot应用

  1. Spring Initializr

  2. 依赖:Spring Web、Spring Data JPA(对访问数据库的抽象)、MySQL Driver

idea中springboog文件结构

  1. idea:包含配置文件,ide自动生成

    1. .gitignore:指定的文件被git版本控制系统忽略

    2. compiler.xml:编译器设置

    3. encoding.xml:编码格式设置

    4. jarTepositories.xml:项目依赖的Maven仓库地址

    5. misc.xml:杂项配置(语言级别、模块设置等)

    6. workspace.xml:工作区设置(打开的编译器标签、运行配置等)

  2. .mvn:Maven包装器(Wrapper)的配置文件,未安装Maven时可以使用特定版本的Maven

    1. maven-wrapper.properties:Maven包装器使用的Maven版本

  3. src:项目的源代码目录,包含Java代码和资源文件

    1. main:主要源代码和资源文件

      • java:源代码

        • com.smarthome.smarthonecontrol:项目的Java包

          • XXApplication:应用程序的主类,启动应用程序

    2. resources:项目的资源文件(静态文件、模板文件、配置文件等)

      • static:静态资源文件(CSS、JavaScript、图片等)

      • templates:模板文件(Thymeleaf、freemarker模板)

      • application.properties:配置文件(配置应用程序的属性,如数据库连接、服务器端口等)

    3. test:测试代码

      1. java:测试源代码

  4. .gitattributes:指定Git如何处理某些文件(文本文件的换行符)

  5. HELP.md:Mrakdown文件,项目的帮助信息或使用说明

  6. mvnw:Maven包装器的脚本文件,在Unix系统上运行

  7. mvnw.cmd:在Windows系统上运行

  8. pom.xml:Maven项目的核心配置文件(项目的依赖、插件、构建配置等)

  9. 外部库:项目依赖的所有外部库

  10. 临时文件和控制台:临时文件和控制台输出(调试、日志记录)

数据库

  1. 未创建数据库就想要运行时,需要在pom.xml文件中将相关依赖注释掉

     <dependency>            <groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency>
  2. 在mysql里面创建数据库

项目基本结构

idea代码

  1. 创建一个dao包:数据访问层的包

    • JPA(Java Persistence API):一种标准化的方式来管理 Java 对象与数据库之间的映射关系

    • 对每个数据库的表创建一个类User(Entity)和一个接口UserRepository

  2. 创建一个service包

    • UserService接口:实现方法、功能

    • UserServiceImpl类:实现UserService接口的方法,具体实现逻辑。(唯一性检查)

  3. 创建一个controller包

    • 里面写各个方法、功能的路径

  4. 创建一个dto包:展示访问前端的对象。把数据库的对象转化为需要返回给前端的对象

    • 添加验证注解

  5. 创建一个converter包:用于UserDTO和User实体之间进行转换

    • converter类中需要将 User 实体转换为 UserDTO、将 UserDTO 转换为 User 实体

    • 对Impl类进行修改(返回的对象变成DTO)

    • 对controller类进行修改

  6. 创建Response类:统一后端接口的格式

    • 对controller类里面进行修改

apifox

  • 填写相关请求

  • controller类里面相关请求路由

  • impl类中里面相关请求的功能

  • 运行:检测请求是否有误

打包项目

  • 终端:mvn clean install(build success则打包成功)

  • 在target文件夹里面会出现一个jar包,copy其路径

  • 打包完成后,运行生成的 JAR 文件

     java -jar your-project-name.jar

rest api规范

路径

  1. 又称“终点”,表示api具体网址

  2. 在restful架构中,每个网址代表一种资源

  3. 网址中只能有名词,所用的名词往往与数据库的表格名对应

Http动词

  • GET(SELECT):从服务器取出资源

  • POST(CREATE):在服务器新建资源

  • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)

  • PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)

  • DELETE(DELETE):在服务器删除资源


http://www.ppmy.cn/ops/157382.html

相关文章

SqlSugar简单使用之Nuget包封装-Easy.SqlSugar.Core

SqlSugar官方文档 Nuget包开源地址 Nuget包是为了简化SqlSugar的使用步骤,增加一些基础的使用封装 引入分为两个版本&#xff0c;一个Ioc模式&#xff0c;另一个是注入模式&#xff0c;如果不想影响原本的仓储代码推荐使用Ioc模式&#xff0c;两者区别不大&#xff0c;方法通…

C++开发(软件开发)常见面试题

目录 1、C里指针和数组的区别 2、C中空指针请使用nullptr不要使用NULL 3、http/https区别和头部结构&#xff1f; 4、有了mac地址为什么还要ip地址&#xff1f;ip地址的作用 5、有了路由器为什么还要交换机&#xff1f; 6、面向对象三大特性 7、友元函数 8、大端小端 …

Day.23

leetcode 413.等差数列划分 问题&#xff1a;如果一个数列 至少有三个元素 &#xff0c;并且任意两个相邻元素之差相同&#xff0c;则称该数列为等差数列。给你一个整数数组 nums &#xff0c;返回数组 nums 中所有为等差数组的 子数组 个数。 子数组 是数组中的一个连续序列…

Spring Boot 条件注解:@ConditionalOnProperty 完全解析

在 Spring Boot 项目中&#xff0c;有时候我们希望根据配置文件中的某个属性值来决定是否启用某个功能或加载某个组件。此时&#xff0c;ConditionalOnProperty 注解就可以发挥作用。它通过配置文件的属性值控制 Bean 或配置类的加载&#xff0c;使得我们的程序更具灵活性。 本…

MySQL第五次作业

根据图片内容完成作业 1.建表 &#xff08;1&#xff09;建立两个表:goods(商品表)、orders(订单表) mysql> create table goods( -> gid char(8) primary key, -> name varchar(10), -> price decimal(8,2), -> num int); mysql> create t…

Apache SeaTunnel 整体架构运行原理

概述 SeaTunnel 缘起 数据集成在现代企业的数据治理和决策支持中扮演着至关重要的角色。随着数据源的多样化和数据量的迅速增长及业务需求的快速变化&#xff0c;企业需要具备强大的数据集成能力来高效地处理数据。SeaTunnel通过其高度可扩展和灵活的架构&#xff0c;帮助企业…

机器学习数学基础:18.向量组及其线性组合

向量组与线性表示&#xff1a;案例与教程详解 一、基础概念 &#xff08;一&#xff09;向量组 向量组是若干同位数列向量组成的集合。比如在平面直角坐标系中&#xff0c;向量组 { α ⃗ 1 [ 1 0 ] , α ⃗ 2 [ 0 1 ] } \{\vec{\alpha}_1 \ \begin{bmatrix}1\\0\end{bma…

十三. Redis 应用问题和解决方案思想

十三. Redis 应用问题和解决方案思想 文章目录 十三. Redis 应用问题和解决方案思想1. 缓存穿透2. 缓存击穿3. 缓存雪崩4. 分布式锁4.1 分布式锁主流实现方案&#xff1a;4.2 Redis 实现分布式锁-基本实现4.3 Redis 实现分布式锁-Java代码实现4.4 实例&#xff1a;优化-设置锁的…