
java相关
文章平均质量分 60
java相关知识内容,比如maven等
黑夜中坚持
这个作者很懒,什么都没留下…
展开
-
一文理解BIO/NIO/AIO
BIO(blocking io)定义同步并堵塞(传统堵塞型): 服务器实现模式为一个线程处理一个请求(连接). 即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的开销.NIO(non-blocking io)定义同步非堵塞.服务器实现模式为一个线程处理多个请求(连接). 即客户端发送的连接请求都会注册到多路复用器上.多路复用器轮询到有IO请求的连接就进行处理.AIO(Asynchronous io 目前用的少,还不太成熟)异..原创 2021-07-22 17:02:44 · 335 阅读 · 0 评论 -
JavaIO文件输出输出详解
java.io.FIle类文件或目录路径名的抽象表示形式.可以使用File类对文件或文件夹进行操作,比如:创建一个新的文件/文件夹删除文件/文件夹获取文件/文件夹判断文件/文件夹是否存在对文件夹进行遍历获取文件的大小注: File类是一个与操作系统无关的类,任何操作系统都可以使用这个类中的方法....原创 2021-07-11 12:36:46 · 2504 阅读 · 3 评论 -
使用阿里云代理仓库解决maven中导入不了jar包的问题
有的时候依赖国外人开发的 一些jar包,在maven中导入时由于网速过慢等原因,导入失败,这时可以使用阿里云的代理仓库,从阿里云代理仓库中下载所需的jar包,速度飞快。只需在xml文件中导入以下repositories标签中的代码即可<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaL原创 2021-07-09 15:25:02 · 759 阅读 · 0 评论 -
动态代理和静态代理
动态代理和静态代理都是代理.那什么是代理模式呢?代理模式是指,为其他对象提供一种代理以控制这个对象的访问.在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户类和目标对象之间起到中介的作用.换句话说,使用代理对象,是为了在不修改目标对象的基础上,增强主业务逻辑(即代理对象可以在目标对象的基础上增加一些新的功能).客户端真正想要访问的对象是目标对象,但是客户类真正可以访问的对象是代理对象,客户类对目标对象的访问是通过访问代理来实现的.当然,代理类和目标类要实现同一个接口.例如:原创 2021-07-07 19:08:23 · 394 阅读 · 1 评论 -
线程池+HttpClient连接池读取指定目录下的所有内容作为参数下载数据
由于工作需要,希望读取文件中的数据作为参数,调用API,返回结果存入到数据库或者excel文件中,如果使用单线程以及File包,如下代码:File file = new File("文件路径");InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(template[i]), encoding);BufferedReader bufferedReader = new BufferedReader(原创 2021-07-07 19:06:28 · 1252 阅读 · 0 评论 -
java反射机制及类加载过程
在讲java反射机制之前,先了解下静态语言和动态语言.动态语言:是一类在运行时可以改变其结构的语言.在运行时代码可以根据某些条件改变自身结构.例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其结构上的改变.比如动态语言有: Python、PHP、C#、JavaScript、Object-C静态语言:和动态语言相对,在运行时结构不可变的语言.比如静态语言有:Java、C、C++.虽然Java不是动态语言,但是Java可以被称之为“准动态语言”,原因就在于Java的反射机制可.原创 2021-07-05 00:52:54 · 375 阅读 · 0 评论 -
http、https(加密解密、签名验签、ca证书签发机构).看完十来篇文章的总结
加密解密对称加密加密和解密的密钥是同一个.优点: 加密速度快缺点: 密钥的安全问题.如果通过传输的方式传输密钥,那么和传递消息一样可能会被劫持,不安全.如果直接在主机上写入密钥,那么客户端机器上的密钥可能会被黑客获取,从而获取加密的信息内容.(服务器的安全性比较高,不容易被获取).非对称加密加密和解密的密钥不是同一个.一般使用公钥加密,私钥解密.这样即使黑客获取客户端的公钥,也无法获取信息的内容,因为需要服务器的私钥进行解密.优点: 安全性高缺点: 加密速度慢...原创 2021-06-29 01:41:07 · 759 阅读 · 1 评论 -
date格式数据前端界面时间显示包括时间以及时区问题解决
背景: mysql数据库表时间类型为datetime,在实体类中时间类型为date格式在前端界面显示如下:但是只想获取日期数据,其他数据不想要。解决办法如下:方法1:@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")private Date findTime;方法2:前端使用substr(0,10)函数提取日期(猜测时区问题需要另外处理,否则可能会由问题,还未验证。)dataForm.rdnsEntities[0].time.s原创 2021-06-25 11:05:13 · 1443 阅读 · 1 评论 -
跨域问题的解决
没有配置跨域,导致浏览器提示在A域名下不可以访问B域名的api,这样的错误很好解决,只需要在后端加入cors配置,就可以解决这类跨域问题,我们在springmvc的java配置中加入以下代码即可package com.yonyou.threatIntelligence.cyber_threat_gateway.config;import org.springframework.context.annotation.Bean;import org.springframework.context.a..原创 2021-06-24 01:06:09 · 341 阅读 · 0 评论 -
使用alibaba gateway但是不能路由成功问题的解决
gateway网关的重要作用之一便是进行路由转发工作。经常遇到转发失败的问题。比如前端配置如下: // api接口请求地址 window.SITE_CONFIG['baseUrl'] = 'http://localhost:90/api';gateway的application.yml配置如下:server: port: 90spring: application: name: threat-gateway cloud: gateway: routes:原创 2021-06-24 00:24:04 · 5206 阅读 · 3 评论 -
ASCII编码、GB2312编码、Unicode编码、UTF-8编码
ASCII编码(使用一个字节编码)ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0到9、标点符号,以及在美式英语中使用的特殊控制字符。其中最后一位用于奇偶校验。问题:ASCII是单字节编码,无法用来表示中文(中文编码至少需要2个字节),所以,中国制定了GB2312编码,用来把中文编进去。但世界上有许多不同的语言,所以需要一种统一的编码。注: .原创 2021-06-01 18:07:22 · 2671 阅读 · 0 评论 -
windows+python2.7环境安装MySQLdb
pip install wheel去这个网站查找whl格式的MYSQL-pythonhttp://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python下载对应版本:MySQL_python‑1.2.5‑cp27‑none‑win_amd64.whl在下载目录进入cmd,执行pip install MySQL_python‑1.2.5‑cp27‑none‑win_amd64.whl多python版本环境可以指定相关版本的pythonpython2原创 2021-05-24 17:39:46 · 189 阅读 · 0 评论 -
linux系统防火墙开放端口用于在其他机器上访问
# 安装防火墙yum install firewalld firewalld-config# 开启防火墙systemctl start firewalld # 查看开放的端口firewall-cmd --list-all# 开放8080端口,并持久化firewall-cmd --add-port=8080/tcp --permanent# 重启防火墙firewall-cmd --reload# 查看机器ipifconfig# 通过ip:开放的端口号即可在其他机器上访问...原创 2021-05-20 16:35:17 · 407 阅读 · 0 评论 -
幂等性的解释及解决办法
什么是幂等性执行一次和执行多次的结果是一致的.对于接口幂等性而言,就是用户对于同一操作发起的一次请求和多次请求的结果是一致的,不会因为多次点击而产生了副作用.比如支付场景中,用户购买了商品支付扣款成功,但是返回结果时网络异常,此时扣款成功,用户再次点击按钮时再次扣款返回结果成功,有两条支付流水,这就没有保证接口的幂等性.什么情况下需要防止没有保证幂等性的情况用户多次点击按钮用户页面回退再提交微服务互相调用,由于网络问题,导致请求失败.feign触发重试机制幂等解决方案之tok..原创 2021-03-27 21:37:51 · 446 阅读 · 0 评论 -
feign远程调用丢失请求头问题解决
背景微服务调用的时候请求不会传递参数.比如调用方服务请求头中有cookie存放sessionId,而被调用方服务没有请求头,从而没有cookie信息,也就不能根据cookie中存放的sessionId获取session信息,影响后续操作.解决办法通过实现RequestInterceptor接口,完成对所有的Feign请求,传递请求头和请求参数。本质是通过ThreadLocal线程共享变量实现.代码实现package com.kenai.gulimall.order.feign;i..原创 2021-03-27 17:16:40 · 1233 阅读 · 0 评论 -
单点登录(SSO)原理
什么是单点登录单点登录,即SSO(Single Sign On),是指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统单点登录实现原理当访问某个系统时,先从session中获取用户信息,如果为null,则自动跳转到登录服务器(url中带上系统1浏览器的访问路径)进行登录,登录成功后,生成一个token,将token:用户信息放入到redis缓存中,并将token_id:token存入登录服务器的cookie中,然后重定向到系统1浏览器(带上token).系统1浏览器..原创 2021-03-24 10:02:38 · 2953 阅读 · 0 评论 -
分布式会话解决方案之SpringSession及session的redis缓存序列化和修改cookie域名
分布式环境下的session共享问题分布式环境下的session共享解决方案方案一: session同步(复制)优点tomcat原生支持,只需要修改配置文件缺点session同步需要数据传输,占用大量带宽任意一台服务器保存的session数据都是所有服务器的session数据总和,占用内存较大方案二: 将session数据存储在客户端优点将数据存储在客户端,在需要的时候直接从客户端获取,也就没有了分布式session的问题节省服务器端资源缺点数据存放在客户端的c.原创 2021-03-23 17:28:12 · 695 阅读 · 0 评论 -
JUC(java.util.concurrent)处理并发编程工具包
线程的创建方式继承Threadpackage thread.ThreadCreate;public class ExtendThread { public static void main(String[] args) { System.out.println("main...start..."); Thread thread = new Thread01(); thread.start(); System.out.pri.原创 2021-03-21 15:35:11 · 146 阅读 · 0 评论 -
使用springCache简化缓存开发
导入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifact..原创 2021-03-17 21:11:32 · 138 阅读 · 0 评论 -
缓存数据一致性(缓存和数据库数据一致性)解决方案
缓存数据一致性解决方案之双写模式(写数据库的同时把缓存中的数据也改了)解决脏读方法: 加读写锁缓存数据一致性解决方案之失效模式(在修改数据库的同时删除缓存数据,下次请求时从数据库获取)可见,最后读缓存的时候由于写db-2没有操作成功,所以读取的数据为老数据,更新缓存的时候会把老数据更新上去,而不是新数据.解决办法: 加读写锁缓存数据一致性解决方案总结阿里中间件Canal解决缓存数据一致性谷粒商城项目/一般的缓存数据一致性解决方案缓存的所有数据都有过期时间,数..原创 2021-03-17 15:54:04 · 359 阅读 · 0 评论 -
maven配置阿里云镜像及jdk1.8编译项目
通过mvn --version查看maven安装目录修改settings.xml<!-- 配置阿里云镜像--><mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>.原创 2021-02-19 20:29:48 · 558 阅读 · 0 评论