
Linux 中如何切换相同程序的不同版本
几天前,我们曾经讨论如何 如何在不同的 PHP 版本之间进行切换 。在那篇文章中,我们使用 update-alternatives 命令实现从一个 PHP 版本切换到另一个 PHP 版本。也就是说, update-alternatives 命令可以将 系统范围 system wide 默认使用的 PHP 版本设置为我们希望的版本。通俗的来说,你可以通过 update-alternatives 命...
2024-01-10
详解如何使用Docker快速部署ELK环境(最新5.5.1版本)
在Linux服务器上安装Docker以后,Pull相关的官方Docker镜像:docker pull docker.elastic.co/elasticsearch/elasticsearch:5.5.1docker pull docker.elastic.co/kibana/kibana:5.5.1docker pull docker.elastic.co/logstash/logstash:5.5.1启动Elastic Search容器:docker run -p 9200:9200 -e "http....
2024-01-10
Docker如何部署您的第一个应用程序
上一篇,您已经完成了Docker Desktop安装,并启用了Kubernetes,接下来就可容器化部署应用程序了。通常,开发工作流包括如下几点:1、首先创建Docker镜像,为应用程序的每个组件创建和测试单个容器。2、将容器和所支持的基础设施组装成一个完整的应用程序,可以用Docker stack file或者Kubernetes的YAML来实...
2024-01-10
Linux系统下virtuoso数据库安装与使用详解
最近在调研关联数据的一些东西,需要用到rdf数据库,所以接触了virtuoso数据库。安装的坑其实并不多,之前在windows 10上安过一次。这次在ubuntu 18.04上安装一下,其他的linux发行版安装的流程也差不多。virtuoso数据库的下载与使用开源版本的virtuoso数据库可以在sourceforge下载。我用的是7.25版本。建议下...
2024-01-10
vue+rem自定义轮播图效果
使用vue+rem自定义轮播图的实现,供大家参考,具体内容如下单位使用rem进行页面布局,在动态计算轮播图整体宽度时,需要把px转换成rem,挺麻烦的。效果如下:如果当前图片不是第一张和最后一张,刚好可以看到当前图片上一张和下一张的一部分。具体代码如下<template> <div class="constructionUp">...
2024-01-10
ES11屡试不爽的新特性,你用上了几个
ES11规范于今年的年初完成,引入了许多新标准,本文讲着重研究下其中几个实用且有趣的新标准特性抢先知:私有变量Promise.allSettledBigInt 全新的数据类型Nullish Coalescing Operator 空位合并运算符Optional Chaining Operator 可选链运算符Dynamic Import 动态导入String.prototype.matchAll 新增matchAllglobalThis 新增全局...
2024-01-10
Struts2实现多文件上传功能
前台form 表单:设置method=post,enctype=multipart/form-data。struts2在原有的上传解析器继承上做了进一步封装,更进一步简化了文件上传。Action需要使用3个属性来封装该文件域的信息:(1)类型为File的*属性封装了该文件域对应的文件内容; (2)类型为String的***FileName属性封装了该文件域对应的文件的文件...
2024-01-10
Java单例模式简单示例
本文实例讲述了Java单例模式。分享给大家供大家参考,具体如下:在实际开发的时候会有一些需求,在某个类中只能允许同时存在一个对象。这时就需要用到单例模式。代码如下package org.aaa;public class ex { private static ex e; public static ex getEx() { if (e == null) { e=new ex(); } return e; } private ...
2024-01-10
mongo分布式锁Java实现方法(推荐)
一、分布式锁使用场景:代码部署在多台服务器上,即分布式部署。多个进程同步访问一个共享资源。二、需要的技术:数据库:mongojava:mongo操作插件类 MongoTemplate(maven引用),如下:<!--mongodo开始--> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> ...
2024-01-10
JNI实现最简单的JAVA调用C/C++代码
JNI,是Java Native Interface的简称,中文是“Java本地调用”。通过这种技术可以做到以下两点:Java程序中的函数可以调用Native语言写的函数,Native一般指的是C/C++编写的函数。Native程序中的函数可以调用Java层的函数,也就是说在C/C++程序中可以调用Java的函数。本篇博客带给童鞋们以下内容,学习内容...
2024-01-10
Java装饰器设计模式_动力节点Java学院整理
定义:动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方式达到功能的扩充显得更为灵活。设计初衷:通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势必生成很多子类,增加系统的复杂性,同时,使用继承实现功能拓展,我们必须可...
2024-01-10
Spring Batch入门教程篇
SpringBatch介绍:SpringBatch 是一个大数据量的并行处理框架。通常用于数据的离线迁移,和数据处理,⽀持事务、并发、流程、监控、纵向和横向扩展,提供统⼀的接⼝管理和任务管理;SpringBatch是SpringSource和埃森哲为了统一业界并行处理标准为广大开发者提供方便开发的一套框架。官方地址:github.com/spr...
2024-01-10
SpringMVC4 + MyBatis3 + SQL Server 2014整合教程(含增删改查分页)
前言说起整合自然离不开ssm,我本身并不太喜欢ORM,尤其是MyBatis,把SQL语句写在xml里,尤其是大SQL,可读性不高,出错也不容易排查。开发环境idea2016、SpringMVC4、Mybatis3项目结构SSM整合1、pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://...
2024-01-10
Java concurrency线程池之线程池原理(三)_动力节点Java学院整理
线程有5种状态:新建状态,就绪状态,运行状态,阻塞状态,死亡状态。线程池也有5种状态;然而,线程池不同于线程,线程池的5种状态是:Running, SHUTDOWN, STOP, TIDYING, TERMINATED。线程池状态定义代码如下:private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0));private static final int COUNT_BITS = Integer.S...
2024-01-10
java 虚拟机中对象访问详解
java 虚拟机中对象访问详解对象访问会涉及到Java栈、Java堆、方法区这三个内存区域。如下面这句代码:Object objectRef = new Object(); 假设这句代码出现在方法体中,"Object objectRef” 这部分将会反映到Java栈的本地变量中,作为一个reference类型数据出现。而“new Object()”这部分将会反映到Jav...
2024-01-10
深入理解Java垃圾回收机制以及内存泄漏
前言在segmentfault上看到一个问题:java有完善的GC机制,那么在java中是否会出现内存泄漏的问题,以及能否给出一个内存泄漏的案例。本问题视图给出此问题的完整答案。垃圾回收机制简介在程序运行过程中,每创建一个对象都会被分配一定的内存用以存储对象数据。如果只是不停的分配内存,那么...
2024-01-10
在Java的MyBatis框架中建立接口进行CRUD操作的方法
以接口操作的方式编程一般来讲,我们建立映射SQL接口的类时通常会这样: public static void testBasicQuery(int id) { SqlSession session = MybatisUtils.getSqlSession(); try { /* * 此处的david.mybatis.demo.IVisitorOperation.basicQuery必须和下图中配置里面的namespace对应 */ Visitor vi...
2024-01-10
java使用listIterator逆序arraylist示例分享
思路分析:要逆序遍历某个列表,首先要获得一个ListIterator对象,利用for()循环,以ListIterator类的hasNext()方法作为判断条件,通过循环执行ListIterator类的next()方法将游标定位到列表结尾,然后在另一个for循环中,以ListIterator类的hasPrevious()方法作为判断条件,通过ListIterator类的previous()方法逆序输出列表...
2024-01-10
Java实现验证码具体代码
这里实现我使用到了struts2模拟一个登录功能来验证java实现的验证码功能。Java实现验证码的步骤:1、创建RandomImageGenerator.java类,该类实现验证码图片的生成2、创建一个servlet类,RandomImageServlet.java,将生成的验证码输出到页面3、创建一个Action类,LoginAction.java,控制登录4、配置struts.xml一个web.xml文...
2024-01-10
JavaEE实现文件下载
我们先来看一个最简单的文件下载的例子: 代码如下: package com.yyz.response; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServle...
2024-01-10
