SpringCloud构建工程

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

二、创建父级工程

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: rootpassword: '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 configurationPUBLIC "-//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;@Overridepublic ArrayList<Budgets> findBudgetsAll(){return budgetsDao.selectBudgetsAll();}@Overridepublic Budgets findBudgetsById(Integer departmentId) {return budgetsDao.selectBudgetsById(departmentId);}@Overridepublic void updateById(Budgets budgets) {budgetsDao.updateById(budgets);}@Overridepublic void insertById(Budgets budgets) {budgetsDao.insertById(budgets);}@Overridepublic void deleteById(Budgets budgets) {budgetsDao.deleteById(budgets);}@Overridepublic Budgets findBudgetsStatusById(Integer departmentId) {return budgetsDao.selectBudgetsStatusById(departmentId);}@Overridepublic 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")@Autowiredprivate 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.xdnf.cn/news/1541035.html

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

相关文章

【PHP源码】匿名来信系统H5版本V1.0免费开源源码(含搭建教程)

你的匿名来信H5一封你的来信源码/表白祝福短信程序/往来信/传话短信源码支持邮件发信与手机短信发信“你的匿名来信”是最近某音上爆火的一个活动话题&#xff0c;可以通过H5网站&#xff0c;编辑自己想要对某人说的话或者祝福&#xff0c;网站会把您想说的发给您预留的号码&am…

Java 数据结构 最小栈的实现

在O&#xff08;N&#xff09;时间复杂度内找出最小值&#xff1a; 创建两个栈当普通栈只有一个数据时&#xff0c;把该数据放入最小栈往普通栈放入数据时&#xff0c;把要放入的数据和最小栈的栈顶数据相比较&#xff0c;若要放入的数据比最小栈的栈顶数据小&#xff0c;则把…

单元测试和unittest框架(超详细总结)

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;薪资嘎嘎涨 单元测试的定义 1. 什么是单元测试&#xff1f; 单元测试是指&#xff0c;对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作&am…

上手一个RGBD深度相机:从原理到实践--ROS noetic+Astra S(中):RGB相机的标定和使用

前言 本教程涉及基础相机的原理&#xff0c;使用&#xff0c;标定&#xff0c;和读取。(注&#xff1a;本教程默认大家有ROS1基础&#xff0c;故不对程序进行详细解释) 上一期&#xff1a;[csdn博客]上手一个RGBD深度相机&#xff1a;从原理到实践–ROS noeticAstra S&#xf…

Python 低层多线程接口_thread的用法

_thread是python标准库中的一个低层多线程API&#xff0c;可以在进程中启动线程来处理任务&#xff0c;并且提供了简单的锁机制来控制共享资源的同步访问。本文就_thread模块的用法和特性做个简单的演示。 文章目录 一、进程和线程的区别二、_thread模块的用法2.1 派生线程2.2…

ElasticsearchRestTemplate DSL日志打印

ElasticsearchRestTemplate DSL日志打印 痛点解决方案打印基础文档查询信息打印最终DML语句 痛点 在使用 ElasticsearchRestTemplate 进行数据操作时&#xff0c;经常遇到的一个问题是线上问题排查困难。具体来说&#xff0c;在线上环境中&#xff0c;当出现问题时&#xff0c…

vue项目中——如何用echarts实现动态水球图

有时候UI的脑洞真的很大&#xff0c;总是设计出一些稀奇古怪的图形&#xff0c;但又不得不佩服他们的审美&#xff0c;确实还挺好看的。今天给大家介绍echarts如何实现动态水球图。如图所示&#xff1a; 实现步骤 一、引入 在vue页面中引入echarts&#xff0c;如未安装需要先…

Java面试篇基础部分-Synchronized关键字详解

Synchronized关键字用于对Java对象、方法、代码块等提供线程安全操作。Synchronized属于独占式的悲观锁机制,同时也是可重入锁。我们在使用Synchronized关键字的时候,可以保证同一时刻只有一个线程对该对象进行访问;也就是说它在同一个JVM中是线程安全的。   Java中的每个…

Golang | Leetcode Golang题解之第420题强密码检验器

题目&#xff1a; 题解&#xff1a; func strongPasswordChecker(password string) int {hasLower, hasUpper, hasDigit : 0, 0, 0for _, ch : range password {if unicode.IsLower(ch) {hasLower 1} else if unicode.IsUpper(ch) {hasUpper 1} else if unicode.IsDigit(ch)…

TLC/TK Adv学习笔记1 - Py版本+美化

Python下重点 tkinter.ttk 模块自 Tk 8.5 开始引入&#xff0c;它提供了对 Tk 风格的部件集的访问。 它还带来了一些额外好处包括在 X11 下的反锯齿字体渲染和透明化窗口&#xff08;需要有 X11 上的混合窗口管理器&#xff09;。 tkinter.ttk 的基本设计思路&#xff0c;就是…

【Python】探索 Errbot:多功能聊天机器人框架

不是旅行治愈了你&#xff0c;是你在路上放过了自己。 在当今的数字化时代&#xff0c;聊天机器人已成为企业与客户互动、提升工作效率和增加乐趣的重要工具。Errbot是一个高度可扩展的聊天机器人框架&#xff0c;它允许开发者使用Python轻松创建和定制机器人。本文将介绍Errb…

乐观锁、悲观锁及死锁

乐观锁、悲观锁 1.概念 悲观锁(悲观锁定)&#xff1a;具有强烈的独占和排他特性。在整个执行过程中&#xff0c;将处于锁定状态。悲观锁在持有数据的时候总会把资源或者数据锁住&#xff0c;这样其他线程想要请求这个资源的时候就会阻塞&#xff0c;直到等到悲观锁把资源释放为…

如何基于Flink CDC与OceanBase构建实时数仓,实现简化链路,高效排查

本文作者&#xff1a;阿里云Flink SQL负责人&#xff0c;伍翀&#xff0c;Apache Flink PMC Member & Committer 众多数据领域的专业人士都很熟悉Apache Flink&#xff0c;它作为流式计算引擎&#xff0c;流批一体&#xff0c;其核心在于其强大的分布式流数据处理能力&…

DHCP协议原理(网络协议)

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

李沐 过拟合和欠拟合【动手学深度学习v2】

模型容量 模型容量的影响 估计模型容量 难以在不同的种类算法之间比较&#xff0c;例如树模型和神经网络 给定一个模型种类&#xff0c;将有两个主要因素&#xff1a; 参数的个数参数值的选择范围 VC维 线性分类器的VC维 VC维的用处 数据复杂度 多个重要因素&#xff1a; 样…

信息安全数学基础(20)中国剩余定理

前言 信息安全数学基础中的中国剩余定理&#xff08;Chinese Remainder Theorem&#xff0c;简称CRT&#xff09;&#xff0c;又称孙子定理&#xff0c;是数论中一个重要的定理&#xff0c;主要用于求解一次同余式组。 一、背景与起源 中国剩余定理最早见于我国南北朝时期的数学…

鸿蒙小技巧

1.子调用父的方法 子组件 父组件 2.使用emitter实现孙子传爷 孙子组件 import emitter from ohos.events.emitter;let event: emitter.InnerEvent {eventId: 1,priority: emitter.EventPriority.HIGH};let eventData: emitter.EventData {data: {"state": true,…

R语言APSIM模型进阶应用与参数优化、批量模拟实践技术

随着数字农业和智慧农业的发展&#xff0c;基于过程的农业生产系统模型在模拟作物对气候变化的响应与适应、农田管理优化、作物品种和株型筛选、农田固碳和温室气体排放等领域扮演着越来越重要的作用。APSIM (Agricultural Production Systems sIMulator)模型是世界知名的作物生…

帧率和丢帧分析实践

一、识别丢帧 1、使用AppAnalyzer检测性能问题 首先使用AppAnalyzer工具进行性能问题检测&#xff0c;AppAnalyzer是DevEco Studio中提供的检测评分工具&#xff0c;用于测试并评价HarmonyOS应用或元服务的质量&#xff0c;能快速提供评估结果和改进建议&#xff0c;当前支持的…

Visual Studio 引入外部静态库与动态库

Windows Visual Studio 引入外部静态库与动态库 1.前言 在C开发中不可避免地要在自己的项目中引入外部库&#xff08;OpenGL、OpenCV、OCC等&#xff09;&#xff0c;使用这些库都需要在项目中配置相应的属性才能正常开发编译。 2.引入 引入外部库主要引入三种文件&#xf…