- 博客(37)
- 资源 (2)
- 收藏
- 关注
原创 SpringCloud入门——Hystrix
SpringCloud入门——Hystrix一、介绍spring cloud 用的是 hystrix,是一个容错组件。Hystrix实现了 超时机制和断路器模式。Hystrix是Netflix开源的一个类库,用于隔离远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。主要有以下几点功能:为系统提供保护机制。在依赖的服务出现高延迟或失败时,为系统提供保护和控制。防止雪崩。包裹请求:使用HystrixCommand(或HystrixObservableCommand)包裹对依
2022-03-25 18:02:48
601
原创 SpringCloud入门——Feign
SpringCloud入门——Feign一、介绍 之前,我们使用Ribbon作为客户端负载均衡完成了Provider和Consumer的通信,其实我们可以发现,当我们通过RestTemplate调用其它服务时,所需要拼接url,拼接入参非常麻烦。而Feign的服务调用方式对于程序员来说更为友好,它基于Ribbon进行了封装,把一些负责的url和参数处理细节屏蔽起来,我们只需要简单编写Fiegn的客户端接口就可以像调用本地service去调用远程微服务。 Feign主要是构建微服务消费端。只要使
2022-03-18 18:11:39
661
原创 SpringCloud入门——RestTemplate
SpringCloud入门——RestTemplate一、介绍 Spring提供了一种简单便捷的模板类 RestTemplate 来调用 RESTful 接口。它提供了多种便捷访问HTTP服务的方法,能够大大提高客户端的编写效率。二、使用1、依赖注入需要先将RestTemplate以Bean的形式注入到Spring容器中。使用的使用@Resource调用。 @Bean @LoadBalanced RestTemplate getRestTemplate(){
2022-03-14 18:12:29
1186
原创 SpringCloud入门—RIbbon负载均衡
SpringCloud入门—RIbbon负载均衡一、介绍背景当系统面临大量的用户访问,负载过高的时候,通常会增加服务器数量来进行横向扩展(集群),多个服务器的负载需要均衡,以免出现服务器负载不均衡,部分服务器负载较大,部分服务器负载较小的情况。通过负载均衡,使得集群中服务器的负载保持在稳定高效的状态,从而提高整个系统的处理能力。二、两种负载均衡 软件负载均衡分为:服务端(集中式),客户端。 服务端负载均衡:在客户端和服务端中间使用代理,nginx。 客户端负载均衡:根据自己的情况做负
2022-03-02 18:04:58
136
原创 SpringCloud入门——Actuator健康监控
SpringCloud入门——Actuator健康监控一、开启监控开启Actuator只需要在pom文件中,添加actuator依赖。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency>重启服务,打开对应端口/actuator
2022-02-28 17:52:21
5155
原创 SpringCloud入门——Eureka原理
SpringCloud入门——Eureka原理一、注册服务我们新建一个Web服务注册到Eureka上:Eureka服务端pom<?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
2022-02-25 20:15:47
133
原创 SpringCloud入门—Eureka入门
SpringCloud入门—Eureka入门一、介绍背景在传统应用中,组件之间的调用,通过有规范的约束的接口来实现,从而实现不同模块间良好的协作。但是被拆分成微服务后,每个微服务实例的网络地址都可能动态变化,数量也会变化,使得原来硬编码的地址失去了作用。需要一个中心化的组件来进行服务的登记和管理。概念实现服务治理,即管理所有的服务信息和状态。注册中心用途相当于打开地图找周围超市买东西,先看看周围都有哪些超市(获取注册列表),再去超市买东西(调用服务)。服务器端Server是一个
2022-02-24 10:21:55
157
原创 Java8新特性(一)前言
Java8新特性(一)前言前言 2022年1月20日,Spring官方发布了Spring Boot 3.0.0的第一个里程碑版本 M1 。Spring Boot正式弃用Java8,最低要Java17!让我这个早已躺平的程序员也没法踏踏实实的躺平了,想想Java8的特性都用不好的自己,瑟瑟发抖! 赶紧的,找到了在我收藏夹吃灰已久的《Java 8实战》这本书好好研读一下。顺便写下笔记,希望广大猿友大佬能为我提出宝贵意见。目录一、前言二、引入Lambda(匿名函数)的原因三、Lambda
2022-02-08 16:15:04
191
原创 (二)Redis学习---使用Redis
(二)Redis学习—使用Redis一、进入Redis进入cd到 redis/rec目录下,打开redisredis-cli退出 exit查看帮助 redis-cli -h常用的操作-h 连接指定主机名-p 连接指定端口-n 连接不同数据库二、redis命令行指令1、学习指令之前,先介绍一下如何学习。进入redis,使用 help 指令。127.0.0.1:6379> helpredis-cli 6.2.5To get help about Redis com
2021-08-05 15:50:41
77
原创 (一)Redis学习---安装Redis
(一)Redis学习—安装Redis一、介绍官网介绍(英文)Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bit
2021-08-05 14:02:32
128
原创 小姐姐挖坑我来跳(一)mybatis传参
小姐姐挖坑我来跳(一)mybatis传参前言隔壁漂亮的小姐姐是个刚毕业的程序媛,作为一个乐于助人的好同事,小姐姐有了问题怎么能放任不管,一定要好好的给小姐姐安排的明明白白的。不要最觉得我是的LSP,我只是想借着给小姐姐解决问题,边聊天边划水。问题在愉快的划万水解决完问题,部署服务的大哥突然找过来说是登陆接口报错了,一看Git提交记录竟然是小姐姐提交的。就是刚刚我俩愉快的下午时光那会提上去的。完了小姐姐心中的大佬形象要轰然崩塌了,会不会以后不找我聊天了呢,先解决问题,不想那些!在我一通操作猛如虎
2021-07-05 11:12:11
80
原创 设计模式02-策略模式Strategy
设计模式02-策略模式Strategy一上来直接聊策略模式我相信大部分没有接触过的人一定是一头雾水的,我们先从一个数组排序的例子慢慢深入。一、数组排序首先我们先将 int 数组排序。Main.javapublic class Main { public static void main(String[] args) { //1、指定类型比较 int int[] a = {3,6,3,1,8,10}; Sorter.sort(a);
2021-07-01 15:26:45
89
原创 设计模式01-单例模式Singleton
设计模式01-单例模式Singleton一、饿汉式在平时工作中,如果用到单例使用这种就足够了,类加载到内存后,就实例化一个单例,JVM保证线程安全。优点:简单实用,推荐使用!缺点:不管用到与否,类装载时就完成实例化,吹毛求疵。你说你不用你写他做什么呢,起程序的时候慢点就慢点呗。代码:/** * 饿汉式01 */public class Mgr01 { private static final Mgr01 INSTANCE = new Mgr01(); private M
2021-06-24 18:54:46
94
原创 Spring学习(三)Spring配置bean对象
Spring学习(三)Spring配置bean对象一、spring对象的获取及属性赋值方式1、通过bean的id获取IOC容器中的对象public class MyTest { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("ioc.xml"); //根据bean标签的id来获取对象
2021-06-24 16:33:35
320
原创 Spring学习(二)IOC初体验
Spring学习(二)IOC初体验1、理解耦合第一步:首先创建一个简单的java项目,模拟一个获取User的过程Dao接口:UserDaopublic interface UserDao { void getUser();}Dao实现类:UserDaoImplpublic class UserDaoImpl implements UserDao { @Override public void getUser() { System.out.println
2021-06-24 14:29:30
67
原创 Spring学习(一)Spring框架介绍及初体验
Spring框架介绍及初体验一、什么是框架官方解释:框架就是一些类和接口的集合,通过这些类和接口协调来完成一系列的程序实现。JAVA框架可以分为三层:表示层,业务层和物理层。框架又叫做开发中的半成品,它不能提供整个WEB应用程序的所有东西,但是有了框架,我们就可以集中精力进行业务逻辑的开发而不用去关心它的技术实现以及一些辅助的业务逻辑。大家熟知的Structs和Spring就是表示层和业务层框架的强力代表。人话版本:框架就是某些个人或者组织定义了一系列的类或者接口,提前定义好了一些实现,用
2021-06-23 17:48:44
173
原创 排序算法(一)选择冒泡插入
排序算法1、选择排序 SelectionSort1.1 工作原理找到未排序数组中最小的元素,放到初始位置,反复到数组末尾。1.2 详细描述第1步:找到数组下标0 ~ N-1 中最小数,与数组下标0的数交换位置。第2步:找到数组1 ~ N-1 中最小数,与数组下标1的数交换位置。第i步:找到数组 i-1 ~ N-1 中最小数,与数组下标i-1的数交换位置。第N-1步:找到数组 N-2 ~ N-1 中最小数,与数组下标N-1的数交换位置。1.3 动图1.4 代码public stat
2021-06-15 11:18:21
69
原创 Linux介绍及命令
Linux介绍及命令一、介绍Linux命令提示符管理员用户$ 普通命令行模式退出exitlogoutctrl+d快捷键tab 命令或路径操作自动补全光标 ↑ 在命令行可以快速找到之前的执行记录光标 ↓ 同理,向下找执行记录ctrl+a 光标移动到命令行行首ctrl+e 光标移动到命令行行尾ctrl+f 光标向右移动一个字符ctrl+b 光标向右移动一个字符ctrl+insert 复制shift+ins
2021-06-11 16:05:34
91
1
原创 JWT初体验
JWTJSON Web Tokenhttps://jwt.io/应用场景JWT是一种基于JSON的令牌安全验证(在某些特定的场合可以替代Session或者Cookie),一次生成随处校验JWT组成头部信息(header)作用:指定该JWT使用的签名 { “alg”: “HS256”// 签名算法 默认为HS256 }将上面的json,用Base64URL 算法转成字符串,即为header。json消息体playload也就是负载的信息{"exp" (expira
2021-06-09 15:55:20
111
原创 SpringSecurity学习(四)访问权限,角色匹配,验证码
访问权限访问权限可以配置URL匹配用户角色或权限 http.authorizeRequests() .antMatchers("/admin/**").hasRole("admin") .antMatchers("/user/**").hasRole("user")对应HiController@RestControllerpublic class HiController { @GetMapping("/hi") public String hi() { r
2021-06-09 10:15:01
443
原创 SpringSecurity学习(三)JDBC用户存储,注销登录
JDBC用户存储依赖<!--数据库连接--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency> <groupId>mysql</groupId>
2021-06-09 10:14:12
268
原创 SpringSecurity学习(二)忽略静态请求,自定义登陆页面,密码加密
忽略静态请求1、@Overrideprotected void configure(HttpSecurity http) throws Exception { http //指令请求 .authorizeRequests() //满足以下路径的无条件允许访问 .antMatchers("/css/**", "/js/**", "/fonts/**").permitAll()
2021-06-09 10:13:24
1114
1
原创 SpringSecurity学习(一)helloworld
HelloWorld依赖<!--不知道为什么必须加,不加程序直接报Process finished with exit code 0后程序关闭关闭--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId>
2021-06-09 10:12:25
117
原创 2.1.3. 关于 JVM JDK 和 JRE 最详细通俗的解答
Java基础首先感谢 **JavaGuide** 本次笔记是记录本小白在做v4.0-JavaGuide面试突击版的中的学习感悟及心得。## 2.1.3. 关于 JVM JDK 和 JRE 最详细通俗的解答2.1.3.1. JVMJava 虚拟机(JVM)是运⾏ Java 字节码的虚拟机。JVM 有针对不同系统的特定实现 (Windows,Linux,macOS),⽬的是使⽤相同的字节码,它们都会给出相同的结果。什么是字节码?采⽤字节码的好处是什么?在 Java 中,JVM 可以理解的代码就叫做
2021-03-19 22:20:13
168
原创 2.1.2. Java 语⾔有哪些特点
Java基础首先感谢 **JavaGuide** 本次笔记是记录本小白在做v4.0-JavaGuide面试突击版的中的学习感悟及心得。2.1.2. Java 语⾔有哪些特点简单易学Java语言的简单性主要体现在以下三个方面:Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理。Java提供了丰富的类库。⾯向对象(封装,继承,多态) 面向对象是指以对象为基本粒度,其下包含属性和方法。对象的说明用属性表 达,而通过使用方法来操作这个对象。面向对象技术使得应用程序的开发
2021-03-19 22:01:44
160
原创 2.1.1 面向对象和面向过程的区别
2.1.Java基础2.1.1 面向对象和面向过程的区别首先感谢 **JavaGuide** 本次笔记是记录本小白在做v4.0-JavaGuide面试突击版的中的学习感悟及心得。在一个感谢知乎 **淡定的蜗牛** 大佬写的对此的分析。面向过程:面向过程性能比面向对象高。因为类调用是需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候。比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展。面向对象:面向对象易维护
2021-03-19 21:10:26
183
原创 剖析面试最常见问题之 Java 基础知识
剖析面试最常见问题之 Java 基础知识谈谈你对 JVM JDK 和 JRE 的理解(JDK 和 JRE 的区别是什么?)。什么是字节码?为什么要采用字节码?JVMJVM就是运行Java字节码的虚拟机。JVM根据不同的系统(Windows,Linux,MacOS),运行相同的字节码,得到相同的结果。什么是字节码?采用字节码的好处是什么?在Java中,JVM能够理解的代码叫做字节码文件,就是后缀名为.class的文件。字节码不面向任何特定的操作系统,只面向与虚拟机。Java语言通过字节码的方式,在一
2021-03-09 17:40:52
76
原创 Java基础面试题
Java基础面试题Java 语言有哪些特点/什么是Java?简单易学;面向对象(封装,继承,多态);平台无关性( Java 虚拟机实现平台无关性);GC实现垃圾回收;异常处理机制;支持多线程;支持网络编程并且很方便;编译与解释并存;面向对象和面向过程的区别面向过程 :面向过程性能比面向对象高。 因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发。但是,面向过程没有面向对象易维护、
2021-03-07 21:48:03
677
2
原创 第一次面试面试题
第一次面试面试题项目中负责开发的功能。答:设施设备综合管理平台的报修模块,巡检模块,库存模块,台账模块。这块我觉得应该说的跟贴近于技术,而不是业务。如何使用的activiti答:简单使用。我觉得应该去看一下activiti的简单面试题,不然感觉会让面试官觉得只是浅浅的会用,不去了解底层。mybatis #{} 和 ${}的区别答:#{}是预编译处理,${}是字符串替换;使用#{}可以有效的防止SQL注入,提高系统安全性。理想答案:#{}是预编译处理,${}是字符串替换;
2021-03-06 22:26:37
105
原创 MarkDown学习
MarkDown学习又要开始学习写博客了,工欲善其事,必先利其器,再一次学一遍MarkDown基本用法记录一下,方便下次写的很适合别再忘了。坚持这一次一定要坚持下去。标题:## 二级标题### 三级标题#### 四级标题字体**XXXX** Hello,World!*XXXX*Hello,World!***XXXX*** Hello,World!~~XXXX~~Hello,World!引用>选择java 走向巅峰分割线---图片
2021-03-06 21:22:06
138
2
原创 第一次面试面经
MarkDown学习又要开始学习写博客了,工欲善其事,必先利其器,再一次学一遍MarkDown基本用法记录一下,方便下次写的很适合别再忘了。坚持这一次一定要坚持下去。标题:## 二级标题### 三级标题#### 四级标题字体**XXXX** Hello,World!*XXXX*Hello,World!***XXXX*** Hello,World!~~XXXX~~Hello,World!引用>选择java 走向巅峰分割线---图片
2021-03-06 21:09:40
94
原创 Spring Boot CLI 安装
Spring Boot CLI 安装简介 安装 运行Hello World 简单分析1.简介Spring Boot 给我们提供了一种可以快速开发spring的新方法。Spring Boot CLI可以只写代码就实现应用程序。2.安装介绍Windows平台可以使用的安装方法。第一步:下载Spring Boot CLI的工具包:spring-boot-cli-2.0.1...
2020-01-28 16:16:19
220
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人