-
SpringBoot 处理跨域请求
什么是跨域?由于安全原因,浏览器都遵循着同源原则,拦截了不同域名之间的请求。跨域请求,是指能让不同域名之间,可以相互发送请求。 当它请求的一个资源是从一个与它本身提供的第一个资源的不同的域名时,一个资源会发起一个跨域HTTP请求(Cross-site HTTP request)。 比如说,域名A ( http://domaina.example ) 的某 Web 应用程序中通过...
-
google要求的java规范
Google Java 编程规范(中文版)1.1 术语说明在本文档中,除非另有说明:1. 术语class可表示一个普通类,枚举类,接口或是annotation类型( @interface )2. 术语comment只用来指代实现的注释(implementation comments),我们不使用"documentation comments"一词,而是用Javadoc。其他的术...
-
API网关:API 网关从入门到放弃
前言假设你正在开发一个电商网站,那么这里会涉及到很多后端的微服务,比如会员、商品、推荐服务等等。那么这里就会遇到一个问题,APP/Browser怎么去访问这些后端的服务? 如果业务比较简单的话,可以给每个业务都分配一个独立的域名(http://service.api.company.com),但这种方式会有几个问题:每个业务都会需要鉴权、限流、权限校验等逻辑,如果每个业务都各自...
-
ffmpeg的使用,通过Java来进行对视频的转码和截图
1.配置ffmpeg的环境变量2.代码如下import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;/** * @Author LinXin * 1.设置视频输出目录 * 2.获取上传视频的路径以及文件名 * 3.截取...
-
SpringBoot 发送邮件和附件(实用版)
基础知识什么是SMTP?SMTP全称为Simple Mail Transfer Protocol(简单邮件传输协议),它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP认证要求必须提供账号和密码才能登陆服务器,其设计目的在于避免用户受到垃圾邮件的侵扰。什么是IMAP?IMAP全称为Internet Message Access Protocol(...
-
IntelliJ IDEA 2020.1 正式发布,官方支持中文了
1. 前言今天 IntelliJ Idea 2020.1 正式发布了!最大的一个亮点莫过于开始支持中文了。相信很多英语不好的同学已经期盼已久了。但是感觉登录界面感觉变丑了!建议把文章看完再去升级。2. 汉化体验先来看看我的效果,首先要告诉你这是官方汉化包,并不是第三方!我大致看了一圈,个别还没有汉化完毕,可能没有找到合适的描述词汇吧,但是绝大部分已经完成了。这下很多同学可以更方...
-
Java中轻松搞定XML和对象之间的互转,就它了!
前言在微信订阅号和支付宝生活号日常开发中,我们会涉及到对象和XML之间的相互转换。比如我们可以利用StringBuilder去直接拼接来构造XML /** * 构造基础的响应消息 * &...
-
Python或将成为第一大编程语言,中国开源涨势最猛
现在,是时候谈一谈 2020 年及以后的软件工程状况了。本文以 GitHub Octoverse 数据为基础,加上我作为一个拥有十年经验的软件工程师的经验和观察。我还将讨论下面列出的话题。软件工程在过去 20 年来实现了爆炸式的增长,而且这种势头似乎还在保持。据《财富》(Fortune)数据显示,2019 年全球前 15 家科技公司的总收入达到了创纪录的 1.67 万亿美元,比...
-
京东通天塔前端性能优化实践
通天塔是京东内部的一个快速搭建活动页面的平台,用户可以通过在可视化平台上选择需要的模板及配置对应数据,来生成对应的原生、H5及PC活动页面。模板样式丰富,操作灵活,在京东被大量使用,用户流量也呈现出了非常迅猛的增长。但随着项目的迭代,功能越来越复杂,模板越来越多,前端和Node中间层性能问题也逐渐暴露出来,其中,前端首屏加载时间TP75性能要大于2秒,而Node中间层单核QPS...
-
Java 开发者必备的两个神器:Maven国内镜像和Spring国内脚手架
虽然目前越来越多的国产优秀技术产品走出了国门,但是对于众领域的开发者来说,依然对于国外的各种基础资源依赖还是非常的强。所以,一些网络基本技能一直都是我们需要掌握的,但是速度与稳定性问题一直也都有困扰着大家。所以,今天就给众 Java 开发者推荐两个提速神器:Maven的国内镜像和Spring的国内脚手架!Maven的国内镜像官网地址: http://maven.aliyun.c...
-
Java+Spring+MyBatis实现多数据源的动态切换
在实际的项目开发过程中,我们经常会遇到一个项目需要使用多个数据源的情况,而多数据源又可分为固定多数据源和动态多数据源。固定多数据源:是指在项目中需要使用多个数据源,但数据源的个数是确定的,不会改变,如我们的项目需要使用订单库和商品库这两个数据源,项目中所有的业务逻辑都只需要操作这两个库。动态多数据源:是指在项目需要使用多数据源,但是数据源的个数不确定,可能会随着项目的需要动态的...
-
C# 实现向指定邮箱发送信息功能
应用场景可以快速批量或者自动向指定用户发送模板邮件信息,比如重置密码时可以向指定邮箱发送验证码,公司发布公告、通知等,由于向邮箱发送验证码是免费的,因此可以节约成本。前提条件1、知晓邮箱服务器的类型,与邮箱服务器端口。我使用的是QQ邮箱,QQ邮箱的邮箱服务器类型是:smtp.qq.com。QQ邮箱服务器的端口是587。如果需要其余邮箱平台的的服务器端口与服务器类型,请百度,我就...
-
为什么SpringBoot的 jar 可以直接运行?
SpringBoot提供了一个插件spring-boot-maven-plugin用于把程序打包成一个可执行的jar包。在pom文件里加入这个插件即可:<build> <plugins> <plugin> <groupId>org.springframework.boot</grou...
-
PyCharm 2020.1 稳定版发布
PyCharm 2020.1 稳定版已发布,这也是 PyCharm 今年发布的首个主要版本。新版的亮点包括更方便地 rebase 分支、更智能地 debug,以及使用专为编码设计的字体 Mono。下载地址:https://jetbrains.com/pycharm/download可交互的 rebase 操作历史提交记录会逐渐变得混乱,这就是为什么需要 rebase 分支的原因...
-
JAVA 排查姿势简介
java 排查姿势简介Greys-anatomygreys-anatomy 是一款很优秀的 java 诊断工具, 由阿里的一位工程师开发维护,并开源到 github 上。安装github 上的文档说明的很详细了, 而且是中文文档, 阅读基本无障碍。linux 环境, 通过curl -sLk http://ompc.oss.aliyuncs.com/greys/install.s...
-
滑动验证码破解的一丢丢
在家隔离2个多月的时间里,看了很多关于滑动验证码的破解技术博客,大多使用 Selenium、Webdriver 等技术破解的,我也尝试了破解xxxx网站,效率蛮低的,满足不了实时数据更新的需求,然后看到一些高级爬虫前辈直接通过解密 JavaScript 参数破解。效率高并且成功率是100%,但是难度非常的大。目前,对于这一类的滑动验证码,网上常见的一个破解方法就是根据完整图片和...
-
php把网络图片转Base64编码
/** 把网络图片图片转成base64 * @param string $img 图片地址 * @return string */ /*网络图片转为base64编码*/ public function imgtobase64($img='', $imgHtmlCode=true) { $imageInfo = getima...
-
php7+的php-fpm参数配置(注意事项)
安装php7+的,如果php-fpm的这几个参数设置不当了,会导致php-fpm启动不了,nginx站点不能解析php文件,报404错误。相关命令:centos7+,启动php-fpm:systemctl start php-fpm查看php-fpm是否启动:ps -ef|grep phpphp-fpm的核心参数配置,默认如下:pm = dynamicpm.max_childr...
-
thinkphp常用系统配置大全
Thinkphp是目前最主流的php轻量型框架之一,作为一个功能完备的php框架,它里面内置了许多的配置,通过修改这些系统的设置可以很方便的对thinkphp的一些内容进行修改,本文总结了一些常用的系统设置供读者参考。'APP_DEBUG' => false, // 是否开启调试模式'APP_DOMAIN_DEPLOY' => false, // 是否使用独立域名部...
-
PHP中的九大缓存技术
1、全页面静态化缓存也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。此种方式,在CMS系统中比较常见,比如dedecms;一种比较常用的实现方式是用输出缓存:2、页面部分缓存该种方式,是将一个页面中不经常变的部分进行静态缓存,而经常变化的块不缓存,最后组装在一起显示;可以使用类似于ob_get_contents的方式实现,也...
-
让我们一起来跟随大佬步伐探究JVM调优的优雅舞步
现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁争用(Lock Contention)Java进程消耗CPU过高......这些问题在日常开发中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能够理解并解决这些问题是Java程序员进阶的必备要求。本文将对一些常用的J...
-
zabbix监控-第三章-第一节 实现邮件报警
各位好,在日常工作中,我们不可能整天盯着 zabbix仪表板 来查询服务是否正常,这个时候我们就需要有途径可以通知到我们,那么根据现在的工作环境,有三种方式是大多数公司都会选择的:我们会主要说一下如何实现通过邮件、微信、钉钉等方式来报警,这小节我们就来使用邮件的方式来报警:1、给邮箱开通smtp为什么要弄这个呢?因为我们在实现邮件报警的过程中,采用的不是邮箱的账号和密码,而是邮...
-
Java中异常处理的15条原则
见过很多人在进行异常处理的时候,直接一个 e.printStackTrace() 就完成了,这是一种非常粗陋的做法,首先会导致应用日志的大量错误信息,而很多时候你都不知道这些错误信息因何发生;再者,反应到用户端将直接导致用户无法获取操作的结果以及失败的原因。以下 15 条异常处理的原则来自国外的博客:不用使用异常来管理业务逻辑,应该使用条件语句。如果一个控制逻辑可通过 if-e...
-
我来打脸了!谁说Java不能用文件批量导入导出?
1、介绍Java实现文件的导入导出数据库,目前在大部分系统中是比较常见的功能了,今天写个小demo来理解其原理,没接触过的同学也可以看看参考下。目前我所接触过的导入导出技术主要有POI和iReport,poi主要作为一些数据批量导入数据库,iReport做报表导出。另外还有jxl类似poi的方式,不过貌似很久没跟新了,2007之后的office好像也不支持,这里就不说了。2、P...
-
从REST到gRPC:性能如何优化
"打破整体"。 这些是我在以前的实习过程中多次听到的话。 各地的公司都在意识到构建基于微服务的体系结构的好处。 从更低的成本,更好的性能到更少的停机时间,微服务相对于其先前的整体设计提供了无数的好处。 现在,所有这些微服务每秒都会互相交谈数千次,因此它们之间的通信需要快速而可靠。 执行此操作的传统方法是JSON支持的HTTP / 1.1 REST通信。 但是,诸如gRPC之类的...
-
超详细的Tomcat性能监控及调优教程
一、下载地址https://tomcat.apache.org/download-80.cgi二、安装步骤将安装包 apache-tomcat-8.5.39.tar.gz 上传至服务器 /usr/local 目录下,再执行如下步骤:[root@admin local]# cd /usr/local[root@admin local]# tar -zxvf apache-tomc...
-
Zabbix 监控
Zabbix监控什么?监控项Zabbix常用监控项zabbix自带的常用监控项agent.ping 检测客户端可达性、返回nothing表示不可达。1表示可达system.cpu.load --检测cpu负载。返回浮点数system.cpu.util -- 检测cpu使用率。返回浮点数vfs.dev.read -- 检测硬盘读取数据,返回是sps.ops.bps浮点类型,需要定...
-
成就架构师之路,你不得不知的Netty核心知识
1. Netty 基础Netty 是一个高性能、异步事件驱动的 NIO 框架,它提供了对 TCP、UDP 和文件传输的支持,作为一个异步 NIO 框架,Netty 的所有 IO 操作都是异步非阻塞的,通过 Future-Listener 机制,用户可以方便的主动获取或者通过通知机制获得 IO 操作结果。它是一个网路应用框架。2. Netty 高性能之道2.1. RPC 调用的性...
-
谷歌开源的高性能 RPC 框架gRPC
gRPC概述gRPC 一开始由 google 开发,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go。gRPC 基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP...
-
聊聊小程序运行机制的那些事(图文结合)
小程序的由来在小程序没有出来之前,最初微信WebView逐渐成为移动web重要入口,微信发布了一整套网页开发工具包,称之为 JS-SDK,给所有的 Web 开发者打开了一扇全新的窗户,让所有开发者都可以使用到微信的原生能力,去完成一些之前做不到或者难以做到的事情。但JS-SDK 的模式并没有解决使用移动网页遇到的体验不良的问题,比如受限于设备性能和网络速度,会出现白屏的可能。因...