当前位置: 首页 > wzjs >正文

瓷砖网站建设做网站推广的优势

瓷砖网站建设,做网站推广的优势,如何建设学校的微网站首页,目前最火的大型网游本系列文章为【狂神说 Java 】视频的课堂笔记,若有需要可配套视频学习。 1. 简介 1.1 SpringCloud SpringCloud 基于 SpringBoot 提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关&#x…

本系列文章为【狂神说 Java 】视频的课堂笔记,若有需要可配套视频学习。

1. 简介

1.1 SpringCloud

SpringCloud 基于 SpringBoot 提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了 NetFlix 的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。

SpringCloud 为开发人员提供了配置管理,服务发现,断路器,路由,微代理,事件总线,全局锁,决策竞争,分布式会话等快速构建分布式系统的工具。

SpringCloud 将各个成熟的服务框架组合起来,通过 SpringBoot 风格进行再封装,屏蔽了复杂的配置和实现原理,为开发者提供一个易部署易维护的分布式系统开发工具包。

1.2 SpringBoot 与 SpringCloud 的关系

  • SpringBoot 专注于开发单个微服务。
  • SpringCloud 是关注全局的微服务协调整理治理框架。

1.3 Dubbo 和 SpringCloud 技术选型

  • 一个成熟、传统的互联网架构

    在这里插入图片描述

  • Dubbo 和 SpringCloud 对比

    DubboSpringCloud
    服务注册中心ZookeeperSpringCloud NetFilx Eureka
    服务调度方式RPCREST API
    服务监控Dubbo-MonitorSpringBoot Admin
    断路器不完善SpringCloud NetFilx Hystrix
    服务网关SpringCloud NetFilx Zuul
    分布式配置SpringCloud Config
    服务跟踪SpringCloud Sleuth
    消息总线SpringCloud Bus
    数据流SpringCloud Stream
    批量处理SpringCloud Task

    SpringCloud 抛弃了 Dubbo 的 RPC 通信,采用 HTTP 的 REST 方式。

    SpringCloud 能够与 Spring 项目完美融合。

1.4 下载地址

  • SpringCloud 官网:Spring Cloud

  • Spring Cloud NetFlix 中文文档:Spring Cloud Netflix 中文文档 参考手册 中文版

  • Spring Cloud 中文文档:Spring Cloud Dalston 中文文档 参考手册 中文版

  • Spring Cloud 中文网:Spring Cloud中文网-官方文档中文版

1.5 版本控制

版本说明

SpringBootSpringCloud关系
1.2.xAngel(天使)兼容 Spring Boot 1.2.x
1.3.xBrixton(布里克斯顿)兼容 Spring Boot 1.3.x,Spring Boot 1.4.x
1.4.xCamden(卡姆登)兼容 Spring Boot 1.4.x,Spring Boot 1.5.x
1.5.xDalston(多尔斯顿)兼容 Spring Boot 1.5.x,不兼容 Spring Boot 2.0.x
1.5.xEdgware(埃奇韦尔)兼容 Spring Boot 1.5.x,不兼容 Spring Boot 2.0.x
2.0.xFinchley(芬奇利)兼容 Spring Boot 2.0.x,不兼容 Spring Boot 1.5.x
2.1.xGreenwich(格林威治)

版本关系

spring-boot-starter-parentspring-cloud-dependencies
版本号发布日期版本号发布日期
1.5.2.RELEASE2017年3月Dalston.RC12017年未知月
1.5.9.RELEASENov.2017Edgware.RELEASENov.2017
1.5.16.RELEASESep.2018Edgware.SR5Oct.2018
1.5.20.RELEASEApr.2019Edgware.SR5Oct.2018
2.0.2.RELEASEMay.2018Finchley.BUILD-SNAPSHOT2018年未知月
2.0.6.RELEASEOct.2018Finchley.SR2Oct.2018
2.1.4.RELEASEApr.2019Greenwich.SR1Mar.2019

2. 环境搭建

(1) 创建一个基础的 maven 项目

  • 删除 src 目录,将此项目作为父项目 springcloud

  • 管理依赖

    <!--打包方式-->
    <packaging>pom</packaging><!--版本控制-->
    <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><junit.version>4.12</junit.version><lombok.version>1.16.10</lombok.version><log4j.version>1.2.17</log4j.version>
    </properties><!--依赖管理(不显示在 Libraries 中)-->
    <dependencyManagement><dependencies><!--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--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version></dependency><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></dependency><!--log4j--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency><!--logback--><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.2.3</version></dependency></dependencies>
    </dependencyManagement>
    

(2) 创建一个 maven 模块作为 api 服务

springcloud-api

● 导入依赖

<!--pom.xml-->
<artifactId>springcloud-api</artifactId>
<!--若是 springcloud (父项目)管理的依赖,则使用父项目的依赖,无需添加版本-->
<dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>
</dependencies>

● 创建数据库

在这里插入图片描述

● 编写实体类

@Data
@NoArgsConstructor
/*** 链式写法* Dept dept = new Dept();* dept.setDeptNo(1).setDname("why").setDb_source("cloud01");*/
@Accessors(chain = true)
public class Dept implements Serializable {// 主键private Long deptno;private String dname;// 数据所在数据库private String db_source;public Dept(String dname) {this.dname = dname;}
}

(3) 创建一个 maven 模块作为 provider 服务

springcloud-provider-dept-8001

● 导入依赖

<!--pom.xml-->
<artifactId>springcloud-provider-dept-8001</artifactId><dependencies><!--api moudle--><dependency><groupId>org.example</groupId><artifactId>springcloud-api</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId></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><!--web--><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>
</dependencies>

● 编写 mybatis 配置文件(回顾)

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

● 编写应用配置文件

# resources/application.yml
server:port: 8001
# mybatis
mybatis:type-aliases-package: com.why.springcloud.pojoconfig-location: classpath:mybatis/mybatis-config.xmlmapper-locations: classpath:mybatis/mapper/*.xml# spring配置
spring:application:name: springcloud-provider-deptdatasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: org.gjt.mm.mysql.Driverurl: jdbc:mysql://localhost:3306/cloud01?useUnicode=true&characterEncoding=utf-8username: rootpassword: 981030

● 编写 dao 和 service

@Mapper
@Repository
public interface DeptDao {public boolean addDept(Dept dept);public Dept queryById(Long id);public List<Dept> queryAll();
}
public interface DeptService {public boolean addDept(Dept dept);public Dept queryById(Long id);public List<Dept> queryAll();}
@Service
public class DeptServiceImpl implements DeptService {@AutowiredDeptDao deptDao;@Overridepublic boolean addDept(Dept dept) {return deptDao.addDept(dept);}@Overridepublic Dept queryById(Long id) {return deptDao.queryById(id);}@Overridepublic List<Dept> queryAll() {return queryAll();}
}

● 编写 controller 和 启动类

@RestController
public class DeptController {@Autowiredprivate DeptService deptService;// 此方法为 Post 请求方式,浏览器直接输入 url 方式无法访问,但是 consumer 服务可以调用并访问@PostMapping("/dept/add")public boolean addDept(@RequestBody Dept dept) {return deptService.addDept(dept);}@GetMapping("/dept/getDept/{id}")public Dept getDept(@PathVariable("id") Long id) {return deptService.queryById(id);}@GetMapping("/dept/list")public List<Dept> queryAll() {return deptService.queryAll();}}
@SpringBootApplication
public class DeptProvider_8001 {public static void main(String[] args) {SpringApplication.run(DeptProvider_8001.class, args);}
}

● 错误解决

java.lang.IllegalStateException: Failed to load property source from location 'classpath:/application.yml'Caused by: org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1Caused by: java.nio.charset.MalformedInputException: Input length = 1file was loaded in the wrong encoding utf-8

在这里插入图片描述

  • 删除 application.yml 文件,重新创建编写

(4) 创建一个 maven 模块作为 consumer 服务

springcloud-consumer-dept-80

● 导入依赖

<artifactId>springcloud-consumer-dept-80</artifactId><!--实体类 + web-->
<dependencies><dependency><groupId>org.example</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>

● 设置服务端口

# resources/application.yml
server:port: 80

● 将 RestTemplate 注册到 spring 中

// config
@Configuration  // spring applicationContext.xml
public class ConfigBean {// 注册 bean <bean></bean>@Beanpublic RestTemplate getRestTemplate() {return new RestTemplate();}
}

● 编写控制器和主类

@RestController
public class DeptConsumerController {// 提供访问远程 http 服务的方法@Autowiredprivate RestTemplate restTemplate;private static final String REST_URL_PREFIX = "http://localhost:8001";@RequestMapping("/consumer/dept/add")public boolean add(Dept dept) {return restTemplate.postForObject(REST_URL_PREFIX+"/dept/add", dept, Boolean.class);}@RequestMapping("/consumer/dept/getDept/{id}")public Dept getDept(@PathVariable("id") Long id) {return restTemplate.getForObject(REST_URL_PREFIX+"/dept/getDept/"+id, Dept.class);}@RequestMapping("/consumer/dept/list")public List<Dept> list() {return restTemplate.getForObject(REST_URL_PREFIX+"/dept/list", List.class);}}
@SpringBootApplication
public class DeptConsumer_80 {public static void main(String[] args) {SpringApplication.run(DeptConsumer_80.class, args);}
}

http://www.dtcms.com/wzjs/541968.html

相关文章:

  • 白云定制型网站建设网络黄页进入有限公司
  • 工程行业招聘网站科技有限公司和商贸有限公司区别
  • 最好的公文写作网站人工智能建筑设计软件
  • 外贸网站推广计划书wordpress上传视频黑屏
  • 网站优化设计公司软件开发定制价格表
  • 网站运营与管理的一个目的网站建设交易中心
  • wordpress实现网站的登陆功能东庄水利建设公司网站
  • 企业网站一般做多宽网络工程专业毕业生设计
  • 安徽建设厅网站怎么打不开wordpress导航去掉多余的样式
  • 网站建设和运行遇到的问题贵阳网站设计公司
  • 毕业网站建设开题报告专业制作网站用哪些软件
  • 国外网站代理福州建设银行官网招聘网站
  • 苏州seo网站推广怎么做导航网站
  • 做网站有名的公司从网页上直接下载视频
  • 网站后台培训网站模板制作工具
  • 做百度网站好吗网页设计制作音乐排行榜
  • php做企业网站需要多久滨州改版网站建设服务
  • 定州市住房和城乡建设局 网站ui设计哪里培训机构
  • 昆山网站建设第一品牌洛阳市网站建设管理
  • 信息手机网站模板下载软件做网站领券收佣金
  • 做什么网站能吸引流量wordpress loginview
  • 比较顺口的公司名字关键词首页优化
  • 网站开发成本有哪些万网首页
  • 网站建设的规划书企业管理咨询与诊断实践报告
  • 泉州专业网站建设公司买外链
  • 鹤岗住房和城乡建设局网站网站建设算什么费用
  • 免费舆情信息网站珠海市研发网站建设
  • 值得相信的西安网站开发自学商城网站建设
  • 水滴保险官方网站php做的网站手机能看到
  • 帝国cms做笑话网站多个端口网站如何做域名重定向