自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Revit二次开发之DMU

Revit二次开发之DMU  Revit是一款三维联动的设计软件,一处修改处处修改, 比如,在三维视图修改了墙的位置,二维视图上墙的位置也跟着变化了,同时,墙上的门窗也会跟着移动。 这种联动关系是Revit内部设计好的,如果我们需要一些自定义的联动关系, 比如我希望两面墙的总长度是固定的,增加一面墙长度之后,另外一面墙会跟着缩减。又或者,链接文档的某个构件移动了,希望主文件的某个不相关的构件也移动。这个时候,Revit本身的关系已经不足以满足我们的需求,我们就可以使用DMU(Dynamic Model U

2021-04-09 17:28:27 846

原创 Revit二次开发——扩展存储

Revit二次开发——扩展存储​  在revitAPI中,提供了Extensible Storage framework,可以使开发者将需要存储的数据存到Revit的rvt文件中, 扩展的数据始终跟着这个Rvt文件走,不会丢失。而且存储的数据可以设置访问权限。对于保密数据可以只能是你自己的程序读取,或只有具有特殊的开发者代号的程序才能访问。对于数据的保密性非常有帮助。一、相关类1、SchemaBuilder  Autodesk.Revit.DB.ExtensibleStorage下  此类用来创建

2021-04-08 16:15:27 1740

原创 Linux下MySQL8.0安装教程

Linux下MySQL8.0安装教程1、 下载mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz的安装包云盘下载链接:https://pan.baidu.com/s/1CwH3yKNoQ_dUX4Q2xrA5Aw 提取码:jxbk2、将下载的文件夹上传到Linux服务器,放置到 /usr/local目录下 ,然后解压:# tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz3、将解压得到的文件夹重命名为mys

2020-08-25 17:33:20 1211

原创 如何使用线程池

一、什么是线程池​ 类似于数据库连接池,为了能够复用线程、限制并发数以及减少上下文切换带来的资源消耗,使用池化的技术对线程进行管理。二、线程池如何使用​ jdk给我们提供了Executor框架,来创建和使用线程池,架构图如下:​ 主要使用的是Executor接口、ExecutorService接口、ThreadPoolExecuor类和Executors工具类。1、Executor接口​ 此接口是一个函数式接口,只有一个待实现的方法,用来执行一项Runnable任务2、Execut

2020-08-19 19:57:33 1438

原创 消息中间件--JMS--ActiveMQ--03

上接:消息中间件–JMS–ActiveMQ–02消息中间件–JMS–ActiveMQ–039、ActiveMQ的传输协议​ 前置知识:​ 服务器常用的几种IO模型:​ Java对BIO、NIO、AIO的支持:Java BIO (blocking I/O): 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。Java NIO (non-blocking I/O)

2020-08-12 18:36:56 240 1

原创 消息中间件--JMS--ActiveMQ--02

上接: 消息中间件–JMS–ActiveMQ–01消息中间件–JMS–ActiveMQ–026、JMS规范6.1、什么是JMS​ JMS,全称Java Message Service,类似于JDBC、JNDI,是JavaEE体系中的一种,规定了两个应用程序之间进行异步通信的API,它为标准协议和消息服务提供了一组通用接口,包括创建、发送、读取消息等,用于支持Java应用程序开发。​ 在JavaEE中,当两个应用程序使用JMS进行通信时,它们之间不是直接相连的,而是通过一个共同的消息收发服务组件

2020-08-12 18:36:29 169

原创 消息中间件--JMS--ActiveMQ--01

消息中间件–JMS–ActiveMQ–011、什么是MQ​ MQ全称Message Queue,消息队列的意思,是面向消息的中间件的一种(message-oriented middleware),它底层使用Queue储存消息,遵循先进先出的原则。系统与系统之间进行信息交流时,可以把消息发送到MQ中,然后由MQ完成消息的推送,消息队列可以在分布式环境下提供应用解耦,弹性伸缩,冗余存储、流量削峰,异步通信,数据同步等功能。​ 大致的过程是这样的:​ 发送者把消息发送给消息服务器,消息服务器将消息存

2020-08-12 18:35:51 155

原创 SpringCloud--Config+Bus--分布式配置中心

1、Config–分布式配置中心1.1、什么是配置中心?​ 对于一个微服务架构的应用来说,每一个服务都有自己的一个配置文件,当微服务的数量比较多时,如果修改一些公用的配置,则需要将所有的配置文件都单独进行修改,这对运维人员来说是非常耗时耗力的。那么有没有一种方法,可以将众多微服务中公用的配置信息抽取出来,放到一个地方集中管理,然后各个微服务再去这个地方拉取对应的配置信息,达到公用配置统一管理的目的。所以配置中心就出现了。1.2、SpringCloud Config​ 互联网行业常用的配置中心有S

2020-08-12 18:15:53 572

原创 SpringCloud--Gateway--网关

Gateway–网关1、什么是API网关​ 网关的角色是作为一个 API 架构,用来保护、增强和控制对于 API 服务的访问。API 网关是一个处于应用程序或服务(提供 REST API 接口服务)之前的系统,用来管理授权、访问控制和流量限制等,这样 REST API 接口服务就被 API 网关保护起来,对所有的调用者透明。因此,隐藏在 API 网关后面的业务系统就可以专注于创建和管理服务,而不用去处理这些策略性的基础设施。​ API网关的职能:​ 请求接入:作为所有API接口服务请求的接入点

2020-08-12 18:08:46 286

原创 SpringCloud--Hystrix--断路器--02

接SpringCloud–Hystrix–断路器–019、Hystrix的完整配置列表​ 为了更好的使用Hystrix,此处将Hystrix的完整配置进行说明。在Hystrix中,一切的起源都是HystrixCommand或者HystrixObservableCommand,此处主要针对HystrixCommand,主要包括标识(key)配置,命令执行(execution)配置、命令降级(fallback)配置、熔断器(circuit breaker)配置、度量统计(metrics)配置和请求上下文配

2020-08-04 22:21:23 207

原创 SpringCloud--Hystrix--断路器--01

Hystrix–断路器5.1、什么是Hystrix​ 服务雪崩:​ 对于一个分布式系统来讲,随着服务的数量越来越多,服务与服务之间的调用链路也会越来越长,不可避免地在某一个时刻某一个服务变得不可用了,进而会使得链路中所有的服务从调用链的下游开始向上逐级崩溃,甚至导致整个系统中所有的服务崩溃,这就是服务雪崩。​ 如下面的例子:​ ​ 服务A调用服务B,服务B又调用服务C,某一时刻A的流量突然增加!在这种情况下,A可能扛得住这些并发,B可能也扛得住,但是C可能扛不住,变得不可用,从而造成短

2020-08-04 22:20:39 187

原创 SpringCloud--OpenFeign--服务调用

OpenFeign–服务调用1、Feign与OpenFeign​ Feign英文表意为“假装,伪装,变形” ,是一个http请求调用的轻量级框架,属于NetFlix公司,和其他的NetFlix组件一样,已经宣布不再进行更新了。因此Spring社区在Feign的基础之上推出了OpenFeign, 对Feign进行增强支持Spring MVC注解,可以像Spring Web一样使用HttpMessageConverters等。 本质上来讲,二者都是完成服务调用的轻量级框架,使用方法也一致。​ 在服务消

2020-07-31 12:05:51 284 1

原创 SpringCLoud--Ribbon--负载均衡器

Ribbon–负载均衡调用1、什么是Ribbon​ Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们通过使用简单的RestTemplate来完成客户端负载均衡的服务调用,即Spring Cloud Ribbon = RestTemplate + @LoadBalanced。2、Ribbon负载均衡的特点​ 负载均衡在系统架构中是一个非常重要,并且是不得不去实施的内容。因为

2020-07-30 19:15:45 247

原创 一文读懂分布式系统

一、什么是分布式系统1、集中式系统​ 说分布式系统必须要说集中式系统,集中式系统中整个项目就是一个独立的应用,整个应用也就是整个项目,所有的东西都在一个应用里面。​ 如一个网站就是一个应用,最后是多个增加多台服务器或者多个容器来达到负载均衡的避免单点故障的目的,当然,数据库是可以分开部署的。​ 集中式很明显的优点就是开发测试运维会比较方便,不用为考虑复杂的分布式环境。​ 集中式很明显的弊端就是不易扩展,每次更新都必须更新所有的应用。而且,一个有问题意味着所有的应用都有问题。当系统越来越大

2020-07-30 13:13:50 269

原创 SpringCloud--Eureka--服务注册与发现

1、Eureka–服务注册与发现1.1、什么是Eureka​ 随着单体架构向微服务架构转变,当微服务越来越多并且单一服务的实例越来越多时,服务与服务之间的调用和治理就会变得非常复杂、困难,此时我们就需要一种技术来帮助我们进行服务的治理各服务之间的依赖关系,而Eureka就是这样一门技术。​ 使用了Eureka,每一个服务之间就可以不用关心如何调用的问题,只专注于自己的业务功能实现即可,Eureka会帮助我们管理微服务之间错综复杂的调用关系。​ 说白了,Eureka就是帮助我们治理微服务之间的依

2020-07-28 18:55:53 408

原创 微服务架构--什么是微服务

微服务1、什么是微服务​ 相对于传统单体服务项目而言,微服务顾名思义体现在“小”上,它仅仅是整个应用程序的一个个较小且独立的功能单元,我们可以把他们成为一个个“服务”,是用户能够感知的最小功能集。这些服务运行在自己独立的进程中,通过轻量级的通信机制互相通信(例如HTTP REST、RPC)并共用一个管理工具进行管理。​ 另外,微服务之间是完全独立的, 可通过全自动部署机制独立部署 (独立部署);每一个服务可以使用不同的开发语言围绕业务需求进行构建(独立开发);每一个服务可以使用不同的存储技术(独立

2020-07-27 21:22:04 175

原创 SpringBoot项目热部署设置

在实际开发中,我们在调试程序的过程中,经常不得不频繁重启项目来验证调试的结果,这会增加我们的工作负担。我们希望的是当项目代码发生改变时,项目可以自动部署。因此SpringBoot给我们提供了一种热部署的方式。​ 第一步:在你的项目中引入下面的依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</art

2020-07-27 16:40:00 126

原创 Webpack安装及其使用方式

一、什么是Webpack​ webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler) , 当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。​ 这样做的好处是,在浏览器加载页面时,不用频繁多次的向服务器请求资源,只需要请求已经打包好的bundle即可,减少了浏览器和服务器的交互次数,节省了资源并且提高了性能。二、W

2020-07-22 14:27:16 286

原创 JS模块化实现方式

一、模块化简介​ 随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂。 我们希望的是自己的代码条理清晰,可读性高,这就需要我们像书写后端代码那样,将javascript的代码模块化,通过js文件之间的互相调用来完成一定的功能。​ 但是,js不像java,没有类、包等概念,只是一个个单独的js文件,每一个文件都是一个独立的模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。所以想要实现模块化操作,必须经过一下两个步骤:​

2020-07-22 12:33:19 582

原创 转码神器Babel

一、什么是babel​ 首先需要了解ES6和ES5的差别:​ ES6比较简洁,书写起来比较方便,所以实际开发中往往使用ES6进行编程。但是ES6的浏览器兼容性不如ES5,为了能够方便编程,并且使得代码可以支持更多的浏览器。我们常常需要将ES6的代码转换成ES5。此时我们常用的技术就是Babel,它是一个被广泛使用的转码器,可以将ES6代码转为ES5代码。这意味着,现在可以用 ES6 编写程序,而不用担心浏览器环境的问题。二、安装babel环境​ 此处介绍通过命令行使用babel,假设你已经安装

2020-07-22 10:34:28 137

原创 前端的Maven,强大的NPM

一、简介1、什么是NPMNPM全称Node Package Manager,是Node.js提供的包管理工具,由node.js自动集成。它的主要作用是初始化前端项目和管理js依赖,相当于前端的Maven 。2、NPM工具的安装位置我们通过npm 可以很方便地下载js库,管理前端工程。Node.js默认安装的npm包和工具的位置:Node.js目录\node_modules在这个目录下你可以看见 npm目录,npm本身就是被NPM包管理器管理的一个工具,说明 Node.js已经集成了npm工具

2020-07-22 10:33:20 1850

原创 Node.js的简单使用

一、简介1、什么是Node.js​ 对比与java,Node.js就类似于java的虚拟机,是用来解析执行js代码的。它底层使用的是Google的JavaScript的引擎(V8引擎),使用Node.js,我们可以脱离浏览器运行js代码;也可以使用它作为服务器,部署一些高性能的js服务。​ 浏览器的内核包括两部分核心:DOM渲染引擎;js解析器(js引擎)nodejs相当于把js的解析器给独立出来了,所以它可以脱离浏览器独立运行js代码。二、安装1、下载官网:http

2020-07-22 10:32:18 83

原创 Ajax讲解,学习Ajax看这里就够了!!!

原生Ajax的实现方式:(即javascript方式)一、总述:第一步:获取XMLHttpRequest对象(低版本的IE没有内置此对象,使用的是ActiveXObject)第二步:设置回调函数第三步:开启连接第四步:发送请求<html> <head> <script type="text/javascript"> function loadXMLDoc(){ var xmlhttp;

2020-07-21 18:26:27 132

原创 SpringBoot整合Swagger2

SpringBoot整合Swagger2一、Swagger简介​ Swagger是一款RESTFUL接口的文档在线自动生成+功能测试功能软件,被广泛应用于前后端分离项目中,用来降低前后端开发人员的沟通成本,因为Swagger可以根据后端接口的设计动态的生成restful风格的API文档供前端开发人员的使用。除此之外,Swagger还提供了接口测试功能,使得开发人员可以方便的测试接口的可用性。有了Swagger以后,开发人员再也不用维护接口文档了。​ Swagger目前应用最多的版本就是Swagge

2020-07-07 14:00:33 303

原创 Mybatis-Plus中的条件构造器

Mybatis-Plus中的条件构造器​ 条件构造器(Wrapper)的作用:​ MP提供的通用Mapper中,删改查(没有insert)的方法通常会需要我们传入一个条件构造器,用来生成最后执行的SQL语句。​ 比如List selectList( Wrapper wrapper)方法,当我们传入null时,默认生成的语句就是select * from xxx,这条语句没有查询条件,排序,子查询,模糊查询并且固定查询所有的字段,如果我们需要一些复杂的查询条件,就可以使用条件构造器来指定我们的SQ

2020-07-06 16:30:00 10359

原创 SpringBoot的多配置文件设置

SpringBoot的多配置文件设置一、配置文件的加载位置​ springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件。​ –file:./config/​ –file:./​ –classpath:/config/​ –classpath:/(一般使用这个位置存放配置文件)​ 优先级由高到底:​ 即对于不同配置文件中的相同配置项,高优先级的配置会覆盖低优先级的配置;不同

2020-07-06 14:36:30 253

原创 Mybatis-Plus中的乐观锁

Mybatis-Plus中的乐观锁​ 悲观锁​ 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。​ 乐观锁​ 总是假设最好的情况,每次去拿数据的

2020-07-05 23:02:57 319

原创 Mybatis-Plus中的自动填充功能

Mybatis-Plus中的自动填充功能​ 所谓自动填充,指的是当我们在向数据库插入数据或者修改数据时,如果有一些字段的设置方式是相同的,为了省略这些操作,我们可以通过事先的配置来省去这部分操作。​ 比如:数据库user表中有两个字段:create_time和update_time,对于这两个字段而言,我们每一次插入或者修改时,使用的操作都是new Date(),每一次都是在重复书写相同的代码,我们可以通过自动填充功能来简化这部分操作。​ 第一步:​ 创建数据表和实体类,让类中的属性和表中字

2020-07-05 22:59:43 183

原创 Mybatis-Plus中的几种主键生成策略

一、Mybatis-Plus中的主键生成策略​ 在设计数据库时,我们可以仅仅指定主键,但是不指定主键的生成策略,在持久化数据时再指定主键的生成策略。1、分布式系统中主键的生成策略​ 在分布式系统中,常见的主键生成策略有以下几种:1.1 数据库自增长序列或字段​ 最常见的方式。利用数据库,全数据库唯一。​ 优点:​ 1)简单,代码方便,性能可以接受。​ 2)数字ID天然排序,对分页或者需要排序的结果很有帮助。​ 缺点:​ 1)不同数据库语法和实现不同,数据库迁移的时候或多数

2020-07-05 19:53:43 1530

原创 面向对象编程--七大设计原则

面向对象编程–七大设计原则​ 面向对象编程的七大原则有(开口单依最合里):​ 开闭原则------------------------------------开​ 接口隔离原则------------------------------口​ 单一职责原则------------------------------单​ 依赖倒转(倒置)原则----------------------依​ 迪米特法则(最少知道原则)--------最​ 合成复用原则-----------------

2020-07-04 23:49:57 269

空空如也

空空如也

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

TA关注的人

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