springCould-从小白开始【1】

目录

1.说明

2.父工程 

3.服务端 

4.消费者

5.公共模块

6.RestTemplate


1.说明❤️❤️❤️

创建三个模块,服务者,消费者,公共api

注:spring boot和spring cloud有版本约束

2.父工程 ❤️❤️❤️

约定版本号配置

注意:jdk版本,maven版本

  <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><junit.version>4.12</junit.version><log4j.version>1.2.17</log4j.version><lombok.version>1.18.28</lombok.version><mysql.version>8.0.33</mysql.version><druid.verison>1.2.16</druid.verison><mybatis.spring.boot.verison>2.2.2</mybatis.spring.boot.verison></properties><dependencyManagement><dependencies><!--spring boot 2.2.2--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.2.2.RELEASE</version><type>pom</type><scope>import</scope></dependency><!--spring cloud Hoxton.SR1--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Hoxton.SR1</version><type>pom</type><scope>import</scope></dependency><!--spring cloud alibaba 2.1.0.RELEASE--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.2.0.RELEASE</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>${druid.verison}</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.spring.boot.verison}</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version><optional>true</optional></dependency></dependencies></dependencyManagement>

3.服务端 ❤️❤️❤️

1.创建模块

在父工程下创建子模块

注意jdk版本

2.导入pom依赖

   <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.16</version></dependency><!--mysql-connector-java--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--jdbc--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--引入自己的api--><dependency><groupId>org.example</groupId><artifactId>cloud-api-commons</artifactId><version>${project.version}</version></dependency></dependencies>

3.创建主启动类

在主包下面创建主启动类,扫描此包及其所有子包

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

4.编写yml配置文件

  • 1.修改端口
  • 2.添加mysql配置
  • 3.添加mybatis配置
server:port: 8001spring:application:name: could-payment-serivcedatasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/springcloudusername: rootpassword: 123456mybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: com.xz.springcloud.entity

5.编写业务类

①dao

dao层上一定要加@Mapper

@Mapper
public interface PaymentDao {/*** 增** @param payment* @return*/public int create(Payment payment);/*** 查* @param id* @return*/public Payment getPaymentById(@Param("id") Integer id);/*** 删除* @param id* @return*/public int deletePaymentById(@Param("id") Integer id);
}

②service

@Service
public class PaymentServiceImpl implements PaymentService {@Autowiredprivate PaymentDao paymentDao;@Overridepublic int create(Payment payment) {return paymentDao.create(payment);}@Overridepublic Payment getPaymentById(Integer id) {return paymentDao.getPaymentById(id);}@Overridepublic int deletePaymentById(Integer id) {return  paymentDao.deletePaymentById(id);}
}

③controller


@RestController
@RequestMapping("/payment")
@Slf4j
public class PaymentController {@Autowiredprivate PaymentService paymentService;/*** 增添数据* @param payment* @return*/@PostMapping("/create")public CommonResult create(@RequestBody Payment payment) {int result = paymentService.create(payment);log.info("插入结果:" + result);if (result > 0) {return new CommonResult(200, "插入数据成功!", result);} else {return new CommonResult(404, "插入数据失败", null);}}/*** 查询数据* @param id* @return*/@GetMapping("/selectById/{id}")public CommonResult getPaymentById(@PathVariable("id") Integer id) {Payment paymentResult = paymentService.getPaymentById(id);if (paymentResult != null) {return new CommonResult(200,"查询成功~",paymentResult);}else {return new CommonResult(404,"查询失败",null);}}@DeleteMapping("/deleteById/{id}")public CommonResult deleteById(@PathVariable("id") Integer id){int result = paymentService.deletePaymentById(id);if (result!=0){return new CommonResult(200,"删除成功",result);}else{return new CommonResult(404,"删除失败",null);}}
}

至此服务类已经完成构建

4.消费者❤️❤️❤️

1.创建模块

在父工程下创建子模块

注意jdk版本

2.导入pom依赖

因为是消费者模块,所以不用连接数据库,只需springboot的pom文件

注:如果配置类数据库的依赖,在yml里有没有数据库的配置,启动时会报错哦~

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.example</groupId><artifactId>cloud-api-commons</artifactId><version>${project.version}</version></dependency></dependencies>

3. 创建主程序类

在主包下面创建主启动类,扫描此包及其所有子包

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

4.编写yml配置文件

因为是消费者模块,所以无需任何配置,只改端口号

server:port: 80

5.编写业务类

①config

要引入RestTemplate,必须将其放入ioc容器中

@Configuration
public class ApplicationContextConfig {@Beanpublic RestTemplate getRestTemplate() {return new RestTemplate();}
}

②controller

引入RestTemplate,调用服务端

@RestController
@Slf4j
@RequestMapping("/consumer")
public class OrderController {public static final String PAYMENT_URL = "http://localhost:8001";@Autowiredprivate RestTemplate restTemplate;/*** 增** @param payment* @return*/@GetMapping("/payment/create")public CommonResult<Payment> create(Payment payment) {log.info("进入添加功能成功~");return restTemplate.postForObject(PAYMENT_URL + "/payment/create", payment, CommonResult.class);}/*** 查** @param id* @return*/@GetMapping("/payment/get/{id}")public CommonResult<Payment> getPayment(@PathVariable("id") Integer id) {log.info("进入查询功能成功");return restTemplate.getForObject(PAYMENT_URL + "payment/selectById/" + id, CommonResult.class);}
}

5.公共模块❤️❤️❤️

1.创建模块

在父工程下创建子模块

注意jdk版本

2.导入pom依赖 

不做业务,无需引入其他依赖

<dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version><optional>true</optional></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.0</version></dependency></dependencies>

3.编写公共资源

①实体类

其他模块必须引入此模块的pom依赖

注:一定要是实现序列化接口

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Payment implements Serializable {private Integer id;private String serial;
}

②包装类

给前传返回业务信息

/*** 包装类** @param <T>*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CommonResult<T> {private Integer code;private String message;private T data;public CommonResult(Integer code, String message) {this(code, message, null);}}

6.RestTemplate❤️❤️❤️

1.什么是RestTemplate

  • RestTemplate提供了多种便捷访问远程Http服务的方法
  • 是一种简单便捷的访问restful服务模板类,
  • Spring提供的用于访问Rest服务的客户端模板工具集

2.参数含义

  • url:REST请求地址
  • requestMap:请求参数
  • ResponseBean.class:HTTP响应转换被转换成的对象类型

3.使用方法 

  • 1. 注入到spring容器中
  • 2.自动导入,直接使用
@Configuration
public class ApplicationContextConfig {@Beanpublic RestTemplate getRestTemplate() {return new RestTemplate();}
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全网最详细的postman接口测试教程,一篇文章满足你

1、前言 之前还没实际做过接口测试的时候呢&#xff0c;对接口测试这个概念比较渺茫&#xff0c;只能靠百度&#xff0c;查看各种接口实例&#xff0c;然后在工作中也没用上&#xff0c;现在呢是各种各样的接口都丢过来&#xff0c;总算是有了个实际的认识。因为只是接口的功能…

散户真正的机会在一级市场,进场价格决定获利空间的大小!

在币圈&#xff0c;一级市场往往被视为价值投资的起点。这是因为一级市场的代币价格相对较低&#xff0c;因此有很大的上涨空间。一旦代币上线交易所&#xff0c;价格上涨&#xff0c;早期投资者和机构就可以获得丰厚的利润。 此外&#xff0c;一级市场也是发现优质项目的好机会…

演讲回顾:贝壳研发效能实践分享

5月20日&#xff0c;贝壳找房研发效能专家乔晓琳在由中国信通院和 QECon 组委会联合举办的技术沙龙活动中分享了贝壳研发效能实践经验。 产业背景&#xff1a;研发效能的新形势与新挑战 历史演进&#xff1a;贝壳找房研发效能之路 效能基建&#xff1a;业务研端到端协同平台 …

VueStu01-Vue是什么

1.概念 Vue 是一个 用于构建用户界面 的 渐进式 框架 。 2.构建用户界面 基于数据渲染出用户看到的页面。 3.渐进式 Vue的学习是循序渐进的&#xff0c;可以学一点用一点&#xff0c;不必全部学完才能用。哪怕你只学了 声明式渲染 这一个小部分的内容&#xff0c;你也可以完成…

Appcelerator打包ipa有哪些优势

大家好&#xff0c;我是咕噜-凯撒&#xff0c;我们得先知道Appcelerator是啥&#xff0c;Appcelerator&#xff08;现在更名为Axway Titanium&#xff09;是一个跨平台的移动应用开发框架通过提供一种简化和加速移动应用开发的方式帮助你构建高质量的跨平台应用程序。那使用App…

CODESYS的Robotics_PickAndPlace_without_Depictor例程解释

1.简介 在CODESYS的例程中&#xff0c;有一个例程演示了如何控制delta机械手从一个移动的转盘中拾取一个工件&#xff08;ring&#xff0c;圆环&#xff09;&#xff0c;然后放到移动的传送带上的托盘&#xff08;cone&#xff0c;圆锥&#xff09;中。这个例程在【C:\Program…

curl+postman 在java开发中的使用(提高效率)

概念 curl 是一个常用的命令行工具&#xff0c;用于发送各种类型的 HTTP 请求&#xff0c;包括 GET、POST、PUT、DELETE 等。它也可以用来下载文件、上传文件、设置 cookie、发送 multipart/form-data 等等。 使用 调用post接口 实际中的接口&#xff1a; curl --location…

风力发电机行星齿轮箱数据集 | 写论文再也不用担心没数据集啦!

风力发电机行星齿轮箱数据集 | 写论文再也不用担心没数据集啦&#xff01; 继上次推荐的航空发动机轴承数据集&#xff0c;今天给大家推荐一个风力发电机行星齿轮箱公开数据集&#xff0c;该数据集是继东南大学行星齿轮箱数据集的第2个行星齿轮箱数据集&#xff0c;该数据集有…

基于FPGA的视频接口之高速IO

简介 相对于其他视频接口来说,高速IO接口(以Xilinx公司为例,spartan 6系列的GTP、Artix7系列的GTP,KENTEX7系列的GTX和GTH等)具有简化设计、充分利用FPGA资源、降低设计成本等功能。 高速IO接口传输视频,一般会被拓展为万兆以太网、40G以太网、10G光纤、40G光纤、3G-SDI、…

C语言 文件I/O(备查)

所有案列 跳转到其他。 文件打开 FILE* fopen(const char *filename, const char *mode); 参数&#xff1a;filename&#xff1a;指定要打开的文件名&#xff0c;需要加上路径&#xff08;相对、绝对路径&#xff09;mode&#xff1a;指定文件的打开模式 返回值&#xff1a;成…

算法模板之双链表图文详解

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;算法模板、数据结构 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. ⛳️使用数组模拟双链表讲解1.1 &#x1f514;为什么我们要使用数组去模拟双链表…

日本服务器:确保其稳定性的几个要点

​  在租用日本服务器时&#xff0c;用户们大多一定会关注它的稳定性&#xff0c;其实这些顾及都是正常的。毕竟&#xff0c;网站要想正常运行&#xff0c;保障服务器稳定是关键。本文将讨论有关如何保障日本服务器稳定性的一些有用技巧&#xff0c;希望对您有所帮助。 1.注重…