自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

py_1990_04_20的博客

不积跬步,无以至千里

  • 博客(52)
  • 收藏
  • 关注

原创 IDEA创建java项目

刚安装好会进入下面的创建页面,选择直接New Project创建新项目。如果后续打开IDEA,并且上次的项目存在,则会打默认开上次的项目,此时可以选择File -> New->Project创建新项目。

2024-02-24 00:49:05 455 1

原创 java开发环境安装

JDK环境变量配置Maven环境变量配置maven setting.xml:<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.ap

2020-09-18 18:30:26 123

原创 MySQL zip包安装

1. 下载MySQL zip包下载地址2. 配置解压到安装目录,例如:D:\Program Files\mysql-5.6.48在根目录下创建my.ini,如下仅供参考[mysql]# 设置mysql客户端默认字符集default-character-set=utf8 [mysqld]#绑定IPv4和3306端口bind-address=0.0.0.0port=3306secure_file_priv = 'D:/Program Files/mysql-5.6.48/testM

2020-09-18 18:15:14 128

转载 flex布局

flex布局

2020-07-05 18:09:09 163

原创 Gulp快速入门教程

Gulp介绍中文主页: http://www.gulpjs.com.cn/gulp是与grunt功能类似的前端项目构建工具, 也是基于Nodejs的自动任务(task)运行器能自动化地完成 javascript/coffee/sass/less/html/image/css 等文件的合并、压缩、检查、监听文件变化、浏览器自动刷新、测试等任务gulp更高效(异步多任务), 更易于使用, 插件高质量安装 nodejs, 查看版本: node -v创建一个简单的应用gulp_test|- di.

2020-06-25 01:25:52 190

原创 JS模块化

1. 立即执行函数模块化2. AMD-RequireJS模块化3. CommonJS-Browserify模块化4. ES6模块化

2020-06-22 19:29:23 110

原创 立即执行函数模块化

(function (window, $) { //数据 let data = 'I am a module'; //操作数据的函数 function foo() { //用于暴露有函数 console.log(`foo() ${data}`); $('body').css('background', 'red'); } function bar() {//用于暴露有函数 console.log(`bar() ${data}`); otherFun

2020-06-22 19:24:30 304

原创 ES6模块化

ES6-Babel-Browserify1. 定义package.json文件json { "name" : "es6-babel-browserify", "version" : "1.0.0" }2. 安装babel-cli, babel-preset-es2015和browserifynpm install babel-cli browserify -gnpm install babel-preset-es2015 --save-dev3. 定义.babelrc文件json { "

2020-06-22 19:12:30 195

原创 AMD-RequireJS模块化

require.js使用1. 下载require.js, 并引入官网: http://www.requirejs.cn/github: https://github.com/requirejs/requirejs将require.js导入项目: js/libs/require.js2. 创建项目结构|-js |-libs |-require.js |-modules |-alerter.js |-dataService.js |-main.js|-ind

2020-06-22 18:54:14 196

原创 CommonJS-Browserify模块化

Browserify模块化Browserify让你可以使用require('modules')在浏览器端打包模块依赖创建项目结构|-js |-dist |-src |-module1.js |-module2.js |-module3.js |-app.js|-index.html|-package.json { "name": "browserify-demo", "version": "1.0.0" }-dist 打包生成文

2020-06-22 18:20:03 141

转载 nodejs安装

nodejs安装nodejs安装

2020-06-21 17:09:38 136

原创 nodejs使用的CommonJS规范

模块的引用使用 require()函数来引入一个模块例子:var 变量 = require("模块的标识");模块的定义在node中一个js文件就是一个模块默认情况下在js文件中编写的内容,都是运行在一个独立的函数中,外部的模块无法访问导出变量和函数使用 exportsexports.属性 = 属性值;exports.方法 = 函数;注意:不能复制一个对象使用module.exportsmodule.exports.属性 = 属性值;module.export

2020-06-21 16:57:30 425

原创 npm 常用命令

npm -v 查看npm的版本npm version 查看所有模块的版本npm search 包名 搜索包npm install/i 包名 安装包npm remove/r 包名 删除包npm install 包名 --save 安装包并添加到依赖中npm install 下载当前项目所依赖的包npm install 包名 -g 全局安装包(全局安装的包一般都是一些工具)...

2020-06-21 16:40:42 229

转载 Nginx

不重复造轮子了,看这个

2020-06-19 15:43:48 109

原创 ActiveMQ入门

ActiveMQ是JMS规范的一种实现ActiveMQ的消息形式Java消息服务应用程序结构支持两种模型:1.点对点模型(基于队列)每个消息只能有一个消费者。消息的生产者和消费者之间没有时间上的相关性。可以由多个发送者,但只能被一个消费者消费。一个消息只能被一个接受者接受一次生产者把消息发送到队列中(Queue),这个队列可以理解为电视机频道(channel)在这个消息中间件上有多个这样的channel接受者无需订阅,当接受者未接受到消息时就会处于阻塞状态2. 发布者/订阅者模型(基

2020-06-18 17:16:27 216

原创 JDK Executor框架

Executor基于生产——消费者模式,提交任务相当于生产者,执行任务的线程相当于消费者。如果要在程序中实现生产者——消费者,那么最简单的方式就是使用Executor。线程池中的两个重要角色是工作队列(Work Queue)和工作线程(Worker Thread)。生产者向工作队列中添加任务,消费者(工作线程)从工作队列中获取任务并执行,任务执行完成后,返回线程到线程池。Executor 最顶层的类,解耦Runnable的提交和执行ExecutorService 提供生命周期方法shutdow

2020-06-17 19:37:43 214

原创 MySQL基本使用

客户登操作登录服务器:mysql -uroot -p123 -hlocalhost-u:后面跟随用户名-p:后面跟随密码-h:后面跟随IP退出服务器:exit或quitSQL语句分类DDL(Data Definition Language):数据定义语言创建、删除、修改:库、表结构DML(Data Manipulation Language):数据操作语言增、删、改:表记录DCL(Data Control Language):数据控制语言用来定义访问权限和安

2020-06-12 03:24:50 121

原创 MySQL的存储过程

存储函数一个生成长度固定的随机字符串DROP FUNCTION IF EXISTS random_str;DELIMITER //CREATE FUNCTION random_str(len INT) RETURNS VARCHAR(32)BEGIN DECLARE letterTable VARCHAR(52) DEFAULT 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz'; DECLARE randomStr VARCHA

2020-06-12 01:48:12 143

原创 JavaScript继承

函数原型+对象冒充实现继承 // 父类函数 function Person(name) { this.name = name; } // 父类函数的原型属性 Person.prototype.say = function () { console.log("Hello " + this.name); }; // 子类函数 function Ninja(name, weapon) { // 对象冒充,将子类函数的上

2020-06-08 02:10:18 99

原创 JavaScript函数

函数是JavaScript的一等对象函数是JavaScript的一等对象(first-class object),或者说是一等公民(first-class zitizens)。 // 使用字面量定义一个空对象 let ninja = {}; // 分配属性 ninja.name = "Hanzo"; // 为对象的属性赋值为一个新对象 ninja.data = {}; // 使用字面量定义一个数组 let ninjaArray = [];

2020-06-07 01:01:36 143

原创 编写Dockerfile的最佳实践

编写Dockerfile的最佳实践本文档介绍了用于构建有效图像的推荐最佳实践和方法。Docker通过从一个Dockerfile文本文件中读取指令来自动构建镜像,该文本文件按顺序包含构建给定镜像所需的所有命令。一个Dockerfile遵循特定的格式和指令集,您可以在Dockerfile 的reference中找到。Docker镜像由只读层组成,每个只读层代表一个Dockerfile指令。这些层是堆叠的,每个层都是前一层的变化的增量。考虑一下Dockerfile:FROM ubuntu:18.04CO

2020-05-29 01:20:57 219

原创 Docker 的几种网络配置

Docker 的几种网络配置1. bridge2. host3. container4. none1. bridge当docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上的docker容器会链接到这个虚拟网桥上。虚拟网桥的工作方式和交换机类似,这样主机上的所有容器就通过交换机连接在了一个二层网络中。从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。在主机上创建一对虚拟网卡veth pair 设备,Docker将veth pair

2020-05-28 02:36:36 456

原创 Docker中的数据管理

Manage data in Docker默认一个容器内部创建的文件被存储到一个可写的容器层。这就意味着:当一个容器不存在的时候,他的数据不能被持久化(一起销毁了),并且其他进程需要从容器中取出数据是困难的一个容器的可写层是和正在运行容器的主机是紧耦合的,你很难移动这些数据到其他地方去向一个容器的可写层写数据需要一个管理文件系统的存储驱动。这个存储驱动使用Linux内核提供的union filesysem。相较于直接向主机的文件系统交互数据的数据卷(data volumes),这种额外的抽象降低了

2020-05-26 22:20:32 134

原创 Docker私有仓库

1. 私有仓库安装docker-registry 是官⽅提供的⼯具,可以⽤于构建私有的镜像仓库。可以通过获取官⽅ registry 镜像来运⾏。先安装好docker。执行如下命令安装$ docker run -d -p 5000:5000 --restart=always --name registry registry默认情况下,仓库会被创建在容器的 /var/lib/registry ⽬录下。你可以通过 -v 参数来将镜像⽂件存放在本地的指定路径。例如下⾯的例⼦将上传的镜像放到本地的 /opt/

2020-05-26 19:26:33 258

原创 Docker 基础使用

docker 基础使用1. docker 安装1.1 虚拟机安装1.2 环境准备1.3 离线rpm安装docker1.3.1 执行安装1.3.2 启动1.3.3 测试docker1.3.4 配置镜像加速2. 镜像和容器基本操作2.1 docker信息2.2 镜像操作2.2.1 查询镜像2.2.2 镜像拉取2.2.3 镜像查看2.2.4 运行镜像生成容器2.3 磁盘使用查看2.4 容器操作2.4.1 启动已终止的容器2.4.2 查看容器2.4.3 终止容器2.4.4 重启容器2.4.5 删除容器2.4.6 进

2020-05-25 18:29:20 142

原创 服务降级、熔断、限流---Hystrix

以前工作的公司,也是用微服务架构,使用的是很简陋的自己封装的微服务框架,Apache CXF + Eureka,但没有实现服务降级和熔点的思想。一个典型的问题是,A服务依赖B服务,B服务依赖C服务,然而C服务因为数据库或其他原因的导致请求线程卡死,这样导致B服务等待C,A服务等待B,用户看到页面空白(A服务渲染)。这还不是最糟糕的,最糟糕的是并发量上去,C拖死B,B拖死A,A、B、C都死翘翘了,最...

2020-05-03 20:34:06 781

原创 服务面向接口调用---OpenFeign

OpenFeign出现是为了解决什么问题,其实最直观的作用是自己的业务代码精简,面向接口编程。例如,我们使用Ribbon+RestTemplate在服务的消费方会大量出现类似这样的代码:restTemplate.getForObject(INVOKER_URL + "/.../...", CommonResponse.class);写这么多的URL,是不是很繁琐。那怎么消除这些繁琐的重复代...

2020-04-30 22:50:33 326

原创 服务调用---Ribbon

Ribbon是Netflix公司开发的一套客户端负载均衡工具。主要功能是提供客户端的软件负载均衡算法和服务调用。1. Ribbon demo演示1.1 引入pom <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>sprin...

2020-04-30 18:34:45 235

原创 服务注册与发现---Consul

1. Consul 下载启动consul下载地址进入到解压目录:F:\develop\addjar\consul-1.6.1-win-64>.\consul agent -dev==> Starting Consul agent...访问:http://localhost:8500这样注册中心就启动好了2. 配置微服务入驻到Consul2.1 pom.xml: ...

2020-04-29 22:37:18 149

原创 服务注册与发现---ZooKeeper

服务注册与发现---ZooKeeper1. 引入zookeeper的依赖2. 修改application.yml3. 主类上加@EnableDiscoveryClient4. 服务启动1. 引入zookeeper的依赖这里要注意自己在linux上安装的ZooKeeper的版本,因为我使用的是3.4.6,所以先排除spring-cloud-starter-zookeeper-discovery ...

2020-04-29 20:16:14 120

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

Eureka是美国Netflix公司出品的服务注册与发现组件,Spring Cloud集成了该组件,然而时代发展,技术革新,Eureka已经停止更新了,但部分老的Spring Cloud的服务注册与发现组件还是用的Eureka。学学了解了解,也有裨益,毕竟思想没有变化。Eureka停更说明1. Eureka系统架构Eureka采用了CS的设计架构,Eureka Server 作为服务的注...

2020-04-29 01:24:22 885

原创 Java 泛型

泛型的出现是十分必要的,具体而言,它提供了以下几个方面的功能:避免代码中的强制类型转换,在没有出现泛型前从集合中拿数据的类型是不确定的,使用时要进行类型转换限定类型,List<String> 限定了集合中只能添加String元素,当添加Integer时,编译器会报错实现一些特别的编程技巧,例如,提供一个方法拥有拷贝对象,在不提供额外的方法参数的情况下,使返回值类型和方法参数类型...

2020-04-25 20:53:31 104

原创 注解&反射注解

1. 注解的定义public interface Annotation 是所有的注解的父接口1.1 注解属性的类型8种基本类型 byte short char int long float double booleanStringEnumClass注解类型以上类型的一维数组类型1.2 定义格式public @interface MyAnno { int age() ...

2020-04-24 15:40:48 120

原创 Spring Boot Web 整合

Spring Boot与Spring MVC天然整合只需要导入starter-web即可。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</a...

2020-04-23 03:51:12 249

原创 Docker 入门

五、Docker1、简介Docker是一个开源的应用容器引擎;是一个轻量级容器技术;Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;运行中的这个镜像称为容器,容器启动是非常快速的。2、核心概念docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);docker客户端(Cli...

2020-04-21 03:52:57 121

原创 Spring Boot 日志整合

1. 日志框架java的日志框架很多,而且不同的开源项目可能使用了不同的日志框架,如Spring 使用Apache commons-logging,Hibernate使用jboss-logging。Spring Boot最为多项目的整合是如何整合这些框架的日志的来实现大一统的呢?市面上的日志框架;JUL(java.util.logging)、JCL(Jakarta Commons Logg...

2020-04-21 03:34:31 457

原创 Spring Boot 的单元测试

1. 双击选中类名–>controller+shift+T–>回车2. 进入创建测试类对话框勾选自己需要测试的方法以及策略,点击OK,这样便会在test目录下生成相对应的测试类3. 添加相关注解@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTest4. 执行测试用例5. 使用MockMvc测试MockM...

2020-04-19 08:11:45 119

原创 Spring Boot 配置文件

1. @ConfigurationProperties告诉SpringBoot将本类中的所有字段和配置文件中相关的属性进行绑定值prefix = "person"意为配置文件中person下面的所有属性与IOC容器中的person对象字段进行一一映射只有这个组件是容器中的组件(配置类加@Component),才能容器提供的@ConfigurationProperties功能Person...

2020-04-19 06:43:40 162

原创 YAML语法简介

YAML(YAML Ain’t Markup Language)Ain’t 意为“是又不是”。说它是标记语言就是,说不是就不是。但是有个好处就是相较于XML数据更加压缩,所以便有了YAML“以数据为中心的说法”。YAML:server: port:8080XML:<server> <port>8081</port></server>...

2020-04-19 01:32:39 231

原创 IDEA 创建 Spring Boot 项目

使用IDEA创建Spring Boot项目有两种方式,一种是创建Maven项目,添加Spring Boot依赖;二是使用IDEA的Spring Initializr1.创建Maven项目导入Spring Boot 坐标1.1 File—>New—>Project—>Maven:设置好Project SDK1.2 Next设置好groupId,artifactId...

2020-04-18 23:03:02 155

空空如也

空空如也

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

TA关注的人

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