自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

原创 Netty

NettyNetty是一个异步的,基于事件驱动的NIO网络应用框架。主要针对在TCP协议下,面向Client端的高并发应用,或者Peer-to-Peer场景下的大数据持续传输的应用。Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.GitHub:

2022-03-15 11:49:52 476

原创 1024!

1024 yeah!

2021-10-24 21:47:14 351 2

原创 Bus消息总线

Bus 消息总线在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个共同的消息主题,并让系统中所有的微服务实例都连接上来。由于该主题中产生的消息会被所有实例监听和消费,所以称它为消息总线。在总线上的各个实例,都可以方便地广播一些需要让其它连接在该主题上的实例都知道的消息。基本原理Config Client 实例都监听 MQ 中同一个 topic(默认是springCloudBus)。当一个服务刷新数据的时候,它会把这个信息放入到 topic 中,这样其它监听同一个 topic 的服务就能得到

2021-04-18 18:36:32 195 1

原创 Config配置中心

Config 配置中心微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的管理设施式必不可少的。Spring Cloud 提供了 Config Server 来解决这个问题,我们每个微服务自己带着一个application.yml 是十分臃肿的,且不宜于修改。Spring Cloud Config 为每个微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环

2021-04-18 17:15:47 212

原创 Spring Cloud Gateway

Spring Cloud GatewaySpringCloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。SpringCloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Zuul,在Spring Cloud 2.0以上版本中,没有对新版本的Zuul 2.0以上最

2021-04-18 13:24:24 95

原创 Hystrix

Hystrix (停更)前言服务雪崩,多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出“。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”。对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几秒钟内饱和。比失败更糟糕的是,这些应用程序还可能导致服务之间的延迟增加,备份队列,线程和其他系统资源紧张,粤致整个系统发生更多的级联

2021-04-17 23:30:28 92

原创 OpenFeign

OpenFeignFeign 是一个声明式 WebService 客户端。使用 Feign 能让编写 WebService 客户端更加简单,它的使用方法是定义一个服务接口然后在上面添加注解。Feign 也支持可拔插式的编码器和解码器。Spring Cloud 对 Fegin 进行了封装,使其支持了Spring MVC 标准注解和 HttpMessageConverters。Feign 可以与 Eureka 和 Ribbon 组合使用以支持均衡负载。我们只需要创建一个接口并使用注解的方式来配置,即可完成对

2021-04-17 17:26:34 97

原创 Ribbon

RibbonSpring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。Spring Cloud Ribbon虽然只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样需要独立部署,但是它几乎存在于每一个Spring Cloud构建的微服务和基础设施中。LB(Load Balance) 负载均衡简单的说负载

2021-04-17 15:52:06 92

原创 Eureka

Eureka(停更)服务治理在传统的RPC远程调用框架中,管理每个服务与服务之间的依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务与服务之间依赖关系,可以实现服务调用、均衡负载,容错等,实现服务发现与注册。Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理。服务注册与发现Eureka 采用了 CS 的设计架构,Eureka Sever 作为服务注册功能的服务器,它是服务注册中心。而系统中的其他微服务,使 Eureka 的客户端连接到

2021-04-16 13:35:38 112

原创 slot插槽

slot插槽组件的插槽是为了让我们封装的组件更加具有扩展性,让使用者可以决定组件内部的一些内容到底展示什么插槽的基本使用在组件中使用<slot></slot>标签即可定义一个插槽,可以在标签中放入默认值。通过使用组件时,将需要的元素或组件放入,即可替换。<body><div id="app"> <!-- 使用插槽 --> <cpn> <button>按钮</button> &l

2020-12-27 00:10:48 158

原创 Vue中的组件

Vue组件化组件的使用步骤调用Vue.extend()创建一个组件构造器,在创建构造器时传入需要使用的template模板即HTML复用的代码。然后调用Vue.component()将组件构造器注册为一个组件,并给组件取一个标签名称。使用组件的标签名在挂载的Vue实例元素下使用即可。创建组件构造器对象//1.创建组件构造器对象const cpnC = Vue.extend({ template: `<div> <h2>组件标题&l

2020-12-26 23:11:02 127

原创 Vue基本指令

Vue基本指令v-once该指令表示元素和组件只渲染一次,当数据发生改变时,展示内容不会进行更新<h1 v-once>{{message}}</h1> v-html某些情况下,从服务器请求到的数据本身就是一个HTML代码,可以使用该指令进行对代码的解析并渲染<div id="app"> <h1 v-html="url"></h1></div><script src="../js/vue.js">&l

2020-12-26 15:24:27 129

原创 Vue起步入门

Vue起步入门引入Vue.js在html中引入Vue.js或者下载文件后引入<!-- 开发环境版本,包含了有帮助的命令行警告 --><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><!-- 生产环境版本,优化了尺寸和速度 --><script src="https://cdn.jsdelivr.net/npm/vue"></script&gt

2020-12-24 22:53:06 70

原创 JWT入门

JWTJson web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。JWT结构token String ===> header.payload.sin

2020-12-07 20:50:05 130

原创 Shiro安全框架入门

Shiro简介​ Apache Shiro 是 Java 的一个安全(权限)框架, Shiro 可以非常容易的开发出足够好的应用, 其不仅可以用在 JavaSE 环境, 也可以用在 JavaEE 环境. Shiro 可以完成: 认证 | 授权 | 加密 | 会话管理 | 与Web集成 | 缓存 | 等, 官方网址.Authentication:身份认证 / 登录,验证用户是不是拥有相应的身份;Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做

2020-12-06 16:32:35 471

原创 类与实例的初始化

类与实例的初始化判断下列代码输出结果:Father.javapackage com.study.initialize;/** * @Author Harlan * @Date 2020/11/11 */public class Father { private int i = test(); private static int j = method(); static { System.out.print("(1)"); }

2020-11-14 13:24:48 133

原创 JVM入门

JVMJVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM结构JVM(Java虚拟机) |--类装载子系统 |--运

2020-11-14 13:23:07 72

原创 ElasticSearch入门

ElasticSearchElasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据D

2020-10-26 11:20:13 173

原创 Spring Boot 与任务

Spring Boot 与任务异步任务在springboot中, 如果需要使用多线程, 开启异步任务 需要在方法上添加@Async注解, 并在主类上使用@EnableAsync开启异步支持异步方法:@Servicepublic class AsyncService { /** * 告诉Spring这是一个异步方法 */ @Async public void hello(){ try { Thread.sleep(2

2020-10-14 21:06:09 95

原创 Spring Boot与RabbitMQ

Spring Boot与消息大多应用中, 可通过消息服务中间件来提升系统异步通信, 扩展解耦能力消息服务中有消息代理(message broker) 和 目的地(destination) 两个重要概念当消息发送者发送消息以后, 将由消息代理接管, 消息代理保证消息传递到指定目的地消息队列消息队列主要有两种形式的目的地队列(queue): 点对点消息通信 (point-to-point)主题(topic): 发布(publish) / 订阅(subscribe) 消息通信点对点式

2020-10-13 21:52:38 217

原创 SpringBoot与缓存

SpringBoot与缓存JSR-107Java Caching定义了5个核心接口, 分别是CachingProvider, CacheManager, Cache, Entry, Expiry由于操作繁琐不推荐使用(不讲解)CachingProvider缓存提供者: 定义了创建, 配置, 获取, 管理和多个CacheManager. 一个应用可以在运行期间访问多个CachingProvider.CacheManager缓存管理器: 定义了创建, 配置, 获取, 管理和多个唯一命名的

2020-10-10 23:43:58 170

原创 Spring Boot与数据访问

Spring Boot与数据访问对于数据访问层, 无论是SQL还是NOSQL, Spring Boot默认采用整合Spring Data的方式进行同一处理, 添加大量的自动配置, 屏蔽了很多设置. 引入各种xxxTemplate, xxxRepository 来简化我们对数据访问层的操作. 对于我们来说只需要进行简单的设置即可.整合JDBC导入依赖坐标在项目创建时可添加关于JDBC的场景, 并导入关于数据库的驱动, 在pom文件中会生成以下依赖坐标<dependencies> &

2020-10-08 21:36:18 77

原创 Docker入门

Docker入门Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。一个完整的Docker有以下几个部分组成:DockerClient客户端, Docker Daemon守护进程, Docker Image镜像, DockerContainer容器.Docker核心概念Docker主机(Host): 安装了Docker程序的机器

2020-10-07 22:30:21 64

原创 Spring Boot的Web入门

Spring Boot与Web开发使用SpringBoot创建SpringBoot应用, 选中我们需要的模块(场景)SpringBoot已经默认将这些场景配置完成(自动配置原理), 只需要在配置文件中指定少量配置就可以运行自己编写业务代码一. SpringBoot 静态资源的映射规则WebMvcAutoConfiguration自动配置类public void addResourceHandlers(ResourceHandlerRegistry registry) { if (

2020-10-06 13:15:48 109

原创 Spring Boot与日志

Spring Boot与日志一. 日志框架市面上的日志框架: JUL, JCL, Jboss-logging, logback, log4j, log4j2, slf4j …日志门面日志实现JCL(jakarta Commons Logging), SLF4j(Simple Logging Facade For Java), Jboss-loggingLog4j, JUL(java.util.logging), Log4j2, Logback左边选一个门面(抽象层), 右边

2020-10-04 17:57:41 132

原创 SpringBoot 配置文件

SpringBoot 配置文件yaml(YAML Ain’t Markup Language)语言文件, 已数据为中心, 比json, xml等 更适合做配置文件yaml语法配置端口号为80;server: port: 80 # 项目访问路径 context-path:/1. 基本语法属性和值区分大小写key: value : 表示一对键值对(空格必须有);以空格的缩进控制层级关系, 只要是左对齐的一列数据都是同一层级server: prot:80 path: /h

2020-10-04 14:03:25 100

原创 Spring Boot入门

Spring Boot入门1. Spring Boot简介简化Spring应用开发的一个框架整个Spring技术栈的一个大整合J2EE开发的一站解决方案2. 微服务微服务是一种架构风格一个应用应该是一组小型服务, 可以通过HTTP的方式进行互通每一个功能元素最终都是一个可独立替换和独立升级的软件单元与微服务相反的是单体应用(ALL IN ONE)3. Spring Boot HelloWorld浏览器发送hello请求, 服务器接受请求并处理, 响应Hello World字符串

2020-10-02 18:57:09 103

原创 Spring Security权限控制

Spring Security权限控制服务器端方法级别权限控制在服务器端,我们可以通过Spring security提供的注解对方法来进行权限控制. Spring security在方法的权限控制上支持三种类型的注解, JSR-250注解 / @Secured注解 / 支持表达式的注解, 者三种注解默认都是没有启用的, 需要单独通过global-method-security元素的对应属性进行启用JSR-250使用pom.xml导入依赖坐标<dependency> <

2020-10-01 16:51:21 419

原创 响应数据和结果视图

响应数据和结果视图返回值类型字符串可实现通过视图解析器,跳转到对应名称的页面@RequestMapping("/testString")public String testString(Model model){ System.out.println("testString方法执行了..."); //模拟从数据库查询出User对象 User user = new User(); user.setUsername("Harlan"); user.setPas

2020-09-30 17:30:42 105

原创 MyBatis中的事务

MyBatis中的事务什么是事务事务主要用于处理操作量大,复杂度高的数据事务必须满足的条件**原子性:**一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。**一致性:**在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。

2020-09-30 17:28:27 252

原创 MyBatis连接池

MyBatis连接池使用连接池可以减少获取连接所消耗的时间MyBatis的3种连接池配置方式配置位置:SqlMapConfig.xml中的dataSource标签, type属性表示了采用何种连接池方式.type属性的取值:POOLED : 采用传统的javax.sql.DataSource规范中的连接池, MyBatis中针对规范的实现.UNPOOLED : 采用传统的获取连接的方式, 虽然实现类javax.sql.DataSource接口, 但没有使用池的思想.JNDI : 采用服务器提

2020-09-30 17:27:17 118

原创 properties标签和typeAliases标签

properties引用标签可用于引用jdbcConfig.properties外部配置信息resource属性(常用): 用于指定配置文件的位置,也可以通过属性引用外部配置文件信息url属性: 要求按照url的写法来写地址 协议+主机+端口+URIjdbcConfig.properties文件jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTCjd

2020-09-30 17:26:36 230

原创 JDBC

JDBCJava DataBase Connectivity - Java 数据库连接本质: 官方定义的一套操作所有关系型数据库的规则,即接口. 各个数据库厂商实现这套接口,提供数据库jar包,我们可以使用这套接口(JDBC)编程, 真正执行的代码是驱动jar包中的实现类.1.JDBC入门步骤:导入驱动jar包复制jar包到项目目录下右键 -> Add As Library注册驱动获取数据库连接对象 Connection定义SQL获取执行SQL语句的对象 State

2020-09-30 17:24:35 72

原创 数据库连接池

数据库连接池1.概念: 一个容器(集合), 存放数据库连接的容器当系统初始化好后, 容器被创建, 容器中会申请一些连接对象, 当用户来访问数据库时, 从容器中获取连接对象, 用户访问完成之后, 会将连接对象归还给容器2. 好处:节约资源用户访问高效3. 实现:标准接口 - DataSource -> java.sql 包方法:获取连接 -> getConnection()归还连接 -> Connection.close() - 接对象是从连接池中获取,那么

2020-09-30 17:23:41 90

原创 Spring Security入门

Spring SecuritySpring Security 是Spring 项目中用来提供安全认证服务的框架.认证: 是为用户建立一个他所声明的主体, 主体一般指用户, 设备或可以在你系统中执行动作的其他系统.授权: 指的是一个用户能否在你的应用中执行某个操作, 在到达授权判断之前, 身份的主体已经由身份验证过程建立了.这些概念是通用的, 不是Spring Security特有的, 在身份验证层面, Spring Security广泛支持各种身份验证模式.入门导入依赖坐标<!--

2020-09-26 15:25:30 156

原创 MyBatis分页插件PageHelper

MyBatis分页插件PageHelperPageHelper 是国内非常优秀的一款开源的mybatis分页插件, 它支持基本主流与常用的数据库, 例如mysql, oracle, mariaDB, DB2, SQLite, Hsqldb等GitHub项目地址: GitHubGitOSC项目地址: GitOSCPageHelper使用1. 导入插件方式(两种)1.1 引入jar包从下列地址下载最新的jar包:https://oss.sonatype.org/content/rep

2020-09-23 09:46:27 113

原创 Maven基础

MavenMaven是一个项目管理工具, 它包含了一个项目对象模型(POM: Project Object Model), 一组标准集合, 一个项目生命周期, 一个依赖管理系统(DMS: Dependency Management System), 和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑Maven的安装下载地址: Maven官网配置环境变量:MAVEN_HOMEPath 下配置bin目录测试 cmd -> mvn -v

2020-09-17 20:56:47 57

原创 maven高级应用

maven高级应用maven基础回顾maven是一个项目管理工具.依赖管理: maven对项目中的jar包的管理过程. 传统工程我们直接把jar包放在项目中.maven工程真正的jar包放置在仓库中,项目中只用放置jar包的坐标.仓库种类: 本地仓库, 远程仓库(私服), 中央仓库仓库的关系: 当我们启动一个maven工程时, 会通过pom.xml文件中的jar包坐标去本地仓库找, 默认情况下, 如果本地仓库没有对应的jar包, 工程会自动去重要仓库下载jar包到本地仓库. 如果有私服, 会优

2020-09-17 20:55:03 170

原创 SpringMVC拦截器

SpringMVC拦截器实现步骤编写拦截器,实现HandlerInterceptor接口public class Interceptor1 implements HandlerInterceptor { ...}pubulic boolean preHandle()方法 - 预处理方法, 在controller的方法之前执行, 如果返回true则放行并执行下一个拦截器,或执行controller方法,返回false则不放行, 可通过调用request或response进行转发(定向

2020-09-12 13:15:13 127

原创 SpringMVC的文件上传

SpringMVC-文件上传单服务器代码实现在springmvc.xml中配置文件解析器对象<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 最大文件大小 --> <property name="maxUploadSize" value="10485760"/></bean&

2020-09-08 16:51:45 94

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除