Rest 微服务工程搭建01——微服务提供者Module模块
生活随笔
收集整理的這篇文章主要介紹了
Rest 微服务工程搭建01——微服务提供者Module模块
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
建表SQL語句的書寫
CREATE TABLE `payment` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵',`serial` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '支付流水號',PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '支付表' ROW_FORMAT = Dynamic;建議使用@Mapper 注解,盡量少使用?@Repository 注解
mybatis的映射文件PaymentMapper.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.dym.springcloud.dao.PaymentDao"></mapper>父的pom文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.atguigu.springcloud</groupId><artifactId>dym_cloud2021</artifactId><version>1.0-SNAPSHOT</version><modules><module>cloud-provider-payment8001</module></modules><packaging>pom</packaging><!-- 統(tǒng)一管理jar包版本 --><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.16.18</lombok.version><mysql.version>8.0.19</mysql.version><druid.version>1.1.16</druid.version><mybatis.spring.boot.version>1.3.0</mybatis.spring.boot.version></properties><!-- 子模塊繼承之后,提供作用:鎖定版本+子modlue不用寫groupId和version --><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.1.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.version}</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.spring.boot.version}</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><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><fork>true</fork><addResources>true</addResources></configuration></plugin></plugins></build></project>cloud-provider-payment8001的pom文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>dym_cloud2021</artifactId><groupId>com.atguigu.springcloud</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>cloud-provider-payment8001</artifactId><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.1.10</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></dependencies></project>application.yml
server:port: 8001spring:application:name: cloud-payment-servicedatasource:type: com.alibaba.druid.pool.DruidDataSource # 當(dāng)前數(shù)據(jù)源操作類型driver-class-name: com.mysql.cj.jdbc.Driver # mysql驅(qū)動包url: jdbc:mysql://localhost:3306/dym01?useUnicode=true&characterEncoding=utf-8&useSSL=falseusername: rootpassword: rootmybatis:mapperLocations: classpath:mapper/*.xmltype-aliases-package: com.dym.springcloud.entities # 所有Entity別名類所在包PaymentMain8001.java
package com.dym.springcloud;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication public class PaymentMain8001 {public static void main(String[] args) {SpringApplication.run(PaymentMain8001.class, args);} }Payment.java
package com.dym.springcloud.entities;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.io.Serializable;@Data @AllArgsConstructor @NoArgsConstructor public class Payment implements Serializable {private Long id;private String serial; }CommonResult.java
package com.dym.springcloud.entities;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.io.Serializable;@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);} }PaymentDao.java
package com.dym.springcloud.dao;import com.dym.springcloud.entities.Payment; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param;@Mapper public interface PaymentDao {public int create(Payment payment);public Payment getPaymentById(@Param("id") Long id); }PaymentMapper.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.dym.springcloud.dao.PaymentDao"><insert id="create" parameterType="com.dym.springcloud.entities.Payment" useGeneratedKeys="true" keyProperty="id">insert into payment(serial) values(#{serial})</insert><resultMap id="BaseResultMap" type="com.dym.springcloud.entities.Payment"><id column="id" property="id" jdbcType="BIGINT"></id><id column="serial" property="serial" jdbcType="VARCHAR"></id></resultMap><select id="getPaymentById" parameterType="Long" resultMap="BaseResultMap">select * from payment where id=#{id};</select></mapper>PaymentService.java
package com.dym.springcloud.service;import com.dym.springcloud.entities.Payment; import org.apache.ibatis.annotations.Param;public interface PaymentService {public int create(Payment payment);public Payment getPaymentById(@Param("id") Long id); }PaymentServiceImpl.java
package com.dym.springcloud.service.impl;import com.dym.springcloud.dao.PaymentDao; import com.dym.springcloud.entities.Payment; import com.dym.springcloud.service.PaymentService; import org.springframework.stereotype.Service;import javax.annotation.Resource;@Service public class PaymentServiceImpl implements PaymentService {@Resourceprivate PaymentDao paymentDao;public int create(Payment payment){return paymentDao.create(payment);}public Payment getPaymentById(Long id){return paymentDao.getPaymentById(id);} }PaymentController.java
package com.dym.springcloud.controller;import com.dym.springcloud.entities.CommonResult; import com.dym.springcloud.entities.Payment; import com.dym.springcloud.service.PaymentService; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;@RestController @Slf4j public class PaymentController {@Resourceprivate PaymentService paymentService;@PostMapping(value ="/payment/create")public CommonResult create(Payment payment){int result=paymentService.create(payment);log.info("********插入結(jié)果:"+result);if(result>0){return new CommonResult(200,"插入數(shù)據(jù)庫成功",result);}else{return new CommonResult(444,"插入數(shù)據(jù)庫失敗",null);}}@GetMapping(value ="/payment/get/{id}")public CommonResult getPaymentById(@PathVariable("id") Long id){Payment payment=paymentService.getPaymentById(id);log.info("********查詢結(jié)果:"+payment);if(payment!=null){return new CommonResult(200,"查詢成功",payment);}else{return new CommonResult(444,"沒有對應(yīng)的記錄,查詢ID:"+id,null);}}}總結(jié)
以上是生活随笔為你收集整理的Rest 微服务工程搭建01——微服务提供者Module模块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微服务架构编码,构建
- 下一篇: 热部署Devtools的简单使用