Spring Boot

七月份优质文章合集与总结

江枫思渺然 提交于 2020-11-23 19:15:20
七月份优质文章合集与总结 七月份更新的不算少,相对来说技术需要系统化学习,所以本公众号也是围绕20大专题内容进行建设!通过筛选相关优质原创文章,以及每周本人1-2篇的原创,进行系统讲解知识点,只留精品!减少大家不必要的二次学习!给大家节省更多时间泡妹砸! 七月份主要的内容如下: 【springboot实战快速入门】: 为什么讲springboot?我相信,springboot与springcloud将会越来越火,dubbo可能是当下,但是cloud必定是未来!所以通过一系列的springboot实战教程,让大家有个“战略储备”,现在公司没用上?没关系!总会有用上的时候!届时只需查看本专题,相信90%问题的解决方案你都能在这里找到!【本专题预计60讲!所以前面的内容有些人觉得简单,没关系,后面的内容会越来越深入!你懂得!】 01: springboot快速入门之三分钟构建可运行项目 02:SpringBoot整合SpringDataJPA实现数据库的访问(一) 03:SpringBoot整合SpringDataJPA实现数据库的访问(二) 04:SpringBoot整合jsp作为视图输出 05:springboot使用Druid作为项目数据源(添加监控) 06:SpringBoot整合FreeMarker作为视图输出 07:SpringBoot集整合Thymeleaf作为视图输出

springboot分析五 AutoConfiguration 如何把已经写好的 124个自动配置加载进来

冷暖自知 提交于 2020-11-23 17:37:47
一、在springboot启动类上 有个注解 @SpringBootApplication 二、在SpringBootApplication注解里有个 @EnableAutoConfiguration 三、在EnableAutoConfiguration注解里导入了一个类 AutoConfigurationImportSelector.class 四、在 AutoConfigurationImportSelector 有个 process方法 这个方法会把符合条件的AutoConfiguration 配置类 过滤出来 五、getAutoConfigurationMetadata() 这个方法会从META-INF/spring-autoconfigure-metadata.properties 这个文件 读取所有的自动配置类所需要的元数据信息 六、AutoConfigurationEntry autoConfigurationEntry = ((AutoConfigurationImportSelector) deferredImportSelector) .getAutoConfigurationEntry(getAutoConfigurationMetadata(), annotationMetadata); 这个方法会从项目的所有 META-INF/spring

看完让你彻底理解 WebSocket 原理,附完整的实战代码(包含前端和后端)

匆匆过客 提交于 2020-11-23 09:47:51
前言 最近有同学问我有没有做过在线咨询功能。同时,公司也刚好让我接手一个 IM 项目。所以今天抽时间记录一下最近学习的内容。 本文主要剖析了 WebSocket 的原理,以及附上一个完整的聊天室实战 Demo (包含前端和后端,代码下载链接在文末)。 WebSocket 与 HTTP WebSocket 协议在2008年诞生,2011年成为国际标准。现在所有浏览器都已经支持了。WebSocket 的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话。 HTTP 有 1.1 和 1.0 之说,也就是所谓的 keep-alive ,把多个 HTTP 请求合并为一个,但是 Websocket 其实是一个新协议,跟 HTTP 协议基本没有关系,只是为了兼容现有浏览器,所以在握手阶段使用了 HTTP 。 下面一张图说明了 HTTP 与 WebSocket 的主要区别: WebSocket 的其他特点: 建立在 TCP 协议之上,服务器端的实现比较容易。 与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。 数据格式比较轻量,性能开销小,通信高效。 可以发送文本,也可以发送二进制数据。 没有同源限制,客户端可以与任意服务器通信。 协议标识符是ws

springBoot01 之HelloWorld

假装没事ソ 提交于 2020-11-23 08:51:09
1.创建一个maven项目。 2. 在pom.xml中引入spring-boot-start-parent,spring官方的解释叫什么stater poms,它可以提供dependency management,也就是说依赖管理,引入以后在申明其它dependency的时候就不需要version了,后面可以看到。 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.1.RELEASE</version> </parent> 3.在dependencies中加入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> 4.加入插件,如果我们要直接Main启动spring,那么以下plugin必须要添加,否则是无法启动的。如果使用maven 的spring-boot:run的话是不需要此配置的。(我在测试的时候,如果不配置下面的plugin也是直接在Main中运行的) <build> <plugins>

Spring Cloud第三篇:服务消费者Feign

爱⌒轻易说出口 提交于 2020-11-23 08:36:05
上一篇文章,讲述了如何通过RestTemplate+Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务。 一、Feign简介 Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。 简而言之: Feign 采用的是基于接口的注解 Feign 整合了ribbon 二、准备工作 继续用上一节的工程, 启动eureka-server,端口为8761; 启动service-hi 两次,端口分别为8762 、8773. 三、创建一个feign的服务 新建一个spring-boot工程,取名为serice-feign,在它的pom文件引入Feign的起步依赖spring-cloud-starter-feign、Eureka的起步依赖spring-cloud-starter-eureka、Web的起步依赖spring-boot-starter-web,代码如下: <dependency> <groupId> org.springframework.cloud </groupId> <artifactId> spring-cloud

Spring Cloud 源码学习之 Hystrix 熔断器

南笙酒味 提交于 2020-11-23 08:24:29
文中源码基于 Spring Cloud Finchley.SR1 、Spring Boot 2.0.6.RELEASE . 本文学习了Hystrix熔断器的原理、配置和源码,包含滑动窗口、状态变化等。 简介 circuit-breaker: circuit表示电路,大家译为熔断器非常精准。 回想起小时候,家里保险丝突然被烧断,需 手工更换一根新的保险丝 ;后来,保险丝被取代,电流过大时会跳闸, 闸拉上去后立马恢复供电 ;等到上大学时,只要打开功率高一点的电吹风,砰的一声就断电,但过10分钟就 自动来电 。在电流过大时,通过熔断机制以保护电路和家电。 Hystrix 属于上面的第三种, 一种自动恢复的智能熔断器 ,区别在于它保护的是系统,且判断 “电流过大” 的方式是: 不断收集请求指标信息(sucess、failure、timeout、rejection),当达到设定熔断条件时(默认是请求失败率达到50%)进行熔断。 在 Spring Cloud 源码学习之 Hystrix Metrics 收集 一文中,学习了 Metrics 收集,这是上文的图。 Hystrix Command 执行过程中,各种情况都以事件形式发出,再封装成特定的数据结构,最后汇入到事件流中(HystrixEventStream)。事件流提供了 observe() 方法,摇身一变,事件流把自己变成了一个数据源

Spring Cloud熔断器Hystrix的使用及原理解析

你离开我真会死。 提交于 2020-11-23 07:54:20
Spring Cloud熔断器Hystrix的使用及原理解析 https://blog.csdn.net/turbo_zone/article/details/83831992 什么是Hystrix Hystrix是Spring Cloud提供的一种带有熔断机制的框架,由于在微服务系统中同一个操作会由多个不同的微服务来共同完成,所以微服务与微服务之间会由很多相互的调用,由于在分布式环境中经常会出现某个微服务节点故障的情况,所以会由调用失败发生,而熔断器的作用就是当出现远程调用失败的时候提供一种机制来保证程序的正常运行而不会卡死在某一次调用,类似Java程序中的try-catch结构,而只有当异常发生的时候才会进入catch的代码块。 使用Hystrix 建立提供服务的服务器 首先构建一个提供服务的服务器项目spring-cloud-server,在其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 http

MySQL 5.7 vs 8.0,哪个性能更牛?

旧街凉风 提交于 2020-11-23 06:13:40
点击上方蓝色“ 程序猿DD ”,选择“设为星标” 回复“ 资源 ”获取独家整理的学习资料! 来源: r6d.cn/8cw 背景 测试mysql5.7和mysql8.0分别在读写,选定,只写模式下不同并发时的性能(tps,qps) 最早 测试使用版本为mysql5.7.22和mysql8.0.15 sysbench测试前先重启mysql服务,并清除os的缓存(避免多次测试时命中缓存) 每次进行测试都是新生成测试数据后再进行mysql5.7和mysql8.0的测试 每次测试时保证mysql5.7和mysql8.0的配置参数一致 环境 机器 cat / etc / redhat-release | xargs echo'版本'&& dmidecode -s系统产品名称| xargs echo'是否虚拟化'&& cat / proc / cpuinfo | grep“ processor” | wc -l | xargs echo'cpu核数'版本CentOS Linux版本7.5.1804(核心)是否虚拟化KVM cpu核数4 myql5.7.22 5.7.22 -log innodb_buffer_pool_size 128 M innodb_log_buffer_size 64 M innodb_log_file_size 48 M binlog_format ROW log_bin

spring boot 自定义注解入门

天涯浪子 提交于 2020-11-23 05:37:59
深入理解Java:注解(Annotation)自定义注解入门   要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。 元注解:   元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:     1.@Target,     2.@Retention,     3.@Documented,     4.@Inherited   这些类型和它们所支持的类在java.lang.annotation包中可以找到。下面我们看一下每个元注解的作用和相应分参数的使用说明。   @Target:    @Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了target可更加明晰其修饰的目标。   作用:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)   取值(ElementType)有:     1.CONSTRUCTOR

Spring Boot入门教程2-1、使用Spring Boot+MyBatis访问数据库(CURD)注解版

北城以北 提交于 2020-11-23 05:27:24
一、前言 什么是MyBatis? MyBatis是目前Java平台最为流行的ORM框架 https://baike.baidu.com/item/MyBatis/2824918 本篇开发环境 1、操作系统: Windows 10 X64 2、Java SDK: jdk-8u141 3、Maven:3.5 4、IDE:IntelliJ IDEA 2017 5、Spring Boot:1.5.6 本项目构建基于: https://ken.io/note/springboot-course-basic-helloworld 二、Spring Boot整合MyBatis 引入核心依赖 package 说明 mybatis-spring-boot-starter MyBatis核心for Spring Boot mysql-connector-java 用于连接MySQL pom.xml文件: < parent> < groupId>org.springframework.boot </ groupId> < artifactId>spring-boot-starter-parent </ artifactId> < version>1.5.6.RELEASE </ version> </ parent> < dependencies> < dependency> < groupId>org