springcloud快速入门(springcloud详细教程)

  本篇文章为你整理了springcloud快速入门(springcloud详细教程)的详细内容,包含有springcloud的入门详解 springcloud详细教程 spring cloud 入门 springcloud怎么学 springcloud快速入门,希望能帮助你了解 springcloud快速入门。

  使用idea工具创建一个maven空项目,删除不需要的src目录等东西,用来做父项目,只剩下pom.xml文件

  在父项目中依次创建三个模块module,分别为eruekaservice、provide、consumer三个子项目(springboot项目)。

  在erueka中添加配置信息、在启动类上添加@EnableEurekaServer注解。

  在provide中添加配置信息、在启动类上添加@EnableEurekaClient注解(consumer的步骤相同)。

  在provide子项目中创建entity实体类、DAO层、service层、controller层,此处使用mybatis连接数据库、Druid连接池来连接MySQL(DataSource配置略)。

  在consumer子项目中创建controller层,使用restTemplate来访问provide中的api(消费者controller的接口)。

  项目运行顺序,erueka provide comsumer。

  二、实现步骤

  1、创建maven空项目

  

  

  删除不需要的目录和文件

  

  

  2、创建erueka-service

  

  

   选择需要导入的模块(依赖)

  

 ?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"

   modelVersion 4.0.0 /modelVersion

   groupId com.yiblue /groupId

   artifactId eureka-server /artifactId

   version 0.0.1-SNAPSHOT /version

   name eureka-server /name

   description eureka-server /description

   properties

   java.version 1.8 /java.version

   project.build.sourceEncoding UTF-8 /project.build.sourceEncoding

   project.reporting.outputEncoding UTF-8 /project.reporting.outputEncoding

   spring-boot.version 2.3.7.RELEASE /spring-boot.version

   spring-cloud.version Hoxton.SR9 /spring-cloud.version

   /properties

   dependencies

   dependency

   groupId org.springframework.cloud /groupId

   artifactId spring-cloud-starter-netflix-eureka-server /artifactId

   /dependency

   dependency

   groupId org.springframework.boot /groupId

   artifactId spring-boot-starter-test /artifactId

   scope test /scope

   exclusions

   exclusion

   groupId org.junit.vintage /groupId

   artifactId junit-vintage-engine /artifactId

   /exclusion

   /exclusions

   /dependency

   /dependencies

   dependencyManagement

   dependencies

   dependency

   groupId org.springframework.cloud /groupId

   artifactId spring-cloud-dependencies /artifactId

   version ${spring-cloud.version} /version

   type pom /type

   scope import /scope

   /dependency

   dependency

   groupId org.springframework.boot /groupId

   artifactId spring-boot-dependencies /artifactId

   version ${spring-boot.version} /version

   type pom /type

   scope import /scope

   /dependency

   /dependencies

   /dependencyManagement

   build

   plugins
//编译插件

   plugin

   groupId org.apache.maven.plugins /groupId

   artifactId maven-compiler-plugin /artifactId

   version 3.8.1 /version

   configuration

   source 1.8 /source

   target 1.8 /target

   encoding UTF-8 /encoding

   /configuration

   /plugin
//maven插件

   plugin

   groupId org.springframework.boot /groupId

   artifactId spring-boot-maven-plugin /artifactId

   version 2.3.7.RELEASE /version

   configuration

   mainClass com.yiblue.eurekaserver.EurekaServerApplication /mainClass

   /configuration

   executions

   execution

   id repackage /id

   goals

   goal repackage /goal

   /goals

   /execution

   /executions

   /plugin

   /plugins

   /build

   /project

  

 

   修改配置文件application.yml

  

server:

 

   port: 8080

  spring:

   application:

   name: eureka-server

  eureka:

   instance:

   hostname: localhost

   client:

   register-with-eureka: false

   fetch-registry: false

   service-url:

   defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

  

 

   在启动类EurekaServerApplication上添加注解:@EnableEurekaServer

  

@SpringBootApplication

 

  @EnableEurekaServer

  public class EurekaServerApplication {

   public static void main(String[] args) {

   SpringApplication.run(EurekaServerApplication.class, args);

  

 

  3、创建provider项目(与erueka一样,这省略)

  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 https://maven.apache.org/xsd/maven-4.0.0.xsd"

   modelVersion 4.0.0 /modelVersion

   groupId com.yiblue /groupId

   artifactId provider-8001 /artifactId

   version 0.0.1-SNAPSHOT /version

   name provider-8001 /name

   description provider-8001 /description

   properties

   java.version 1.8 /java.version

   project.build.sourceEncoding UTF-8 /project.build.sourceEncoding

   project.reporting.outputEncoding UTF-8 /project.reporting.outputEncoding

   spring-boot.version 2.3.7.RELEASE /spring-boot.version

   spring-cloud.version Hoxton.SR9 /spring-cloud.version

   /properties

   dependencies

   dependency

   groupId org.springframework.cloud /groupId

   artifactId spring-cloud-starter-netflix-eureka-client /artifactId

   /dependency

   dependency

   groupId org.springframework.boot /groupId

   artifactId spring-boot-starter-web /artifactId

   /dependency

   dependency

   groupId org.mybatis.spring.boot /groupId

   artifactId mybatis-spring-boot-starter /artifactId

   version 2.1.4 /version

   /dependency

   dependency

   groupId org.springframework.boot /groupId

   artifactId spring-boot-devtools /artifactId

   scope runtime /scope

   optional true /optional

   /dependency

   dependency

   groupId mysql /groupId

   artifactId mysql-connector-java /artifactId

   scope runtime /scope

   /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

   exclusions

   exclusion

   groupId org.junit.vintage /groupId

   artifactId junit-vintage-engine /artifactId

   /exclusion

   /exclusions

   /dependency

   dependency

   groupId com.alibaba /groupId

   artifactId druid /artifactId

   version 1.1.17 /version

   /dependency

   /dependencies

   dependencyManagement

   dependencies

   dependency

   groupId org.springframework.cloud /groupId

   artifactId spring-cloud-dependencies /artifactId

   version ${spring-cloud.version} /version

   type pom /type

   scope import /scope

   /dependency

   dependency

   groupId org.springframework.boot /groupId

   artifactId spring-boot-dependencies /artifactId

   version ${spring-boot.version} /version

   type pom /type

   scope import /scope

   /dependency

   /dependencies

   /dependencyManagement

   build

   plugins

   plugin

   groupId org.apache.maven.plugins /groupId

   artifactId maven-compiler-plugin /artifactId

   version 3.8.1 /version

   configuration

   source 1.8 /source

   target 1.8 /target

   encoding UTF-8 /encoding

   /configuration

   /plugin

   plugin

   groupId org.springframework.boot /groupId

   artifactId spring-boot-maven-plugin /artifactId

   version 2.3.7.RELEASE /version

   configuration

   mainClass com.yiblue.provider8001.Provider8001Application /mainClass

   /configuration

   executions

   execution

   id repackage /id

   goals

   goal repackage /goal

   /goals

   /execution

   /executions

   /plugin

   /plugins

   /build

   /project

  

 

   application.yml修改配置(provider),配置mybatis连接MySQL信息

  

spring:
 datasource:
 type: com.alibaba.druid.pool.DruidDataSource
 driver-class-name: com.mysql.cj.jdbc.Driver
 url: jdbc:mysql://localhost:3306/shiro?serverTimezone=UTC useUnicode=true characterEncoding=utf8
 username: caidongji
 password: abc123
 application:
 name: provider-8001
eureka:
 client:
 service-url:
 defaultZone: http://localhost:8080/eureka/
server:
 port: 8001
mybatis:
 type-aliases-package: com.yiblue.provider8001.entity
 mapper-locations: classpath:mappers/*xml

 

   在启动类Provider8001Application上添加注解@EnableEurekaClient

  

@SpringBootApplication

 

  @EnableEurekaClient

  public class Provider8001Application {

   public static void main(String[] args) {

   SpringApplication.run(Provider8001Application.class, args);

  }

 

  编写实体类

  

@Data

 

  @AllArgsConstructor

  @NoArgsConstructor

  public class ShiroUser {

   private Integer uid;

   private String uname;

   private String password;

   private String datasource;

  

 

  编写接口(这里省略dao,合并到service中了)

  

@Mapper

 

  @Repository

  public interface ShiroUserService {

   @Select("select * from usershiro")

   public List ShiroUser selectAll();

   @Select("select * from usershiro where uname=#{uname}")

   public ShiroUser selectOne(String uname);

   @Select("insert into usershiro (uname,password,datasource) values (#{uname},#{password},#{datasource})")

   void insertOne(ShiroUser shiroUser);

   @Select("delete from usershiro where uname=#{uname}")

   void deleteOne(String uname);

  }

 

  编写controller

  

@RestController

 

  public class ShiroUserController {

   @Autowired

   ShiroUserService shiroUserService;

   @GetMapping("/getAll")

   public List ShiroUser getAll(){

   return shiroUserService.selectAll();

   }
 

   @GetMapping("/getOne")

   public ShiroUser getOne(String uname){ return shiroUserService.selectOne(uname);}

  

 

  4、创建comsumer项目(与erueka一样,这省略)

  配置依赖,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 https://maven.apache.org/xsd/maven-4.0.0.xsd"

   modelVersion 4.0.0 /modelVersion

   groupId com.yiblue /groupId

   artifactId eureka-server /artifactId

   version 0.0.1-SNAPSHOT /version

   name eureka-server /name

   description eureka-server /description

   properties

   java.version 1.8 /java.version

   project.build.sourceEncoding UTF-8 /project.build.sourceEncoding

   project.reporting.outputEncoding UTF-8 /project.reporting.outputEncoding

   spring-boot.version 2.3.7.RELEASE /spring-boot.version

   spring-cloud.version Hoxton.SR9 /spring-cloud.version

   /properties

   dependencies

   dependency

   groupId org.springframework.cloud /groupId

   artifactId spring-cloud-starter-netflix-eureka-server /artifactId

   /dependency

   dependency

   groupId org.springframework.boot /groupId

   artifactId spring-boot-starter-test /artifactId

   scope test /scope

   exclusions

   exclusion

   groupId org.junit.vintage /groupId

   artifactId junit-vintage-engine /artifactId

   /exclusion

   /exclusions

   /dependency

   /dependencies

   dependencyManagement

   dependencies

   dependency

   groupId org.springframework.cloud /groupId

   artifactId spring-cloud-dependencies /artifactId

   version ${spring-cloud.version} /version

   type pom /type

   scope import /scope

   /dependency

   dependency

   groupId org.springframework.boot /groupId

   artifactId spring-boot-dependencies /artifactId

   version ${spring-boot.version} /version

   type pom /type

   scope import /scope

   /dependency

   /dependencies

   /dependencyManagement

   build

   plugins

   plugin

   groupId org.apache.maven.plugins /groupId

   artifactId maven-compiler-plugin /artifactId

   version 3.8.1 /version

   configuration

   source 1.8 /source

   target 1.8 /target

   encoding UTF-8 /encoding

   /configuration

   /plugin

   plugin

   groupId org.springframework.boot /groupId

   artifactId spring-boot-maven-plugin /artifactId

   version 2.3.7.RELEASE /version

   configuration

   mainClass com.yiblue.eurekaserver.EurekaServerApplication /mainClass

   /configuration

   executions

   execution

   id repackage /id

   goals

   goal repackage /goal

   /goals

   /execution

   /executions

   /plugin

   /plugins

   /build

   /project

  

 

   修改application.yml文件

  

server:

 

   port: 8080

  spring:

   application:

   name: eureka-server

  eureka:

   instance:

   hostname: localhost

   client:

   register-with-eureka: false

   fetch-registry: false

   service-url:

   defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

  

 

   在启动类Consumer8002Application上添加注解

  

@SpringBootApplication

 

  @EnableEurekaClient

  public class Consumer8002Application {

   public static void main(String[] args) {

   SpringApplication.run(Consumer8002Application.class, args);

  

 

   spring不会自动装配restTemplate,需要配置类注入容器中

  

@Configuration

 

  public class restTemplateconfig {

   @Bean

  // @LoadBalanced

   RestTemplate restTemplate(){ return new RestTemplate();}

  

 

   创建controller类,调用提供者的api

  

@RestController

 

  public class ShiroUserController {

   @Resource

   RestTemplate restTemplate;

   @GetMapping("/findAll")

   public List ShiroUser findAll(){

   return restTemplate.getForObject("http://localhost:8001/getAll", List.class);

  

 

  5、项目运行顺序:erueka provider consumer

  在浏览器中访问:localhost:8002/findAll

  6、end

  

  以上就是springcloud快速入门(springcloud详细教程)的详细内容,想要了解更多 springcloud快速入门的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: