SpringCloud_01

用基础的Maven项目搭建

 一个简单的Maven模块结构是这样的:
 ​
 -- app-parent: 一个父项目(app-parent)聚合了很多子项目(app-util\app-dao\app-web...)
   |-- pom.xml
   |
   |-- app-core
   ||---- pom.xml
   |
   |-- app-web
   ||---- pom.xml
   ......

新建一个maven项目作为父项目

子项目01:springcloud-api

实体类包pojo

 package com.qing.springcloud.pojo;
 ​
 import java.io.Serializable;
 ​
 /**
  * (Dept)实体类
  *
  * @author qinghua
  * @since 2022-01-14 13:58:02
  */
 public class Dept implements Serializable {
     private static final long serialVersionUID = -39565564666543179L;
     
     private Long id;
     
     private String name;
     
     private String dbSource;
 ​
     public Dept(){}
     
     public Dept(Long id, String name, String dbSource){
         this.id = id;
         this.name = name;
         this.dbSource = dbSource;
     }
             
     public Long getId() {
         return id;
     }
 ​
     public void setId(Long id) {
         this.id = id;
     }
         
     public String getName() {
         return name;
     }
 ​
     public void setName(String name) {
         this.name = name;
     }
         
     public String getDbSource() {
         return dbSource;
     }
 ​
     public void setDbSource(String dbSource) {
         this.dbSource = dbSource;
     }
 ​
     @Override
     public String toString(){
         return "Dept {" +
             "id : " + id + ", " +
             "name : " + name + ", " +
             "dbSource : " + dbSource + ", " +
         '}';
     }
 ​
 }

子项目02:springcloud-provider-dept-8001

导入依赖pom

 <dependencies>
         <!--我们需要拿到实体类,所以需要配置api module-->
         <dependency>
             <groupId>com.qing</groupId>
             <artifactId>springcloud-api</artifactId>
             <version>1.0-SNAPSHOT</version>
         </dependency>
         <!---->
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
         </dependency>
         <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>druid</artifactId>
         </dependency>
         <dependency>
             <groupId>ch.qos.logback</groupId>
             <artifactId>logback-core</artifactId>
         </dependency>
         <dependency>
             <groupId>org.mybatis.spring.boot</groupId>
             <artifactId>mybatis-spring-boot-starter</artifactId>
         </dependency>
         <!--test-->
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-test</artifactId>
         </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
         </dependency>
         <!--jetty-->
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-jetty</artifactId>
         </dependency>
         <!--热部署-->
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-devtools</artifactId>
         </dependency>
         <dependency>
             <groupId>com.github.pagehelper</groupId>
             <artifactId>pagehelper</artifactId>
             <version>5.2.0</version>
         </dependency>
 ​
     </dependencies>

编写配置文件

 server:
   port: 8001
 ​
 mybatis:
   type-aliases-package: com.kuang.springcloud.pojo
   config-location: classpath:mybatis/mybatis-config.xml
   mapper-locations: classpath:mybatis/mapper/*.xml
 ​
 spring:
   application:
     name: springcloud-provider-dept
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     driver-class-name: org.gjt.mm.mysql.Driver
     url: jdbc:mysql://localhost:6666/dept01?useUnicode=true&characterEncoding=utf-8
     username: root
     password: 123456

dao

     package com.qing.springcloud.dao;
 ​
 import com.qing.springcloud.pojo.Dept;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 import java.util.List;
 ​
 /**
  * (Dept)表数据库访问层
  *
  * @author qinghua
  * @since 2022-01-14 14:16:52
  */
 @Mapper
 @Repository
 public interface DeptDao {
 ​
     /**
      * 通过ID查询单条数据
      *
      * @param id 主键
      * @return 实例对象
      */
     Dept queryById(@Param("id")Long id);
     
     /**
      * 查询全部数据, 
      * @Param searchKey 查询条件(可为空)
      * @return List
      */
     List<Dept> queryAll(@Param("searchKey") String searchKey);
 ​
     /**
      * 新增数据
      *
      * @param dept 实例对象
      * @return 影响行数
      */
     int insert(Dept dept);
 ​
     /**
      * 修改数据
      *
      * @param dept 实例对象
      * @return 影响行数
      */
     int update(Dept dept);
 ​
     /**
      * 通过主键删除数据
      *
      * @param id 主键
      * @return 影响行数
      */
     int deleteById(@Param("id")Long id);
 ​
 }

service

     package com.qing.springcloud.service;
 ​
 import com.github.pagehelper.PageInfo;
 import com.qing.springcloud.pojo.Dept;
 ​
 /**
  * (Dept)表服务接口
  *
  * @author qinghua
  * @since 2022-01-14 14:16:54
  */
 public interface DeptService {
 ​
     /**
      * 通过ID查询单条数据
      *
      * @param id 主键
      * @return 实例对象
      */
     Dept queryById(Long id);
     
     /**
      * 分页查询全部数据
      *
      * @param searchKey 查询条件(可为空)
      * @param pageNum pageHelper的当前页
      * @return PageInfo对象
      */
     PageInfo<Dept> queryAllFy(String searchKey, int pageNum);
 ​
     /**
      * 新增数据
      *
      * @param dept 实例对象
      * @return 实例对象
      */
     Dept insert(Dept dept);
 ​
     /**
      * 修改数据
      *
      * @param dept 实例对象
      * @return 实例对象
      */
     Dept update(Dept dept);
 ​
     /**
      * 通过主键删除数据
      *
      * @param id 主键
      * @return 是否成功
      */
     boolean deleteById(Long id);
 ​
 }

controller

     package com.qing.springcloud.controller;
 ​
 import com.github.pagehelper.PageInfo;
 import com.qing.springcloud.pojo.Dept;
 import com.qing.springcloud.service.DeptService;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 ​
 import javax.annotation.Resource;
 ​
 /**
  * (Dept)表控制层
  *
  * @author qinghua
  * @since 2022-01-14 14:16:53
  */
 //@CrossOrigin
 @RestController
 @RequestMapping("/dept")
 public class DeptController {
     /**
      * 服务对象
      */
     @Resource
     private DeptService deptService;
 ​
     /**
      * 通过主键查询单条数据
      *
      * @param id 主键
      * @return 单条数据
      */
     @GetMapping("/queryById/{id}")
     public ResponseEntity<Dept> queryById(@PathVariable("id") Long id) {
         return ResponseEntity.ok(this.deptService.queryById(id));
     }
     
     /**
      * 查询全部数据
      *
      * @param searchKey 查询条件(可为空)
      * @param pageNum pageHelper的当前页
      * @return (pageSize=)10条数据
      */
     @GetMapping("/queryAll")
     public ResponseEntity<PageInfo<Dept>> queryAllFy() {
         String searchKey = "";
         int pageNum = 1;
         return ResponseEntity.ok(this.deptService.queryAllFy(searchKey, pageNum));
     }
 ​
     /**
      * 新增数据
      *
      * @param dept 实体
      * @return 新增结果
      */
     @PostMapping("/add")
     public ResponseEntity<Dept> add(Dept dept) {
         return ResponseEntity.ok(this.deptService.insert(dept));
     }
 ​
     /**
      * 编辑数据
      *
      * @param dept 实体
      * @return 编辑结果
      */
     @PutMapping("")
     public ResponseEntity<Dept> edit(Dept dept) {
         return ResponseEntity.ok(this.deptService.update(dept));
     }
 ​
     /**
      * 删除数据
      *
      * @param id 主键
      * @return 删除是否成功
      */
     @DeleteMapping("")
     public ResponseEntity<Boolean> deleteById(Long id) {
         return ResponseEntity.ok(this.deptService.deleteById(id));
     }
 ​
 }

测试运行

 package com.qing.springcloud;
 ​
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 ​
 @SpringBootApplication
 public class DeptProvider_8001 {
     public static void main(String[] args) {
         SpringApplication.run(DeptProvider_8001.class, args);
     }
 }

子项目03:springcloud-consumer-dept-80 1、导入依赖

 <dependencies>
         <dependency>
             <groupId>com.qing</groupId>
             <artifactId>springcloud-api</artifactId>
             <version>1.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
         </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-devtools</artifactId>
         </dependency>
         <dependency>
             <groupId>com.github.pagehelper</groupId>
             <artifactId>pagehelper</artifactId>
             <version>5.2.0</version>
             <scope>compile</scope>
         </dependency>
 ​
     </dependencies>

2、编写配置文件

 server:
   port: 80

3、配置类

 package com.qing.springcloud.config;
 ​
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.client.RestTemplate;
 ​
 @Configuration
 public class ConfigBean {//@Configuration -- spring  applicationContext.xml
 ​
     //配置负载均衡实现RestTemplate
     // IRule
     // RoundRobinRule 轮询
     // RandomRule 随机
     // AvailabilityFilteringRule : 会先过滤掉,跳闸,访问故障的服务~,对剩下的进行轮询~
     // RetryRule : 会先按照轮询获取服务~,如果服务获取失败,则会在指定的时间内进行,重试
     @Bean
     public RestTemplate getRestTemplate(){
         return new RestTemplate();
     }
 }

4、主启动类开启xxx注解

 package com.qing.springcloud;
 ​
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 ​
 @SpringBootApplication
 public class DeptConsumer_80 {
     public static void main(String[] args) {
         SpringApplication.run(DeptConsumer_80.class,args);
     }
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值