-
Java程序优化之替换swtich
所属栏目:[Java] 日期:2020-12-15 热度:108
关键字switch语句用于多条件判断,功能类似于if-else语句,两者性能也差不多,不能说switch会降低系统性能。在绝大部门情况下,switch语句还是有性能提升空间的。 但是在项目代码中,如果switch的case很多,然后代码也就多了,感觉和if-else差不多呢,总在想[详细]
-
来说说缓存穿透、缓存击穿、缓存雪崩都是什么?怎么解决?
所属栏目:[Java] 日期:2020-12-15 热度:154
前言 看到题目就知道了,这又是我在面试中遇到的,最近面试,把我的博文质量感觉都提上来了。面一次试感觉够我总结一周的,但还是每次都能遇到知识盲点,那以后就当面试总结是个扫盲的过程吧。 缓存穿透 面试的时候就被问到了这个问题,具体描述就是,正常的[详细]
-
java视频格式转换
所属栏目:[Java] 日期:2020-12-15 热度:125
项目中需要对各种视频格式转码为mp4格式,试了好多办法,最后使用 ffmpeg 工具完美转码,ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等) 链接:https://pan.baidu.com/s/1qDcHqCLa3eKgJX2gGtsoNg 提取码:4bdc? package com.dragon[详细]
-
java视频流的断点续传功能
所属栏目:[Java] 日期:2020-12-15 热度:59
项目中需要实现浏览器中视频的拖动问题解决 /** * 视频文件的断点续传功能 * @param path 文件路径 * request request * response response */ public void voidPlay(String path,HttpServletRequest request,HttpServletResponse response) { BufferedInput[详细]
-
在IDEA上 使用maven进行打包时报错: Failed to execute goal org
所属栏目:[Java] 日期:2020-12-15 热度:117
报错内容: Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.2:jar (attach-javadocs) on project SLXFWZ: MavenReportException: Error while creating archive:? Exit code: 1 - ????: δ????????? FieldFill.INSERT ? ???: ?[详细]
-
从Trie树到双数组Trie树
所属栏目:[Java] 日期:2020-12-15 热度:92
Trie树 原理 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,能在常数时间O(len)内实现插入和查询操作,是一种以空间换取时间的数据结构,广泛用于词频统[详细]
-
ELK日志套件安装与使用
所属栏目:[Java] 日期:2020-12-15 热度:56
1 、 ELK 介绍 ELK 不是一款软件,而是elasticsearch + Logstash+ kibana 三款开源软件组合而成的日志收集处理套件,堪称神器。其中Logstash负责日志收集,elasticsearch负责日志的搜索、统计,而 kibana 则是 ES 的展示神器,前端炫丽,点几下鼠标简单配置[详细]
-
一起读源码之zookeeper(1) -- 启动分析
所属栏目:[Java] 日期:2020-12-15 热度:98
从本文开始,不定期分析一个开源项目源代码,起篇从大名鼎鼎的zookeeper开始。 为什么是zk,因为用到zk的场景实在太多了,大部分耳熟能详的分布式系统都有zookeeper的影子,比如hbase,storm,dubbo,kafka等等,另外前面提到的RPC框架原理与实现也用到了zoo[详细]
-
java内嵌jetty服务器
所属栏目:[Java] 日期:2020-12-15 热度:108
有的时候需要将一个简单的功能封装为服务,相比python使用flask、web.py的简洁,使用java-web显得太重量级,幸好,我们可以直接在java项目中使用jetty来搭建简易服务 ? 1、pom.xml加入jetty依赖 dependencygroupIdorg.eclipse.jetty/groupIdartifactIdjetty-[详细]
-
Java 静态代理与动态代理
所属栏目:[Java] 日期:2020-12-15 热度:200
代理模式 设想你的项目依赖第三方,但是你需要对其接口做一些数据检验、性能数据记录、异常处理等,合适的方法就是使用设计模式里的代理模式。 代理模式是常用的java设计模式,代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把[详细]
-
Spring Boot配置文件放在jar外部
所属栏目:[Java] 日期:2020-12-15 热度:50
Spring Boot程序默认从application.properties或者application.yaml读取配置,如何将配置信息外置,方便配置呢? 查询官网,可以得到下面的几种方案: 通过命令行指定 SpringApplication会默认将命令行选项参数转换为配置信息 例如,启动时命令参数指定: jav[详细]
-
Solr vs. Elasticsearch谁是开源搜索引擎王者
所属栏目:[Java] 日期:2020-12-15 热度:50
当前是云计算和数据快速增长的时代,今天的应用程序正以 PB 级和 ZB 级的速度生产数据,但人们依然在不停的追求更高更快的性能需求。随着数据的堆积,如何快速有效的搜索这些数据,成为对后端服务的挑战。 本文,我们将比较业界两个最流行的开源搜索引擎, So[详细]
-
Latex 公式在线可视化编辑器
所属栏目:[Java] 日期:2020-12-15 热度:195
寻觅 最近的一个demo需要用到Latex公式在线编辑器,从搜索引擎一般会得到类似http://latex.codecogs.com/eqneditor/editor.php的结果,这个编辑器的问题在于使用成本高,并且界面不美观。 继续探寻,发现了wiris Editor: 支持mathml和latex: 那么就它了![详细]
-
从编辑距离、BK树到文本纠错
所属栏目:[Java] 日期:2020-12-15 热度:79
搜索引擎里有一个很重要的话题,就是文本纠错,主要有两种做法,一是从词典纠错,一是分析用户搜索日志,今天我们探讨使用基于词典的方式纠错,核心思想就是基于编辑距离,使用BK树。下面我们来逐一探讨: 编辑距离 1965年,俄国科学家Vladimir Levenshtein[详细]
-
RPC框架原理与实现
所属栏目:[Java] 日期:2020-12-15 热度:75
RPC,全称 Remote Procedure Call(远程过程调用),即调用远程计算机上的服务,就像调用本地服务一样。那么RPC的原理是什么呢?了解一个技术最好的思路就是寻找一个该类型麻雀虽小五脏俱全的开源项目,不负所期,找到一个轻量级分布式 RPC 框架,本文从这个[详细]
-
使用SpringBoot开发REST服务
所属栏目:[Java] 日期:2020-12-15 热度:91
本文介绍如何基于Spring Boot搭建一个简易的REST服务框架,以及如何通过自定义注解实现Rest服务鉴权 搭建框架 pom.xml 首先,引入相关依赖,数据库使用mongodb,同时使用redis做缓存 注意,这里没有使用tomcat,而是使用undertow dependencygroupIdorg.sprin[详细]
-
基于spring security 实现前后端分离项目权限控制
所属栏目:[Java] 日期:2020-12-15 热度:71
前后端分离的项目,前端有菜单(menu),后端有API(backendApi),一个menu对应的页面有N个API接口来支持,本文介绍如何基于spring security实现前后端的同步权限控制。 实现思路 还是基于Role来实现,具体的思路是,一个Role拥有多个Menu,一个menu有多个b[详细]
-
Spring boot web程序static资源放在jar外部
所属栏目:[Java] 日期:2020-12-15 热度:186
spring boot程序的static目录默认在resources/static目录, 打包为jar的时候,会把static目录打包进去,这样会存在一些问题: static文件过多,造成jar包体积过大 临时修改不方便 查看官方文档,可以发现,static其实是可以外置的。 方法1 直接修改配置文件[详细]
-
Spring Security 架构与源码分析
所属栏目:[Java] 日期:2020-12-15 热度:124
Spring Security 主要实现了Authentication(认证,解决who are you? ) 和 Access Control(访问控制,也就是what are you allowed to do?,也称为Authorization)。Spring Security在架构上将认证与授权分离,并提供了扩展点。 核心对象 主要代码在 sprin[详细]
-
Spring boot国际化
所属栏目:[Java] 日期:2020-12-15 热度:68
国际化主要是引入了MessageSource,我们简单看下如何使用,以及其原理。 1.1 设置资源文件 在 properties新建i18n目录 新建message文件: messages.properties error.title=Your request cannot be processed messages_zh_CN.properties error.title=您的请[详细]
-
Docker Client (another java docker client api)
所属栏目:[Java] 日期:2020-12-15 热度:171
前一篇提到了docker-java,这里介绍另一个docker client 库,Docker Client 版本兼容 兼容17.03.1~ce - 17.12.1~ce (点 [here][1]查看). 下载jar包 点击 [via Maven][maven-search]搜索和下载最新的jar包. pom.xml配置如下: dependency groupIdcom.spotify/[详细]
-
Spring boot自定义启动字符画(banner)
所属栏目:[Java] 日期:2020-12-15 热度:57
spring boot项目启动时会打印spring boot的ANSI字符画,可以进行自定义。 如何自定义 实现方式非常简单,我们只需要在Spring Boot工程的/src/main/resources目录下创建一个banner.txt文件,然后将ASCII字符画复制进去,就能替换默认的banner了。 █████[详细]
-
Jhipster Registry(Eureka Server) Docker双向联通与高可用部
所属栏目:[Java] 日期:2020-12-15 热度:125
使用Compose来编排这个Eureka Server集群: peer1配置: server: port: 8761eureka: instance: hostname: eureka-peer-1 server: # see discussion about enable-self-preservation: # https://github.com/jhipster/generator-jhipster/issues/3654 enable-s[详细]
-
Docker+Jenkins持续集成环境(4):使用etcd+confd实现容器服务注册
所属栏目:[Java] 日期:2020-12-15 热度:79
前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇到一个问题,jenkins构建出来的镜像部署后,需要通过ip:port去访问,有什么更好的方法吗?肯定是通过域名啊!前提是你注册一个域名,或者修改机器hosts文[详细]
-
使用Spring访问Mongodb的方法大全——Spring Data MongoDB查询指
所属栏目:[Java] 日期:2020-12-15 热度:164
1.概述 Spring Data MongoDB 是Spring框架访问mongodb的神器,借助它可以非常方便的读写mongo库。本文介绍使用Spring Data MongoDB来访问mongodb数据库的几种方法: 使用Query和Criteria类 JPA自动生成的查询方法 使用@Query 注解基于JSON查询 在开始前,首[详细]