springcloud(四) 基础项目搭建以及devtools热部署、工程重构

9 篇文章 0 订阅
3 篇文章 0 订阅

一、基础项目搭建

  1. 建立项目
    1. 创建cloud-provider-payment8001项目
  2. 配置pom
    1. 因为是子项目所以可以不用配置groupid、version
    2. 调用父类配置不写version
    3. <?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>cloud2020</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>
          
  3. yml配置文件
    1. 创建主配置文件
      1. 配置数据库连接池
      2. 配置mybatis映射
    2. server:
        port: 8001
      
      spring:
        application:
          name: cloud-payment-service
        datasource:
          # 当前数据源操作类型
          type: com.alibaba.druid.pool.DruidDataSource
          # mysql驱动包 com.mysql.jdbc.Driver
          driver-class-name: org.gjt.mm.mysql.Driver
          url: jdbc:mysql://localhost:3306/db2019?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
          username: root
          password: root
      
      
      mybatis:
        mapperLocations: classpath:mapper/*.xml
        # 所有Entity别名类所在包
        type-aliases-package: com.atguigu.springcloud.entities

       

  4. 主启动
  5. 业务类
    1. 创建entities实体类
      1. @Data
        @AllArgsConstructor
        @NoArgsConstructor
        public class Payment implements Serializable {
            private Long id;
            private String serial;
        }

         

    2. 创建dao(mapper)
      1. 
        @Mapper
        public interface PaymentDao {
        
            public int create(Payment payment);
        
            public Payment getPaymentById(@Param("id") Long id);
        }
        

         

    3. 创建mapper.xml,根据yml配置创建
      1. <?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="Payment" useGeneratedKeys="true" keyProperty="id">
                insert into payment(serial) VALUES(#{serial});
            </insert>
        
           <!--返回类型使用resultmap  可以字段映射-->
            <select id="getPaymentById" parameterType="long" resultMap="BaseResultMap">
                select * from  payment where id=#{id}
            </select>
        
           <!--字段映射-->
            <resultMap id="BaseResultMap" type="com.atguigu.springcloud.entities.Payment">
                <id column="id" property="id" jdbcType="BIGINT"/>
                <id column="serial" property="serial" jdbcType="VARCHAR"/>
            </resultMap>
        </mapper>

         

    4. 创建service
      1. 创建接口
        1. public interface PaymentService {
          
              public int create(Payment payment);
          
              public Payment getPaymentById(Long id);
          }
          

           

      2. 创建接口实现
        1. @Service
          public class PaymentServiceImpl implements PaymentService {
          
              @Resource
              private PaymentDao paymentDao;
          
              @Override
              public int create(Payment payment) {
                 return paymentDao.create(payment);
              }
          
              @Override
              public Payment getPaymentById(Long id) {
                  return paymentDao.getPaymentById(id);
              }
          }
          

           

    5. 创建controller
      1. @RestController
        @RequestMapping("/Payment")
        @Slf4j
        public class PaymentController {
        
            @Resource
            private PaymentService paymentService;
        
            @PostMapping(value = "/create")
            public CommonResult create(@RequestBody Payment payment)
            {
                System.out.println("=================================================================");
                int reslut = paymentService.create(payment);
                log.info("-------------插入结果"+reslut);
                return new CommonResult<>(200,"成功",reslut);
            }
        
            @GetMapping("/getPaymentById/{id}")
            public CommonResult getPaymentById(@PathVariable("id") long id)
            {
                 Payment payment = paymentService.getPaymentById(id);
                return new CommonResult<Payment>(200,"成功",payment);
            }
        }

         

  6. 总结
    1. 建module
    2. 改pom
    3. 配置yml
    4. 主启动
    5. 业务类

二、自动化热部署

  1. 配置pom
    1.  <!--自动热部署-->
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-devtools</artifactId>
                  <scope>runtime</scope>
                  <optional>true</optional>
              </dependency>

       

  2. 配置父级pom
    1. <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>

       

  3. 修改idea
  4. 快键键开启
  5. 重启idea

三、工程重构

  • 每个子模块中调用都需要实体类来进行赋值,都需要创建entities实体类,那么是否可以将这些公共的实体类独立成一个模块,所有模块共享?
  • 新建cloud-api-commons模块
  • 修改pom
  • 实体类处理
    • 将实体类引入模块
  • maven clean install
  • 修改订单和支付模块
    • 删除模块内entities
    • 引入cloud-api-commons的jar包
<dependency><!-- 引入自己定义的api通用包,可以使用Payment支付Entity -->
            <groupId>com.atguigu.springcloud</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>${project.version}</version>
 </dependency>

四、完成后的工程样图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值