SpringCloud构建工程

news2024/11/15 13:35:09

一、新建数据库和表,并填写测试数据

二、创建父级工程

1、创建maven工程

2、工程名字OfficeAutomation

3、pom.xml文件中添加依赖

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
        <java.version>1.8</java.version>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <spring.cloud.alibaba.version>2021.0.4.0</spring.cloud.alibaba.version>
        <spring.cloud.version>2021.0.4</spring.cloud.version>
        <spring.boot.version>2.6.11</spring.boot.version>

    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring.boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring.cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring.cloud.alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--mysql驱动工具-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.11</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.0.31</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.60</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.2.0</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus</artifactId>
                <version>3.5.3.1</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.5.3.1</version>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.6</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi</artifactId>
                <version>3.9</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>3.9</version>
            </dependency>
            <dependency>
                <groupId>com.auth0</groupId>
                <artifactId>java-jwt</artifactId>
                <version>4.4.0</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.13.3</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

三、创建api工程

1、选择父级工程 新建Maven Module模块

2、创建包及.java类

3、举例其中一个Budgets.java类的内容

package com.oacloud.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.sql.Date;
@AllArgsConstructor
@NoArgsConstructor
@Data
public class Budgets {
    private int id;
    private int departmentId;
    private int budgetYear;
    private double amount;
    private String status;
}

4、将该工程打包等待使用

四、创建提供者工程

1、选择父级工程 新建Maven Module模块

模版名称:model-5001

2、pom.xml文件添加依赖

<dependencies>
        <dependency>
            <groupId>com.oacloud</groupId>
            <artifactId>api</artifactId>
            <version>1.0-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.11</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.31</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>
        <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>
        </dependency>
    </dependencies>

3、resources文件夹下创建application.yml

4、application.yml文件内容

server:
  port: 5001 # 端口号
spring:
  application:
    name: model-5001  #服务名称
  datasource: # 连接数据库资源
    type: com.alibaba.druid.pool.DruidDataSource  # 连接池管理工具          # 当前数据源操作类型,类似JDBC的注册驱动
    driver-class-name: com.mysql.cj.jdbc.Driver   # 驱动地址      # mysql驱动包
    url: jdbc:mysql://127.0.0.1:3306/office_automation?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8      # 连接数据库        # 数据库名称
    username: root
    password: 'wjy718'
    dbcp2:
      min-idle: 5   # 数据库连接池的最小维持连接数
      initial-size: 5  # 初始化连接数
      max-total: 5   # 最大连接数
      max-wait-millis: 200   # 等待连接获取的最大超时时间
mybatis:
  config-location: classpath:mybatis/mybatis.cfg.xml        # mybatis配置文件所在路径
  type-aliases-package: com.oacloud.entity  # 实体关系映射地址  # 所有Entity别名类所在包
  mapper-locations:
    - classpath:mybatis/mapper/**/*.xml # 编写sql语句的文件的位置 # -表示部分加载

5、在resources文件夹下创建mybatis文件夹,并创建mybatis的配置文件及映射文件

6、mybatis.cfg.xml文件内容

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

    <settings>
        <setting name="cacheEnabled" value="true" /><!-- 二级缓存开启 -->
    </settings>

</configuration>

7、其中一个Mapper.xml文件内容

<?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.oacloud.dao.BudgetsDao">
    <sql id="budgets_column">
        id,department_id departmentId,budget_year budgetYear,amount,status
    </sql>

    <select id="selectBudgetsAll" resultType="Budgets">
        select <include refid="budgets_column"></include> from budgets
    </select>

    <select id="selectBudgetsById" parameterType="Integer" resultType="Budgets">
        select <include refid="budgets_column"></include> from budgets where department_id = #{departmentId}
    </select>
    <update id="updateById" parameterType="Budgets">
        update budgets set budget_year=#{budgetYear},amount=#{amount},status=#{status} where department_id = #{departmentId}
    </update>
    <insert id="insertById" parameterType="Budgets">
        insert into budgets values(#{id},#{departmentId},#{budgetYear},#{amount},#{status})
    </insert>
    <delete id="deleteById" parameterType="Integer">
        delete from budgets where department_id = #{departmentId}
    </delete>
    <select id="selectBudgetsStatusById" parameterType="Integer" resultType="Budgets">
        select status from budgets where department_id = #{departmentId}
    </select>
    <update id="updateStatusById" parameterType="Budgets">
        update budgets set status=#{status} where department_id = #{departmentId}
    </update>
</mapper>

8、创建java文件包结构及启动类

9.启动类Model_5001_App.java类的内容

package com.oacloud;

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

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

10、创建包中对应的类、

11、其中BudgetsDao.java接口内容

package com.oacloud.dao;

import com.oacloud.entity.Budgets;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;
@Mapper
public interface BudgetsDao {
    //查询所有
    ArrayList<Budgets> selectBudgetsAll();
    //根据id查询
    Budgets selectBudgetsById(@Param("departmentId") Integer departmentId);
    //根据id修改预算信息
    void updateById(Budgets budgets);
    //根据部门id增加预算信息
    void insertById(Budgets budgets);
    //根据部门id删除预算信息
    void deleteById(Budgets budgets);
    //根据部门id查询预算状态
    Budgets selectBudgetsStatusById(@Param("departmentId") Integer departmentId);
    //根据部门id修改预算状态
    void updateStatusById(Budgets budgets);
}

12、其中BudgetsService.java接口内容

package com.oacloud.service;

import com.oacloud.entity.Budgets;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;

public interface BudgetsService {
    ArrayList<Budgets> findBudgetsAll();
    // 根据id查询预算信息
    Budgets findBudgetsById(Integer departmentId);
    //根据id修改预算信息
    void updateById(Budgets budgets);
    //增加预算信息
    void insertById(Budgets budgets);
    //根据部门id删除预算信息
    void deleteById(Budgets budgets);
    //根据部门id查询预算状态
    Budgets findBudgetsStatusById(@Param("departmentId") Integer departmentId);
    //根据部门id修改预算状态
    void updateStatusById(Budgets budgets);
}

13、其中BudgetsImpl.java类内容

package com.oacloud.service.impl;

import com.oacloud.dao.BudgetsDao;
import com.oacloud.entity.Budgets;
import com.oacloud.service.BudgetsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
@Service
public class BudgetsServiceImpl implements BudgetsService {
    @Autowired
    @SuppressWarnings("all")
    private BudgetsDao budgetsDao;

    @Override
    public ArrayList<Budgets> findBudgetsAll(){
        return budgetsDao.selectBudgetsAll();
    }

    @Override
    public Budgets findBudgetsById(Integer departmentId) {
        return budgetsDao.selectBudgetsById(departmentId);
    }

    @Override
    public void updateById(Budgets budgets) {
        budgetsDao.updateById(budgets);
    }

    @Override
    public void insertById(Budgets budgets) {
        budgetsDao.insertById(budgets);
    }

    @Override
    public void deleteById(Budgets budgets) {
        budgetsDao.deleteById(budgets);
    }

    @Override
    public Budgets findBudgetsStatusById(Integer departmentId) {
        return budgetsDao.selectBudgetsStatusById(departmentId);
    }

    @Override
    public void updateStatusById(Budgets budgets) {
        budgetsDao.updateStatusById(budgets);
    }

}

14、其中BudgetsController.java类内容

package com.oacloud.controller;

import com.oacloud.entity.Budgets;
import com.oacloud.entity.Result;
import com.oacloud.service.BudgetsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
@RestController
@RequestMapping("budgets")
@CrossOrigin
public class BudgetsController {
    @SuppressWarnings("all")
    @Autowired
    private BudgetsService budgetsService;

    @GetMapping("getall")
    ArrayList<Budgets> getAll() {

        return budgetsService.findBudgetsAll();
    }
    //http://127.0.0.1:5001/budgets/getall

    @GetMapping("getbudgetsbyid/{departmentId}")//get被称为请求方式,浏览器端向服务器端发送数据的方式
    public Result<Budgets> getBudgetsById(@PathVariable("departmentId") Integer departmentId) {
        return Result.success(budgetsService.findBudgetsById(departmentId));
    }

    @RequestMapping("setbudgetsbyid")
    public Result<Budgets> setBudgetsById(@RequestBody Budgets budgets) {
        System.out.println(budgets);
        budgetsService.updateById(budgets);
        return Result.success();
    }
    @RequestMapping("insertbyid")
    public Result<Budgets> insertById(@RequestBody Budgets budgets){
        System.out.println(budgets);
        budgetsService.insertById(budgets);
        return Result.success();
    }
    @RequestMapping("deletebyid")
    public Result<Budgets> deleteById(@RequestBody Budgets budgets){
        System.out.println(budgets);
        budgetsService.deleteById(budgets);
        return Result.success();
    }
    @GetMapping("getbudgetsStatusbyid/{departmentId}")//get被称为请求方式,浏览器端向服务器端发送数据的方式
    public Result<Budgets> getBudgetsStatusById(@PathVariable("departmentId") Integer departmentId) {
        return Result.success(budgetsService.findBudgetsStatusById(departmentId));
    }
    @RequestMapping("setbudgetsStatusbyid")
    public Result<Budgets> setBudgetsStatusById(@RequestBody Budgets budgets) {
        System.out.println(budgets);
        budgetsService.updateStatusById(budgets);
        return Result.success();
    }
}

15、测试

启动5001工程

访问地址:http://127.0.0.1:5001/budgets/getall

测试成功

五、创建消费者工程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2151372.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

领域驱动DDD三种架构-分层架构、洋葱架构、六边形架构

博主介绍&#xff1a; 大家好&#xff0c;我是Yuperman&#xff0c;互联网宇宙厂经验&#xff0c;17年医疗健康行业的码拉松奔跑者&#xff0c;曾担任技术专家、架构师、研发总监负责和主导多个应用架构。 技术范围&#xff1a; 目前专注java体系&#xff0c;以及golang、.Net、…

第二十节:学习Redis缓存数据库实现增删改查(自学Spring boot 3.x的第五天)

这节记录下如何使用redis缓存数据库。 第一步&#xff1a; 先在服务器端安装redis&#xff0c; 下载地址&#xff1a;Releases tporadowski/redis GitHub。 第二步&#xff1a; 安装redis客户端可视化管理软件redisDesktopmanager Redis Desktop Manager - Download 第…

GAMES101(13节Ray Tracing)

Ray Tracing 基本原理&#xff1a; 我们知道为什么会看到物体的颜色&#xff0c;因为光线照射物体&#xff0c;未被吸收的光线反射到人眼&#xff0c;因此&#xff0c;我们看到的颜色&#xff0c;就是光的一部分&#xff0c;光线追踪就是模拟这个过程 光线假设&#xff1a; …

DHCP协议原理(网络协议)

DHCP简介 定义 DHCP&#xff08;动态主机配置协议&#xff09;是一种网络管理协议&#xff0c;能够自动为局域网中的每台计算机分配IP地址及其他网络配置参数&#xff0c;包括子网掩码、默认网关和DNS服务器等。这一机制极大简化了网络管理&#xff0c;尤其在大型局域网中&am…

聊聊AUTOSAR:基于Vector MICROSAR的TC8测试开发方案

技术背景 车载以太网技术作为汽车智能化和网联化的重要组成部分&#xff0c;正逐步成为现代汽车网络架构的核心&#xff0c;已广泛应用于汽车诊断&#xff08;如OBD&#xff09;、ECU软件更新、智能座舱系统、高清摄像头环视泊车系统等多个领域。 在这个过程中&#xff0c;ET…

CSS 的元素显示模式简单学习

目录 1. 元素显示模式 1.1 概述 1.2 块元素 1.3 行元素 1.4 行内块元素 1.5 元素显示模式总结 2. 元素显示模式转换 3. 单行文字垂直居中 4. 案例演示 1. 元素显示模式 1.1 概述 1.2 块元素 1.3 行元素 1.4 行内块元素 1.5 元素显示模式总结 2. 元素显示模式转换 3. 单…

通过markdown表格批量生成格式化的word教学单元设计表格

素材&#xff1a; 模板&#xff1a; 代码&#xff1a; import pandas as pd from python_docx_replace import docx_replace,docx_get_keys from docx import Document from docxcompose.composer import Composerdef parse_markdown_tables(file_path):with open(file_path,…

DOCKER 数据库管理软件自己开发--———未来之窗行业应用跨平台架构

- 数据异地容灾服务--未来之窗智慧数据服务 DATA REMOTE DISASTER RECOVERY SERVICE -CyberWin Future Docker-数据查看 CyberWin DATA Viewer 1.docker 样式 mysqli://root:密码172.17.0.2:端口/数据库 阿雪技术观 拥抱开源与共享&#xff0c;见证科技进步奇迹&#xff0c;…

AMD小胜!锐龙7 9700X VS. i7- 14700K网游对比

一、前言&#xff1a;两款高端处理器的网游对比测试 半个月前&#xff0c;我们做了锐龙5 9600X与i5-14600K的网游帧率测试&#xff0c;结果有点意外&#xff0c;几款游戏平均下来&#xff0c;锐龙5 9600X比i5-14600K竟然强了19%之多。 今天我们将会对锐龙7 9700X和i7-14700K进行…

【高阶数据结构】二叉搜索树的插入、删除和查找(精美图解+完整代码)

&#x1f921;博客主页&#xff1a;醉竺 &#x1f970;本文专栏&#xff1a;《高阶数据结构》 &#x1f63b;欢迎关注&#xff1a;感谢大家的点赞评论关注&#xff0c;祝您学有所成&#xff01; ✨✨&#x1f49c;&#x1f49b;想要学习更多《高阶数据结构》点击专栏链接查看&a…

【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器(上)

文章目录 前言一、ArkTS基本介绍1、 ArkTS组成2、组件参数和属性2.1、区分参数和属性的含义2.2、父子组件嵌套 二、装饰器语法1.State2.Prop3.Link4.Watch5.Provide和Consume6.Observed和ObjectLink代码示例&#xff1a;示例1&#xff1a;&#xff08;不使用Observed和ObjectLi…

Windows11家庭版修改用户密码策略为永不过期。

今天有个朋友找到我说&#xff0c;他的电脑密码老是过期然后需要修改&#xff0c;让我帮忙改一下密码策略&#xff0c;改为永不过期。 下面就来操作一下吧。 这里有个小小的坑&#xff0c;就是win11的家庭版是没有 gpedit.msc的&#xff0c;也就不能直接cmd打开本地策略便器&…

【WebGis开发 - Cesium】获取视野中心点,并设置顶视图视角

引言 项目开发过程中遇到一个需求&#xff0c;通过一个按钮切换视角为顶视图。 分析了一下这个模糊的需求&#xff0c;首先没有给出切换顶视图后俯视的区域范围&#xff0c;其次没有给出俯视点的高度。 这里可以粗略的认为当前的侧俯视的角度下观看的范围即为俯视的区域范围&am…

视频美颜SDK核心功能解析:打造高效直播美颜工具方案详解

随着直播行业的迅猛发展&#xff0c;用户对于直播画质和个人形象的要求越来越高。视频美颜SDK作为一项关键技术&#xff0c;已经成为各大直播平台和短视频应用的重要组成部分。通过实时美颜技术&#xff0c;用户能够在直播过程中呈现出更加理想的形象&#xff0c;从而提升直播体…

实验一:Windows下的IIS服务器配置和管理

第一次实验隐藏关很多&#xff0c;稍不留神服务器就寄了。 实验一完成后会有联网问题&#xff0c;问题解决详见番外篇。 实验内容 任务一&#xff1a; 1、建立一个基于主机名www.study.com的站点&#xff0c;站点的主目录为C:\inetpub\wwwroot&#xff0c;给站点建立一个虚拟…

Codeforces Round 973 (Div. 2) F1. Game in Tree (Easy Version)(思维题 博弈)

题目 思路来源 乱搞ac 题解 两个人的策略是一样的&#xff0c;把1到u的路径标记&#xff0c; 如果能走旁边的链&#xff08;也就是当前点&#xff0c;刨去标记链以外的子树中最长的链&#xff09;&#xff0c; 使得对面走剩余的连通块无法比你大&#xff0c;就走旁边的链&…

业务资源管理模式语言16

示例&#xff1a; 图25 描述了PayForTheResourceTransaction 的一个实例。其中&#xff0c;“Sale”扮演“Resource Transaction”&#xff0c;“Accounts Receivable”扮演“Payment”。 图25——PayForTheResourceTransaction 模式实例 相关模式&#xff1a; PayForTheRes…

特殊类的设计与类型转换

特殊类的设计 1.请设计一个不能被拷贝的类 拷贝只会放生在两个场景中&#xff1a;拷贝构造函数以及赋值运算符重载&#xff0c;因此想要让一个类禁止拷贝&#xff0c;只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。 C98 C98是怎么设计的呢&#xff1f; class Cop…

从零开始讲DDR(3)——DDRC与DDRPYH

一、DDR的使用 在之前的文章中我们介绍了DDR的基本概念&#xff0c;但是DDR内存的操作不仅仅是简单的数据读取和写入&#xff0c;它包括许多时序要求和信号调度。为了让DDR内存有效运作&#xff0c;系统需要在逻辑层和物理层之间进行大量的协作。我们拿出一张DDR的操作简化状态…

MySQL程序

目录 MySQL程序 常用的MySQL的程序 mysqld程序 mysql客户端 客户端命令的常用的选项 配置文件 配置文件语法 MySQL客户端命令 ​编辑 .sql 文件中执行SQL语句 mysqlcheck &#xff08;表维护程序&#xff09; Mysqldump&#xff08;数据库备份程序&#xff09; mysql…