• 2020最新版SpringCloud(H版&alibaba)框架开发教程(一)


    微服务模块

    1.建module

    2.改pom

    3.写yml

    4.主启动

    5.业务类

    PaymentDao:
    /**
     * @Author: cws
     * @Date: 9:37 2020/8/12
     * @Description:  微服务模块读和写的操作接口
     * @Version v1.0
     */
    @Mapper
    public interface PaymentDao {
    
        public Payment getPaymentById(@Param("id") Long id);
    
        public int create(Payment payment);
    }
    entities.Payment:
    /**
    * @Author: cws * @Date: 0:46 2020/8/12 * @Description: * @Version v1.0 */ @Data @AllArgsConstructor //有参构造 @NoArgsConstructor //无参构造 public class Payment implements Serializable { private Long id; private String serial; }
    entities.CommonResult:
    /**
    * @Author: cws * @Date: 0:50 2020/8/12 * @Description: 返回前端的通用json实体串 * @Version v1.0 */ @Data @AllArgsConstructor @NoArgsConstructor public class CommonResult<T> { //404 not found private Integer code; //返回成功或失败的编码 private String message; //返回成功或失败的信息 private T data; //前台显示的属性,传什么就返回什么 public CommonResult(Integer code, String message) { this(code , message , null); //如果失败就返回null } }
    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.atguigu.springcloud.dao.PaymentDao"> <insert id="create" parameterType="com.atguigu.springcloud.entities.Payment" useGeneratedKeys="true" keyProperty="id"> insert into payment (serial) values (#{serial}) </insert> <!--搜索的映射 column数据库的名字,property是java实体类里面的名字(别名),jdbcType是数据库里面的数据类型 --> <resultMap id="BaseResultMap" type="com.atguigu.springcloud.entities.Payment"> <id column="id" property="id" jdbcType="BIGINT"/> <result column="serial" property="serial" jdbcType="VARCHAR"/> </resultMap> <select id="getPaymentById" resultMap="BaseResultMap" parameterType="Long"> select id , serial from payment where id = #{id} </select> </mapper>
    PaymentServiceImpl:
    /**
    * @Author: cws * @Date: 11:11 2020/8/12 * @Description: * @Version v1.0 */ @Service public class PaymentServiceImpl implements PaymentService { @Autowired private PaymentDao paymentDao; @Override public Payment getPaymentById(Long id) { return paymentDao.getPaymentById(id); } @Override public int create(Payment payment) { return paymentDao.create(payment); } }
    PaymentService:
    /**
    * @Author: cws * @Date: 11:10 2020/8/12 * @Description: * @Version v1.0 */ public interface PaymentService { public Payment getPaymentById(@Param("id") Long id); public int create(Payment payment); }
    controller:
    /**
    * @Author: cws * @Date: 11:13 2020/8/12 * @Description: * @Version v1.0 */ @RestController @Slf4j //打印日志 public class PaymentController { @Autowired private PaymentService paymentService; @PostMapping(value = "/payment/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(404, "插入失败" , null); } } @GetMapping(value = "/payment/get/{id}") public CommonResult getPaymentById(@PathVariable("id") Long id) { Payment result = paymentService.getPaymentById(id); if (result!=null) { return new CommonResult(200, "查询成功", result); } else { return new CommonResult(404, "查询失败" , null); } } }

    消费者订单模块

    配置容器:
    /**
     * @Author: cws
     * @Date: 13:59 2020/8/12
     * @Description:
     * @Version v1.0
     */
    @Configuration
    public class ApplicationContextConfig {
    
        @Bean    //依赖注入容器   获取对象
        public RestTemplate getRestTemplate() {
            return new RestTemplate();
        }
    }
    controller:
    /**
     * @Author: cws
     * @Date: 14:08 2020/8/12
     * @Description:
     * @Version v1.0
     */
    @RestController
    @Slf4j
    public class OrderController {
    
        public static final String PAYMENT_URL = "http://localhost:8001";
    
        @Resource
        private RestTemplate restTemplate;
    
        @GetMapping("/consumer/payment/create")
        public CommonResult<Payment> create( Payment payment) {
            log.info("*******消费者启动创建订单*******");
            CommonResult commonResult = restTemplate.postForObject(PAYMENT_URL + "/payment/create", payment, CommonResult.class);//地址  参数  对象类型
            log.info("=================="+commonResult);
            return commonResult;
        }
    
        @GetMapping("/consumer/payment/get/{id}")
        public CommonResult<Payment> getPaymentById(@PathVariable("id") Long id) {
            log.info("===========================");
            CommonResult object = restTemplate.getForObject(PAYMENT_URL + "/payment/get/" + id, CommonResult.class);
            log.info("=============="+object+"=======上面的路径要注意  缺一个/都识别不了======");
            return object;
        }
    }
    主启动:
    /**
     * @Author: cws
     * @Date: 13:45 2020/8/12
     * @Description:
     * @Version v1.0
     */
    @SpringBootApplication
    public class OrderMain80 {
        public static void main(String[] args) {
            SpringApplication.run(OrderMain80.class, args);
        }
    }

    注:实体CommonResult和Payment一样

    工程重构

     

    <!-- 项目坐标   在想调用的子项目pom文件上打上坐标调用-->
            <dependency>
                <groupId>com.atguigu.springcloud</groupId>
                <artifactId>cloud-api-commons</artifactId>
                <version>${project.version}</version>
            </dependency>
        </dependencies>
  • 相关阅读:
    Json 基于jQuery+JSON的省市联动效果
    事务隔离级别的理解
    java实现爬虫功能
    最简单的文件上传
    SpringMVC视图解析器
    Date类型与字符串之间的转换
    Java:过去、未来的互联网编程之王
    cocos2d-x游戏开发之动画
    CCF真题之模板生成系统
    CCF真题之日期计算
  • 原文地址:https://www.cnblogs.com/cwshuo/p/13489473.html
Copyright © 2020-2023  润新知