随笔分类 - java
java相关
摘要:
Base64图片编码原理,base64图片工具介绍,图片在线转换Base64
DataURI 允许在HTML文档中嵌入小文件,可以使用 img 标签或 CSS 嵌入转换后的 Base64 编码,减少 HTTP 请求,加快小图像的加载时间。
经过Base64 编码后的文件体积一般比源文件大 30% 左右。
// Base64 在CSS中的使用
.box{
background-image: url("data:image/jpg;base64,/9j/4QMZR...");
}
// Base64 在HTML中的使用
阅读全文
摘要:抓取https网页时,报错sun.security.validator.ValidatorException: PKIX path building failed 解决办法
原因是https证书问题,java抓取时忽略掉证书才能访问。jsoup在调用前先执行下以下忽略证书请求就可以了。
阅读全文
摘要:jar包读取jar包内部和外部的配置文件,springboot读取外部配置文件的方法
用系统属性System.getProperty("user.dir")获得执行命令的目录(网上很多说是jar包的当前目录是错误的)
注:如果在docker里面运行在jar同目录下放config目录也是读取不到的,Dockerfile里需要加上一句:ADD config/ /config/
然后读出来的路径是://config/application.properties
springboot 有读取外部配置文件的方法,如下优先级:
第一种是在执行命令的目录下建config文件夹。(在jar包的同一目录下建config文件夹,执行命令需要在jar包目录下才行),然后把配置文件放到这个文件夹下。
第二种是直接把配置文件放到jar包的同级目录。
第三种在classpath下建一个config文件夹,然后把配置文件放进去。
第四种是在classpath下直接放配置文件。
springboot默认是优先读取它本身同级目录下的一个config/application.properties 文
阅读全文
摘要:Spring SpringBoot和SpringCloud的关系
Spring Cloud 是完全基于 Spring Boot 而开发,Spring Cloud 利用 Spring Boot 特性整合了开源行业中优秀的组件,整体对外提供了一套在微服务架构中服务治理的解决方案。
使用Spring Boot Actuator解决了单个Spring Boot的监控问题,使用Spring Boot Admin解决了整个集群监控的问题。
Spring Boot + Docker + Jenkins 会将 Spring Boot 项目的部署做得更简单化、智能化。
springboot做微服务,集群的话用spring cloud + Spring Boot Admin监控
阅读全文
摘要:java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况
阅读全文
摘要:Java国际化号码验证方法,国内手机号正则表达式
String regex = "^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(166)|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\\d{8}$";
国际化号码,先判断区号为国内的+86再用国内的号码正则表达式,国外的再逐个添加规则
阅读全文
摘要:javamail邮件Multipart支持同时发text和html混合消息alternative纯文本与超文本共存
multipart/mixed:附件。
multipart/related:内嵌资源。
multipart/alternative:纯文本与超文本共存。
阅读全文
摘要:将jar包制作成docker镜像
1、准备可运行jar包
2、建立Dockerfile文件
文件内容:
FROM java:8
VOLUME /tmp
ADD xxx-sendemail-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
阅读全文
摘要:javamail发送邮件及错误解决方法javax.mail.AuthenticationFailedException: failed to connect, no password specified?
一、继承Authenticator
二、重写protected PasswordAuthentication getPasswordAuthentication() {}方法,获取到传入的usernam,password
三、new对象的时候传入usernam,password :authenticator = new MailAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
阅读全文
摘要:golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍
python,封装好的框架scrapy,其他常用,urllib2,解析用的包的beautifulsoup,配合selenium。以上是随便爬爬。
大型的分布式爬取,难点一个在反反爬,动态ip池,接打码,爬虫行为模式控制,是个体力活;
另一个在爬取和落盘的效率,所以到了一定规模分布式一般用go/java/scala多
用python的scrapy,所有平台都能跑,scrapy是主流方案,各种周边都很成熟,爬视频python有现成的包
python的pyspider框架比较完善,抓取大量网站,解析大量页面时做分布式和后台管理都比较方便
java爬虫配合jsoup也是不错的选择
nodejs主要框架有cheerio、crawler、spiderman
go语言爬虫框架:gocolly/colly,goquery,colly,chromedp,webloop,go_spider,Pholcus
阅读全文
摘要:selenium-java web自动化测试工具抓取百度搜索结果实例
这种方式抓百度的搜索关键字结果非常容易
抓长尾关键词,根据热门关键词去抓更多内容可以用
抓google,百度的这种内容容易给屏蔽,用这种就不会了
阅读全文
摘要:Spring boot学习1 构建微服务:Spring boot 入门篇
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适)。
使用spring boot好处是简单、快速、方便!
使用spring boot可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用sping boot非常适合构建微服务。
阅读全文
摘要:2018年Android面试题含答案--适合中高级1、Activity生命周期?
onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDetroy()
2、Service生命周期?
service 启动方式有两种,一种是通过startService()方式进行启动,另一种是通过bindService()方式进行启动。不同的启动方式他们的生命周期是不一样.
view的事件分发和view的工作原理
Android自定义view,我们都知道实现有三部曲,onMeasure(),onLayout(),onDraw()。View的绘制流程是从viewRoot的perfromTraversal方法开始的。它经过measure,layout,draw方法才能够将view绘制出来。其中measure是测量宽高的,layout是确定view在父容器上的摆布位置的,draw是将view绘制到屏幕上的。
onDraw
该方法就是将view绘制到屏幕上。分以下几步
绘制背景,
绘制自己,
绘制child,
阅读全文
摘要:ESB(Enterprise Service Bus)企业服务总线介绍
ESB全称为Enterprise Service Bus,即企业服务总线。
它是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。
在探讨信息系统的SOA架构概念时,一个非常重要的概念是:企业服务总线(ESB)。可以说,企业服务总线也是SOA的核心构成部分。要真正实现应用架构完善的SOA结构,简化SOA构件间的关系,就一定要建设好信息系统的企业级服务总线。
阅读全文
摘要:远程服务调用RPC框架介绍,微服务架构介绍和RPC框架对比,dubbo、SpringClound对比
远程服务调用RPC框架介绍,RPC简单的来说就是像调用本地服务一样调用远程服务。netty就是解决RPC网络传输的。
阅读全文
摘要:centos7和centos6通过yum安装JDK1.8
查看JDK的安装路径# java -version
centos6或centos7都可用的 yum安装jdk
安装之前先检查一下系统有没有自带open-jdk
检索1.8的列表:yum list java-1.8*
安装1.8.0的所有文件:yum install java-1.8.0-openjdk* -y
阅读全文
摘要:java实现 HTTP/HTTPS请求绕过证书检测代码实现
SSL与TLS的区别以及介绍,SSL是Netscape公司所提出的安全保密协议,在浏览器(如Internet Explorer、Netscape Navigator)和Web服务器(如Netscape的Netscape Enterprise Server、ColdFusion Server等等)之间构造安全通道来进行数据传输,SSL运行在TCP/IP层之上、应用层之下,为应用程序提供加密数据通道,它采用了RC4、MD5以及RSA等加密算法,使用40 位的密钥,适用于商业信息的加密。
同时,Netscape公司相应开发了HTTPS协议并内置于其浏览器中。
HTTPS实际上就是HTTP over SSL,它使用默认端口443,而不是像HTTP那样使用端口80来和TCP/IP进行通信。
HTTPS协议使用SSL在发送方把原始数据进行加密,然后在接受方进行解密,加密和解密需要发送方和接受方通过交换共知的密钥来实现,因此,所传送的数据不容易被网络黑客截获和解密。 然而,加密和解密过程需要耗费系统大量的开
阅读全文
摘要:CentOS7使用yum命令安装Java1.8
首先更新已安装的包:
#yum update
查看系统当前的java版本:
#java -version
CentOS 6.X 和 7.X 自带有OpenJDK runtime environment (openjdk)。它是一个在linux上实现开源的java 平台。
安装方式:
1、输入以下命令,以查看可用的JDK软件包列表;
yum search java | grep -i --color JDK
阅读全文
摘要:java获取前一天时间SimpleDateFormat,java判断某个时间段
SimpleDateFormat predf = new SimpleDateFormat("yyyy-MM-dd");
阅读全文
摘要:想学习深度学习需要什么样的基础?
关于编程基础
只会 Java 语言,不会 C/C++/Python 能学习吗?或者学过 C/C++/Python,但是没有实际应用过,或者基础不好,是否可以学?是否有 Python 学习教程推荐?如果 C++/Python 基础比较薄弱,是否可以学?
【回答】可以。
阅读全文