- 博客(26)
- 收藏
- 关注
原创 VUE项目打包,问题及解决
在基本的java web工程中,WebContent目录存放了前端显示所需资源。所以VUE项目打包之后的内容也是放置在此处。作为开发者,使用npm run dev来运行VUE项目,如果是用于打包,则使用npm run build来生成目标资源。VUE项目中的config/index.js中包含了dev和build对应的参数。npm run build将会在VUE根目录下生成dist目录,里面...
2020-01-03 18:31:46
1735
原创 简单的前端Vue开发环境
目前做到前端,计划用vue做前端,于是必不可少需要搭建开发环境。我在网上看到的Vue2.0的windows开发环境需要包括Node.js,npm,webpack,vue-cli。其中Node.js为Javascript运行环境(runtime),npm为Nodejs下的包管理器,webpack用于翻译Vue组件并打包成.js文件,vue-cli用来生成模板的Vue工程(也就是封装了类似的脚手架...
2019-12-11 17:32:09
577
原创 AOP
说起AOP,就让我想起了OOP。AOP:Aspect Oriented Programming,面向切面编程OOP:Object Oriented Programming,面向对象编程我们都知道面向对象编程,是面向对象语言的核心。其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。OOP达到了软件工程的...
2019-11-25 18:09:01
226
原创 Spring IOC
首先来看看百度对IOC的定义:控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对...
2019-09-20 15:53:27
203
原创 微服务
微服务这一概念出现于2012年,是因软件作者Martin Fowler而流行。后来我了解到我工作所开发的产品就可以称之为微服务产品,但是具体工作所接触的内容不多,所以要对微服务来进一步学习一下。首选想找微服务的定义,于是就有了下面一段话:a definition of this new architectural termThe term “Microservice Architecture...
2019-09-17 17:27:46
401
转载 设计模式(六):建造者模式
背景:当一个类的内部数据过于复杂的时候(通常是负责持有数据的类,比如Config、VO、PO、Entity…),要创建的话可能就需要了解这个类的内部结构,还有这些东西是怎么组织装配等一大坨乱七八糟的东西,这个时候就会增加学习成本而且会很混乱,这个时候就想啊想一种什么法子来管理一下这个类中的数据呢,怎么在创建的时候让它按部就班的来,并且代码可读性很好别让我看花了眼啊,我要的东西也能都很好设置进来,这...
2019-09-17 10:13:33
185
原创 Linux的Maven环境安装和配置
为了更好地了解Maven对Java 项目的构建、依赖管理,所以这里准备自己配置linux的Maven环境,前文已经安装好了JDK,可以查看安装JDK。这里安装Maven。下载Maven:下载地址后缀为tar.gz的是Linux和Mac版本,后缀为zip的是Windows版本解压,apache-maven-3.6.2-bin.tar.gz为安装包,/opt/module/为安装目录...
2019-09-16 22:28:12
474
原创 kafka生产者和消费者的Java实现
为了更方便引入依赖包,所以使用maven工程。这里使用的是Eclipse新建maven工程。新建maven工程在pom.xml中引入依赖包<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation...
2019-09-11 22:12:03
355
原创 kafka命令行操作
成功启动zookeeper和kafka之后,我们就可以来看看kafka的命令行操作了。如果想要知道kafka的命令行,那么可以去这个网页去学习一下:quickstart。我们都知道kafka的数据存储都是以topic的形式存储的,那么首先来看看目前都有哪些topic[root@walter101 kafka_2.12-2.3.0]# ./bin/kafka-topics.sh --bootst...
2019-09-11 21:40:08
342
原创 kafka安装和启动(集群部署)
之前有kafka单机部署,这里说一说集群部署,其实很简单。我这里有三台虚拟机,都要进行安装和配置。kafka下载地址为http://kafka.apache.org/downloads。在这里选择你想要的版本,我选择的版本是kafka_2.12-2.3.0下载之后解压到你的安装目录,这里kafka_2.12-2.3.0.tgz为安装包,/opt/module/为安装路径[root@host...
2019-09-11 20:53:30
195
原创 VMWare创建CentOS虚拟机的网络设置
我这里使用的VMWare版本为VMWare Workstation Pro 15.0使用的CentOS版本为CentOS-7-x86_64-DVD-1810.iso在创建完成虚拟机之后,我们需要进行网络配置,这里对网络配置做一下简单介绍。首先是VMWare主要有三种网络配置方式:桥接模式:虚拟机分配一个和主机IP位于同一网段的IP。如主机IP为192.168.19.56,则虚拟机分配IP...
2019-09-11 20:18:42
254
原创 设计模式(五):原型模式
原型模式的目的:解决创建重复对象的问题。原型模式的原理:Java中Object类是所有类的根类,Object类提供了一个clone()方法,该方法可以将一个Java对象复制。但是需要实现clone的Java类必须实现Cloneable接口,该接口表示该类能够且具有复制的能力。传统方式我们知道如果有一个对象A a,要想获取一个和a相同的对象,需要新建一个A b = new A(); 并且将...
2019-09-11 17:52:23
196
原创 设计模式(四):工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)
现在,大家广泛地将工厂模式分为简单工厂模式、工厂方法模式和抽象工厂模式三种。四人帮写的那本设计模式的分类为其中两种:工厂方法(factory method)模式和抽象工厂(abstract factory)模式。这里将三种模式都进行总结。简单工厂模式:由一个工厂对象决定创建出哪一种具体产品类的实例。简单工厂模式是工厂模式中最简单实用的模式。工厂方法模式:定义一个创建对象的抽象工厂类,...
2019-09-11 11:13:03
192
原创 设计模式(三):单例模式
单例模式的目的:一个类只能存在一个实例对象。单例模式的基本原理:该类的构造函数为私有函数(不允许通过new的方式来创建对象),并且该类只提供一个取得其对象实例的静态方法(可以作为创建对象的唯一入口)。单例模式的实现按照大类分为5种方式,分别是饿汉式、懒汉式、双重校验锁(DCL,即double-checked locking)、静态内部类(登记式)、枚举。一般推荐饿汉式,如果明确需要lazy l...
2019-09-10 15:42:25
122
原创 设计模式(二):概述和分类
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案,这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。使用设计模式是为了提高软件的维护性、通用性、扩展性和可靠性。了解设计模式,就需要了解四人帮...
2019-09-10 10:11:57
212
原创 zookeeper客户端命令操作
上一章开启了zookeeper的服务器端,然后来看看zookeeper的客户端。启动客户端[root@host-10-75-169-14 zookeeper-3.4.14]# ./bin/zkCli.sh显示所有操作命令[zk: localhost:2181(CONNECTED) 0] helpZooKeeper -server host:port cmd argsstat path...
2019-09-07 07:44:16
708
原创 设计模式(一):七大原则
设计模式是为了提升软件的以下特性:代码重用性(相同代码不用多次编写)可读性(编程规范性,便于阅读和理解)可扩展性(方便增加新功能,又称可维护性)可靠性(增加新的功能,对原来的功能没有影响)高内聚,低耦合而设计模式常常需要遵循七大原则,即设计模式的依据,也是日常编程需要遵循的原则:单一职责原则(一个类应该只负责一项职责,防止职责1的变更因为影响类,进一步影响到职责2)接口隔离原...
2019-09-05 18:17:35
183
原创 最小生成树算法:prim算法和kruskal算法
prim算法又称普利姆算法,目的是在加权连通图中搜索最小生成树。特点是由顶点出发选边,依次选取两个顶点集合之间权值最小的边,两个顶点集合随之变化,最终形成最小生成树。一个加权连通图,其中顶点集合为V,边集合为E;标记访问过的顶点集合为Vnew,选取的边集合为Enew,初始化都为空假设从V中的任一顶点x开始,则Vnew = {x}重复下列操作,直到Vnew = V。如果顶点有n个,则下面循...
2019-09-05 17:46:55
854
原创 kafka安装和启动(单机部署)
zookeeper已经成功安装和启动。kafka下载地址为http://kafka.apache.org/downloads。在这里选择你想要的版本,我选择的版本是kafka_2.12-2.3.0下载之后解压到你的安装目录,这里kafka_2.12-2.3.0.tgz为安装包,/opt/module/为安装路径[root@host-10-75-169-14 kafka]# tar -zxv...
2019-09-04 14:58:12
545
原创 zookeeper安装,启动失败,解决问题,并成功启动
Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain对于zookeeper的安装,下载安装包http://zookeeper.apache.org/解压到你的安装位置,这里apache-zookeeper-3.5.5.tar.gz是我下载的最新安装包,/opt/m...
2019-09-04 11:09:06
7887
2
原创 Linux安装JDK
查看是否已安装JDK[root@host-10-75-169-14 ~]# java -versionjava version “1.8.0_131”Java™ SE Runtime Environment (build 1.8.0_131-b11)Java HotSpot™ 64-Bit Server VM (build 25.131-b11, mixed mode)[root@ho...
2019-09-04 09:56:53
345
原创 贪心算法
贪心算法又叫贪婪算法,是指对问题进行求解时,在每一步选择中都采取最好或最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法。但是贪心算法所得到的的结果不一定是最优的结果(当然有时回事最优解),但其结果都是相对接近最优解的结果。贪心算法最佳应用-集合覆盖假设存在如下表所示的需要付费的广播台,以及广播台信号可以覆盖的地区,如何选择最少的广播台,让所有的地区都可以接收到信号广...
2019-09-03 10:13:01
161
原创 动态规划算法
动态规划算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法。动态规划算法与分治算法类似,其基本思想也是将带求解问题分解成若干子问题,先求解子问题,然后从这些字问题的解得到原问题的解。但是与分治算法不同,适用于动态规划求加的问题,经分解得到的子问题往往不是相互独立的。(即下一个子阶段的求解是建立在上一个子阶段的解得基础上,进行进一步的求解)动态规划可以通过填表的方...
2019-09-02 15:31:56
150
原创 分治算法
分治算法,大家都知道就是“分而治之”,把一个复杂的问题分解成两个或者更多的相同或类似的子问题,再把子问题分成更小的子问题。。。直到最后子问题可以简单的直接求解,原问题的解就是子问题的解得合并。这个算法看似很简单,难点在于如何分解复杂问题。这个技巧是很多高效算法的基础:二分搜索大整数乘法棋盘覆盖归并排序快速排序线性时间选择最接近点对问题循环赛日程表汉诺塔问题。。。...
2019-09-02 15:21:30
139
原创 Java递归的应用场景
简单来说,递归就是自己调用自己。那么它适合解决什么样的问题呢?各种数学问题:8皇后问题,汉诺塔,阶乘,迷宫问题等各种算法中也会使用到递归,比如快速排序,归并排序,二分查找,分治算法等将用栈解决的问题,转换成有递归代码实现,这样使代码更加简洁我们在使用递归时,也需要注意一些问题。执行一个方法时,就创建一个新的受保护的独立空间(栈空间)方法的局部变量是独立的,不会相互影响。但是如果调...
2019-08-23 18:38:50
658
原创 Java 栈的应用场景
栈的特点就是先进后出,后进先出,分别用push和pop表示进栈和出栈操作。那么栈的应用场景有很多,比如:子程序的调用:在跳往子程序前,会将下个指令的地址存到堆栈中,直到子程序执行完后再将地址取出,以回到原来的程序中。处理递归调用:和子程序的调用类似,只是出了存储下一个指令的地址外,也将参数、区域变量等数据存入堆栈中。逆序输出。表达式的转换[中缀表达式转后缀表达式]与求值二叉树的遍历。...
2019-08-23 10:07:57
2509
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人