zoukankan      html  css  js  c++  java
  • springcloud尚硅谷2020新版p1-p10支付模块构建下--IDEA项目配置&单体微服务构建

    一、IDEA相关约定:

    1、utf8编码

     2、注解生效激活

     3、java编译版本

    4、父工程不用的文件过滤掉

    二、创建maven父工程

     1、删除父工程src及trage

     2、配置pom.xml文件

    <?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>could2020</artifactId>
      <version>1.0-SNAPSHOT</version>
      <modules>
        <module>cloud-provider-payment8001</module>
      </modules>
      <packaging>pom</packaging>
    
      <!--统一管理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>5.1.47</mysql.version>
        <druid.version>1.1.16</druid.version>
        <mybatis.spring.boot.version>1.3.0</mybatis.spring.boot.version>
      </properties>
    
      <!--子模块继承之后,提供作用:锁定版本+子module不用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>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>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>
    View Code

    三、微服务单体  (1. 建module 2. 改pom 3. 写yml 4. 主启动 5. 业务类)

    1、创建Module子模块,配置pom.xml

    <?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>could2020</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>
            <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>
    View Code

    2、数据库

    3、配置子模块的application.yml (注意缩进,否则运行失败)

    server:
      port: 8001
    
    spring:
      application:
        name: cloud-payment-service
      datasource:
        # 当前数据源操作类型
        type: com.alibaba.druid.pool.DruidDataSource
        # mysql驱动类
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/db2019?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8
        username: root
        password: 123456
    mybatis:
      mapper-locations: classpath*:mapper/*.xml
      type-aliases-package: com.atguigu.springcloud.entities #entity别名类所在包
    View Code

    启动类:

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

    4、entity层

    实体类Payment和CommonResult

    @Data
    @AllArgsConstructor //全参构造
    @NoArgsConstructor //无参构造
    public class Payment implements Serializable {
        private Long id;
        private String serial;
    }
    @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);
        }
    }

    5、dao层

    @Mapper
    public interface PaymentDao {
        public int create(Payment payment);
        public Payment getPaymentById(@Param("id") Long id);
    }

    6、mapper层 创建Payment.xml(一般放在resource/mapper)

    <?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.atguigu.springcloud.dao.PaymentDao">
        <insert id="create" parameterType="com.atguigu.springcloud.entities.Payment" useGeneratedKeys="true" keyProperty="id">
          insert into payment(serial) value (#{serial})
        </insert>
        
        <resultMap id="BaseResultMap" type="com.atguigu.springcloud.entities.Payment">
            <id column="id" property="id" jdbcType="BIGINT"/>
            <id column="serial" property="serial" jdbcType="VARCHAR"/>
        </resultMap>
    
        <select id="getPaymentById" parameterType="Long" resultMap="BaseResultMap">
          SELECT * FROM payment where id=#{id}
        </select>
    </mapper>
    View Code

    7、service层接口

    public interface PaymentService {
    
        public int create(Payment payment);
    
        public Payment getPaymentById(@Param("id") Long id);
    }

       service/impl包下

    @Service
    public class PaymentServiceImpl implements PaymentService {
    
        @Resource
        private PaymentDao paymentDao;
    
        @Override
        public int create(Payment payment){
            return paymentDao.create(payment);
        }
    
        @Override
        public Payment getPaymentById(@Param("id") Long id){
            return paymentDao.getPaymentById(id);
        }
    }

    8、controller层

    @RestController
    @Slf4j
    @RequestMapping("payment")
    public class PaymentController {
    
        @Resource
        private PaymentService paymentService;
    
        @PostMapping("create")
        public CommonResult create(Payment payment){
            int result = paymentService.create(payment);
            log.info("*************插入结果:" + result);
            if (result > 0){
                return new CommonResult(200,"插入数据库成功",result);
            }else {
                return new CommonResult(444,"插入数据库失败",null);
            }
        }
    
        @GetMapping("get/{id}")
        public CommonResult getPaymentById(@PathVariable Long id){
            Payment payment = paymentService.getPaymentById(id);
            log.info("*************插入结果:" + payment);
            if (payment != null){
                return new CommonResult(200,"查询成功",payment);
            }else {
                return new CommonResult(444,"查询失败,没有匹配id="+id + "的记录",null);
            }
        }
    }
    View Code
  • 相关阅读:
    导出数据到Excel文件
    判断是否在某个时间段以内
    获取网络图片并保存到指定目录
    创建目录并且将数据写入txt文件、删除指定目录下的文件
    获取二维数组中指定字段的值,并且将值组成一维数组
    JS--获取月份天数
    php---邮件发送
    3D--魔方
    leetcode每日一题之10.分割回文串 II
    leetcode每日一题之9.最长递增子序列
  • 原文地址:https://www.cnblogs.com/Meng2113/p/13614874.html
Copyright © 2011-2022 走看看