lilele200706

 

(1)SpringCloud怎么用

SpringCloud怎么用

0、建一个总的项目springcloud

需要导入的依赖:SpringCloud

<!--SpringCloud的依赖-->
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies -->
<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-dependencies</artifactId>
   <version>Greenwich.SR1</version>
   <type>pom</type>
   <scope>import</scope>
</dependency>
<!--SpringBoot-->
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies -->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-dependencies</artifactId>
   <version>2.1.4.RELEASE</version>
   <type>pom</type>
   <scope>import</scope>
</dependency>

数据库

<!--数据库-->
<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.47</version>
</dependency>
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid</artifactId>
   <version>1.1.10</version>
</dependency>
<!--SpringBoot启动器-->
<dependency>
   <groupId>org.mybatis.spring.boot</groupId>
   <artifactId>mybatis-spring-boot-starter</artifactId>
   <version>1.3.2</version>
</dependency>

日志和测试

<!--日志和测试:junit-->
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>${junit.version}</version>
</dependency>
<!--lombok-->
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
   <version>${lombok.version}</version>
</dependency>
<!--log4j-->
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
   <version>${log4j.version}</version>
</dependency>
<!--logback-core-->
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-core -->
<dependency>
   <groupId>ch.qos.logback</groupId>
   <artifactId>logback-core</artifactId>
   <version>${logback-core.version}</version>
</dependency>

1、第一个模块springcloud-api

需要的依赖

<!--父依赖有版本号-->
<dependencies>
   <dependency>
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
   </dependency>
</dependencies>

写一个和数据库中表对应的实体类Dept

2、第二个模块服务提供者springcloud-provider-dept-8001

需要的依赖

<!--服务提供者,需要连接数据库-->
<artifactId>springcloud-provider-dept-8001</artifactId>

<dependencies>
   <!--需要实体类,配置api module-->
   <dependency>
       <groupId>org.lele</groupId>
       <artifactId>springcloud-api</artifactId>
       <version>1.0-SNAPSHOT</version>
   </dependency>
   <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
   </dependency>
   <dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>druid</artifactId>
   </dependency>
   <dependency>
       <groupId>org.mybatis.spring.boot</groupId>
       <artifactId>mybatis-spring-boot-starter</artifactId>
   </dependency>
   <dependency>
       <groupId>ch.qos.logback</groupId>
       <artifactId>logback-core</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 类似于Tomcat的功能-->
   <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>
</dependencies>

添加配置文件application.yml

server:
port: 8001

#mybatis配置
mybatis:
type-aliases-package: org.lele.springcloud.pojo #别名
config-location: classpath:mybatis/mybatis-config.xml
mapper-locations: classpath:mybatis/mapper/*.xml

#spring配置
spring:
application:
  name: springcloud-provider-dept-8001
datasource:
  type: com.alibaba.druid.pool.DruidDataSource
  driver-class-name: com.mysql.jdbc.Driver
  url: jdbc:mysql://localhost:3306/db01?useUnicode=true&characterEncoding=utf-8
  username: root
  password: 123456

添加配置文件mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
       "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <settings>
       <!--开启二级缓存-->
      <setting name="cacheEnabled" value="true"/>
  </settings>
</configuration>

写Dao层,Service层,Controller层,最后写一个启动类。

3、第四个模块服务消费者springcloud-consumer-80

需要的依赖

<!--    实体类和web-->
   <dependencies>
       <dependency>
           <groupId>org.lele</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>
   </dependencies>

添加配置文件application.yml

server:
port: 80

编写消费者远程调用提供者

/**
* 理解:消费者,不应该有service层
* RestTemplate......供我们直接调用其他模块的!需要注册到spring中
* 方法参数比较重要的(URL,实体参数 map,返回的类型 responseType)
*/
@RestController
public class DeptConsumerController {
 
   @Autowired
   private RestTemplate restTemplate;//提供多种便捷访问远程http服务的方法,简单的Restful服务模板
   
   private static final String REST_URL_PREFIX = "http://localhost:8001";
   @RequestMapping("/consumer/dept/get/{id}")
   public Dept get(@PathVariable("id") Long id){
       return restTemplate.getForObject(REST_URL_PREFIX+"/dept/get/"+id,Dept.class);
  }
   @RequestMapping("/consumer/dept/add")
   public boolean add(Dept dept){
       return restTemplate.postForObject(REST_URL_PREFIX+"/dept/add",dept,Boolean.class);
  }
   @RequestMapping("/consumer/dept/list")
   public List<Dept> list(){
       return restTemplate.getForObject(REST_URL_PREFIX+"/dept/list", List.class);
  }
}

RestTempalte没有bean,需要编写一个bean

@Configuration //springBoot的注解 ,相当于spring中 applicationContext.xml
public class ConfigBean {
   @Bean
   public RestTemplate getRestTemplate(){
       return new RestTemplate();
  }
}

编写启动类,启动测试

posted on 2021-12-04 00:10  lilele200706  阅读(60)  评论(0)    收藏  举报

导航