- 博客(73)
- 收藏
- 关注
原创 shell脚本字符串截取方法
其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符。-----------------字符串分割赋值给变量--------------------------------------- 字符串分割输出------------------------##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符。%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符。%/* 表示从右边开始,删除第一个 / 号及右边的字符。
2023-11-23 17:58:41
252
原创 Springboot webapi 支持跨域 CORS
前后台分离。这样一来,就都会碰到跨域资源共享CORS的问题1、注解实现在Spring Boot 2中,提供了注解的方式来对CORS跨域访问进行支持。1.1 在方法上注解可以将@CrossOrigin注解在方法上。这样该方法可以被跨域访问。在方法上标注1.2 在Controller上注解也可以对整个Controller上注解。这样整个Controller下的所有方法都支持跨域访问。在Controller上标注1.3 同时注解二者同时注解也可以,此时取的是二者的组
2021-05-24 17:32:45
253
原创 多线程(二) 线程状态
1.线程终止使用退出标志,使线程正常退出,也就是当 run() 方法完成后线程中止。 使用 stop() 方法强行终止线程,但是不推荐使用这个方法,该方法已被弃用。 使用 interrupt 方法中断线程。使用标记终止线程:public class ServerThread extends Thread { //volatile修饰符用来保证其它线程读取的总是该变量的最新的值 public volatile boolean flag = false; @Overr
2021-01-20 17:17:42
298
1
原创 多线程(一) 线程的四种创建方式
1. 什么是并发与并行要想学习多线程,必须先理解什么是并发与并行并行:指两个或多个事件在同一时刻发生(同时发生)。并发:指两个或多个事件在同一个时间段内发生。2. 什么是进程、线程进程:进程是正在运行的程序的实例。进程是线程的容器,即一个进程中可以开启多个线程。比如打开一个浏览器、打开一个word等操作,都会创建进程。线程:线程是进程内部的一个独立执行单元;一个进程可以同时并发运行多个线程;比如进程可以理解为医院,线程是挂号、就诊、缴费、拿药等业务活动...
2021-01-20 15:59:52
643
原创 Java反射机制
什么是Java反射机制? JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为Java的反射机制。反射机制提供了哪些功能? 在运行时判定任意一个对象所属的类 在运行时构造任意一个类的对象; 在运行时判定任意一个类所具有的成员变量和方法; 在运行时调用任意一个对象的方法; 生成动态代理; Java反射机制类:java....
2021-01-13 16:24:52
129
原创 (4) Apache POI 将sheet页面添加到另外表格中
概述: 将一个表格中的所有sheet页添加到另外一个表格中去.package com;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.util.Iterator;import org.apache.poi.ss.usermodel.DateUtil;import org.apache.
2021-01-08 17:35:04
797
原创 (3) 快速学习POI-POI报表导出
1 POI报表导出1.1 需求分析完成当月人事报表的导出:包含当月入职员工信息,离职员工信息1.2 人事报表导出1.2.1 步骤分析构造Excel表格数据 创建工作簿 创建sheet 创建行对象 创建单元格对象 填充数据,设置样式 下载1.2.2 代码实现(1)配置controller@RequestMapping(value = "/export/{month}", method = RequestMethod.GET) public void expo
2021-01-08 15:53:50
231
原创 (2) 快速学习POI-POI的入门操作
1 POI的入门操作1.1 搭建环境<dependencies> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.0.1</version> </dependency> <dependenc
2021-01-08 15:51:59
822
原创 (1) Apache POI 概述
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。结构:HSSF - 提供读写Microsoft Excel格式档案的功能。XSSF - 提供读写MicrosoftExcelOOXML格式档案的功能。HWPF - 提供读写Microsoft Word格式档案的功能。HSLF - 提供读写Microsoft PowerPoint格式档案的功能。HDGF - 提供读写Microsoft ..
2021-01-08 15:42:26
418
原创 Oracle数据库查询锁表及解锁
一、查询哪些表被锁以及查看锁表得会话及操作系统进程ID 其中locked_mode为锁的级别,spid为数据库所在操作系统的进程idselect c.sid, c.serial#, c.username, c.osuser, b.owner, b.object_name, a.locked_mode, p.spid from v$locked_object a, dba_objects b, v$session c, v$process p where a.object_id = b
2020-12-18 16:02:17
760
原创 nohub命令和java -jar启动Spring Boot
目录1.nohub命令启动Spring Boot项目2.java -jar启动Spring Boot项目3.nohub和java -jar的启动区别方法一:直接启动 jar 包方法二:后台启动 jar 包方法三:后台不挂断启动方式四:指定日志输出的启动方式五:指定配置文件启动方式六:指定分配系统资源大小1.nohub命令启动Spring Boot项目nohup java -Xms1024m -Xmx2048m -jar demo-0.0.1-SNAPSHOT.
2020-12-17 18:01:00
3939
原创 Spring Boot---(5) 监控管理
目录一、监控管理1、 步骤2、监控和管理端点二、监管端点测试三、定制端点信息1、修改配置2、访问结果四、Health监控及自定义HealthIndicator1、比如引入redis,就可以在health中监控到redis信息(1)pom文件中引入redis(2)配置redis主机地址(3)访问测试2、自定义健康状态指示器(1)编写一个指示器,实现HealthIndicator接口(2)指示器的名字不能乱叫XXXHealthIndicator..
2020-12-07 16:29:19
128
原创 ORACLE 12C新特性——CDB与PDB
Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的
2020-11-30 14:29:39
380
原创 安装Oracle数据库报SWAP空间不足的处理方法
报错示意图:在安装Oracle的时候,可能因为我们分配的swap空间不够导致安装失败。处理步骤如下:SWAP空间为2G[root@linux01oracle]#freetotalusedfreesharedbufferscachedMem:20390041207260831744022668833660-/+buffers/...
2020-11-30 10:51:23
2125
原创 Linux测试端口的连通性的四种方法
目录方法一、telnet方法二、ssh方法三、curl方法四、wget方法一、telnettelnet为用户提供了在本地计算机上完成远程主机工作的能力,因此可以通过telnet来测试端口的连通性,具体用法格式:telnet ip port说明:ip:是测试主机的ip地址port:是端口,比如80如果telnet连接不存在的端口,那会如下图所示。如果telnet 连接存在端口会出现如下图所示的内容,下图中以80端口为例。方法二、ssh.
2020-11-27 15:59:12
962
1
原创 linux .bash_profile文件详解
全局的是在/etc目录下(/etc/profile)用户个人的是在用户的家目录下(~/.profile)查看:全局:cat /etc/profile个人:cat~/.bash_profile编辑:全局:vi /etc/profile个人:vi ~/.bash_profile...
2020-11-27 14:08:04
13496
原创 Spring Boot---(3)邮件发送
Spring Boot 邮件发送1.导入jar包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> <version>2.2.6.RELEASE</version></dependency>2.配置applicat
2020-11-17 17:13:01
182
1
原创 Spring Boot---(2)定时任务
玩转SpringBoot之定时任务详解阅读目录:序言 一、静态:基于注解 二、动态:基于接口 三、多线程定时任务阅读正文:回到顶部序言使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式:一、基于注解(@Scheduled) 二、基于接口(SchedulingConfigurer) 前者相信大家都很熟悉,但是实际使用中我们往往想从数据库中读取指定时间来动态执行定时任务,这时候基于接口的定时任务就派上用场了。 三、基于注解设定多线程定时任务回.
2020-11-16 16:10:01
213
原创 Spring Boot---(1)异步处理任务
场景:现在需要上传一个Excel表格,数据量几万条,而且,上传解析后还需要进行计算,然后插入数据库。分析:上传和解析,都很简单,但是,这里如果使用同步方式,那么:上传-->解析-->运算-->插入数据库;这个过程,前台的页面都是等待状态的,用户会以为页面卡死了。所以,这里需要做异步处理:1.上传-->返回正在解析的标志;2.解析-->运算-->插入数据库;此时,当用户上传完文件后,页面立马跳转,解析,运算等工作,继续在后台进行,而用户可以不用等待。这里
2020-11-13 17:51:56
262
1
原创 Linux服务器上创建新用户
Linux服务器上创建账户用到useradd命名,一般常用以下命令:$sudo useradd -m -s /bin/bash userName // 在/home目录下新建userName目录$sudo passwd userName//设置密码会提示 Enter new UNIX password: Retype new UNIX password: passwd:password updated successfully 然后用新建的用户...
2020-11-13 11:48:01
2028
原创 分布式消息队列应用场景之异步处理、应用解耦、流量削锋和消息通讯理解分析
摘要:消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka等。消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景。1.异步处理场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种1.串行的方式;2.并行方式。(1)串行方式:将注册信息持久
2020-11-12 14:26:32
657
1
原创 Spring Boot 整合Redis缓存
目录1|0准备工作2|0修改redis,开启远程访问3|0Java代码编写3|1目录结构3|2代码1|0准备工作1.Linux系统2.安装redis(也可以安装docker,然后再docker中装redis,本文章就直接用Linux安装redis做演示) redis下载地址:http://download.redis.io/releases/redis-4.0.14.tar.gz2|0修改redis,开启远程访问找到redis中的redis.conf...
2020-11-11 11:30:37
144
原创 Java Project 项目打包,在main方法中获取指令携带的参数
一、概述java项目有两种架构,一种是 B/S 架构的,一种是 C/S 架构的。对于 B/S 架构来说,我们常见的 java ee 即是 B/S 架构,通常,开发人员会在本地进行开发,然后将项目打包成 war 文件,上传至服务器,供调用。而对于 B/S 架构来说,通常即是里面有个主方法,就是我们常写的 java 项目/程序。通常,开发完之后,将项目打包成 jar 包,随后上传至服务器,供调用。本文,针对后者进行介绍。二、需求描述一个 java 项目,分包存放多个 java 文件,java
2020-10-29 10:04:36
1086
原创 MacBook 通过虚拟机(parallels desktop)连接虚拟机 win 10中的数据库问题
1.一般在MacBook装parallels desktop虚拟机,虚拟机的网络连接都是默认为共享网络,如下图所示需要修改虚拟机的网络连接方式,修改为桥接网络>>WiFi,如下图所示:2.把虚拟机里面数据库监听方式添加ip地址,需要重启生效用在Mac端用telnet ip port 测试虚拟机上数据库的连通性,返回正常可以连接,...
2020-10-15 09:20:43
1977
3
原创 keytool生成ssl证书
使用JDK自带工具keytool生成ssl证书HTTPS简介 超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种网络安全传输协议。具体介绍以前先来介绍一下以前常见的HTTP,HTTP就是我们平时浏览网页时候使用的一种协议。HTTP协议传输的数据都是未加密的,也就是明文,因此使用HTTP协议传输隐私信息非常不安全。HTTP使用80端口通讯,而HT
2020-09-02 14:28:37
873
原创 Oracle数据库中如何设置主键自增策略
在oracle数据库中设置逐渐自增策略的方式有两种:建表: create table stu( sid int primary key, sname varchar(10), sex int ) 1.使用序列实现自增(1)创建序列 create sequence SEQ_Userinf minvalue 1 --最小值 nomaxvalue --不设置最大值 start with 1 -...
2020-08-13 14:33:59
2010
原创 Linux 中shell脚本编写教程
1.变量(1)linux中$#的使用$# 是传给脚本的参数个数$0是脚本本身的名字$1是传递给该shell脚本的第一个参数$2是传递给该shell脚本的第二个参数$@ 是传给脚本的所有参数的列表$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个$$ 是脚本运行的当前进程ID号$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误...
2020-08-12 15:34:56
1028
1
原创 Vue从零开始(1):前端环境搭建
前言Vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue也完全能够为复杂的单页应用提供驱动。本系列将带着大家从零开始快速入门Vue。环境搭建1.安装nvm(Node.js版本管理器)Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它是一个让JavaScript运行在服务端
2020-08-07 14:29:09
173
原创 Vue从零开始(2):使用Vue CLI快速生成项目脚手架
前言上一篇讲到如何搭建前端环境,这一篇我们开始使用Vue CLI来快速生成一个Vue的项目脚手架。目前Vue CLI有两个版本,新版本Vue CLI3对应@vue/cli,老版本Vue CLI2对应vue-cli。这里分别介绍这两个版本如何创建一个项目。首先全局安装这两个的其中一个(看过我第一篇已经安装过的可以忽略掉):$ cnpm install -g @vue/cli$ cnpm install -g vue-cli注意:在同一个环境安装Vue CLI3和Vue CLI2
2020-08-07 14:28:44
164
原创 Vue从零开始(3):创建页面+添加路由+Mock模拟数据
前言本来这篇想讲讲怎么打包项目的,但是刚好最近在做一个后台维护的前端项目,然后想想打包这部分可以往后放一放,可以先通过这个项目讲一讲怎么创建页面、添加路由然后如何使用Mock模拟数据。上一篇大家对于Vue CLI搭建脚手架有了一些了解,这篇介绍一款比较容易上手的企业级中后台前端/设计解决方案Ant Design Pro。它基于Ant Design Vue并提供了一些常用的模板、组件,可以帮助你快速搭建企业级中后台产品原型。创建项目创建一个名为my-project的项目:$ git cl
2020-08-07 14:28:12
463
原创 java 中i++ 和 ++i 的区别
i++和++i是运算符,i++是后缀递增du的意思,++i是前缀递增的zhi意思。1、daoi++是后缀递增的意思,i++是先进行表达式运算,再进行自增运算。把i++的运算过程拆分开,等效于i=i+1可以看到运算结果是一致的。x = i ++; //先让x变成i的值1,再让i加12、++i是前缀递增的意思,++i是先进行自增或者自减运算,再进行表达式运算。运算结果可以发现,仅从i的值来看,++i和i++最终的i值是一样的,都是i自增加了1。x = ++i; //先让i加1, 再让...
2020-08-07 14:24:16
441
原创 多线程线程执行先后顺序
1.Java 提供了三种创建线程的方法:通过实现 Runnable 接口; 通过继承 Thread 类本身; 通过 Callable 和 Future 创建线程。2.线程执行先后顺序场景:有三个线程t1、t2、t3。确保三个线程t1执行完后t2执行,t2执行完成后t3执行。方法1:thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。 1 .
2020-08-07 11:46:53
4404
原创 Spring Boot项目中防止SQL注入
1.首先是原始的jdbc连接数据库,手写sql引起的SQL注入问题1.不使用PreparedStatement的set方法设置参数(效果跟Statement相似,相当于执行静态SQL)String param = "'test' or 1=1";String sql = "select file from file where name = " + param; // 拼接SQL参数PreparedStatement preparedStatement = connection.prepare
2020-08-06 12:53:21
4033
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人