![](https://img-blog.csdnimg.cn/cbca94bcc9f74810895f5edbf8b1fe4e.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Web2 things
文章平均质量分 90
在做后端工程师时做的技术积累。
amber_0515
日拱一卒无有尽,功不唐捐终入海
展开
-
【Spring绊脚石】Spring配置文件@Value注解注入失败或为null
文章目录详细阐述解决方案代码示例问题解析问题拓展详细阐述在spring使用@Value从application.properties将值注入到变量中时,遇到了注入失败和注入值为null两种问题。解决方案1、加入注释@PropertySource(value = “classpath:/application.properties”)配置文件路径。(如果第一步生效了,可以不进行第二步)...原创 2019-08-15 14:00:20 · 1651 阅读 · 1 评论 -
【运维部署】Maven + Jenkins实现Springboot多环境动态部署
Maven + Jenkins实现springboot多环境动态部署前置说明本文多环境部署仅仅通过profile实现功能,对其他方面没有过多探究。流程步骤一、maven方面配置配置POM.xml二、springboot项目配置根据不同环境创建不同的application-xxx.properties文件配置application.properties文件三、j...原创 2019-09-03 11:36:53 · 1870 阅读 · 1 评论 -
【运维部署】Jenkins+Docker自动化部署springboot项目流程
Jenkins+Docker自动化部署springboot项目流程前置说明由于条件所限,本文镜像文件的放置位置与容器运行在同一服务器中进行。所以不存在将镜像推送至云端操作。流程步骤总体分为两方面进行配置。一、springboot项目方面配置在项目pom.xml文件中引入对应依赖建立Dockerfile,编写构建镜像内容二、jenkins方面配置由于隐私问题,不展示源码...原创 2019-09-03 10:43:04 · 483 阅读 · 0 评论 -
【实现方案】Springboot整合token的权限管理实现(一)—— 生成并发送 token
前置说明最近在写一个 Springboot + vue 的后台管理版面,对相关知识点与实现进行记录。本文记录前端向后端发送登录请求后,后端生成token,并存放在cookie中,返回到前端的过程。代码示例一、Maven依赖 <parent> <groupId>org.springframework.boot</groupId> ...原创 2019-11-12 15:30:09 · 2541 阅读 · 0 评论 -
【web基础】SSL证书验证流程
SSL证书验证流程前置说明在学习 https 过程中,对于如何防止中间人攻击(MITMA)抱有疑问。经了解发现,客户端是通过第三方机构 CA(Certificate Authorities)颁发的 SSL 证书验证服务器身份,之后再通过非对称加密的形式,协商对称加密的密钥,以此来实现安全通信。对于非对称加密协商对称加密密钥这个过程,网上有很多学习资源,但对于 SSL 证书验证服务器身份流程...原创 2019-09-09 11:48:54 · 2608 阅读 · 1 评论 -
【实现方案】Nginx搭建简单直播服务器
前言使用 Nginx + Nginx-rtmp-module 在Ubuntu 中搭建简单的 rtmp 推流直播服务器。相关概念RTMP: RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议。依赖于flash播发器来拉流。请求样式:rtmp://xxx.xxx.xxx.xxx:1935/ttest(命名空间)/test(推流码)HLS:苹果出的一套Http Live Streaming协议,它的工作原理简原创 2020-09-23 16:26:29 · 340 阅读 · 0 评论 -
【web基础】正向代理与反向代理初步了解
这段时间对计算机网络的一些基本概念有些不清晰,做一下记录梳理。https://www.cnblogs.com/Anker/p/6056540.html原创 2020-07-18 00:03:30 · 156 阅读 · 0 评论 -
【数据库】关系型数据库设计规范感悟
前言在设计关系型数据库时,我们从课上的学习得知,需要参照不同的范式及原则,设计表结构与表关系。在课上,我们关注的角度更多是,设计要符合范式,保证数据不冗余。但在实际的开发设计中,我们往往要从更多角度思考数据库的设计原则,根据不同的需求场景,进行不同角度的侧重。比如开发是否便捷,表结构是否易维护,查询效率是否达到要求等等。设计原则一般的企业级应用数据库中,对于数据的冗余是有一定容忍性的,但对于...原创 2020-01-06 21:32:49 · 237 阅读 · 0 评论 -
【Python绊脚石】循环嵌套内层只执行一遍
情景叙述在编写对比两个csv文件内容的脚本时,需要利用循环嵌套来实现功能。在一般情况下,我们可能会这样写:但会发现最后的执行结果是,内层循环只执行了一遍。在第一次执行之后,外循环都会跳过内循环。问题分析因为我一开始不是写python的,所以会犯这样的低级错误。在for j in bbFile:这条语句中,因为每次 j 在第一次内循环过后没有被重新初始化,所以导致 j 在第二次以及之...原创 2020-04-15 13:39:23 · 3318 阅读 · 2 评论 -
【Elasticsearch学习笔记-基础篇2】Elasticsearch倒排索引、分析及打分
在之前的一篇文章中,简单介绍了 es 的设计和相关概念,这一篇来介绍一下 es 中实操方面相关概念的引申——在索引和搜索文档的时候,es 是怎么做的。原创 2020-12-16 16:18:10 · 516 阅读 · 0 评论 -
【开发工具】使用 MyBatis-Generator 自动生成代码
前言Mybatis-generator 可以生成关于 mybatis 的模板代码。在数据库表复杂的情况下,使用 mybatis-generator 生成 model 等工程必要类无疑是极其方便的。生成的内容最简单的:Model类、Dao接口、基于主键的基础查询mapper语句。具体步骤1、添加Maven依赖mybatis-generator 其实是一个开发插件,运行插件就可以生成模板代...原创 2019-12-06 16:19:15 · 163 阅读 · 0 评论 -
【ORM】Mybatis 多字段组合唯一 并批量添加数据
前言现在,普遍的关系型数据库开发都离不开 mybatis 这个优秀的持久层框架。而在普遍的业务场景中,也时常会有短时间内高频次的增删操作。这样短时间内高频次的操作,通常有两种实现方案,第一种是比较常见的一种:在代码中编写循环,在持久层做单次的操作;另一种是通过 mybatis,直接在持久层批量操作数据。虽然mybatis 的批量也是在内存中操作的,但它从始至终只开了一个 sqlSession ,...原创 2020-01-16 16:10:42 · 1352 阅读 · 0 评论 -
【数据库】mysql 实现 oracle connect by 遍历特定节点的所有子节点。
前言在做企业开发时候,有时会碰到这样的需求:在一个树形的组织结构中,查询一个公司所有的子公司。如果数据库使用的是 Oracle 那可以通过 connect by 关键字轻松实现。但如果用的是 mysql,那么就有两种解决方案(我只想到两种哈哈):通过代码递归查询所有子公司。通过编写存储过程(函数),来实现子公司的递归查询。在本文中,采用第二种方案,并记录如何在 mybatis 中调用存储过程。实现过程编写存储过程CREATE DEFINER=`root`@`%` FUNCTION `g原创 2020-11-18 16:16:43 · 326 阅读 · 0 评论 -
【运维部署】nginx-UrlRewrite 实现URL重写转发
在前后端分离的开发模式中,会遇到这样一个需求:前端通过特定路由前缀来访问后端接口,例如:http://localhost/api/getUser,这里 api 即是每一个前端 request 所多加的前缀。原创 2020-10-14 14:24:27 · 1585 阅读 · 0 评论 -
【Elasticsearch学习笔记-基础篇1】Elasticsearch介绍及设计概念
前言随着本人所在小组每周的技术分享,本人决定将每周所学整理为学习笔记,以供自己牢固知识。同时希望对新玩家有引导作用,也希望老玩家能就我之所学错误之处批评指正,不甚感激。本人的学习方法:争取在系列学习之前给自己提几个问题,随着学习的深入可以贯穿始终,从顶层到底层的回答系列学习前问题。私以为,徐徐图之,便可进至大成。Elasticsearch 简单介绍ES是一个基于RESTful web接口并且构建在Apache Lucene之上的开源分布式搜索引擎。同时ES还是一个分布式文档数据库,其中每个字段原创 2020-12-10 14:42:13 · 269 阅读 · 0 评论 -
【运维部署】nodejs打包静态资源内存溢出
背景在使用jenkins部署前端工程时报出内存溢出异常,之后进行排查。异常:Js heap out of memory解决方法经反复测试发现位node版本问题,10.x会有此问题,需要升级到12.x。升级方法安装 nodejs 的版本管理器 nsudo npm install -g n使用 n 切换(更新) nodejs 版本最新版本n lastest稳定版本n stable安装指定版本n 12.18.4...原创 2020-10-12 20:29:17 · 548 阅读 · 0 评论 -
【实现方案】springboot 中 FreeMarker 导出 word 文档(动态表格与动态多图片)
前言项目有需求,通过特定模板导出 .doc 格式的 Word 文档。因为之前有过使用 apache-poi 导出 excel 的经验,所以在一开始选择了 apache-poi 作为实现依赖,但后来发现生成 word 调用及实现过于复杂,遂放弃。查阅资料后,试着使用 easy-poi 实现,但又发现可定制程度太小,无法动态生成表格和图片,遂放弃。就在山穷水尽之时,我想到了 freemarker。众所周知,Word 的本质就是一个 xml 文件,所以我们使用 freemarker 来动态生成 Word,应该原创 2020-11-25 11:24:52 · 1730 阅读 · 1 评论 -
【开发工具】使用swagger生成接口文档
前言在开发过程中,编写接口文档是开发人员必不可少的工作,但在写文档的时候,总会占用不少时间与精力。使用 springfox-swagger2 框架,并在相应地方加上注解,swagger 就可以帮我们自动在线生成标准的接口文档,并支持接口的测试。具体实现1、maven依赖实际上,前两个依赖是自动生成与测试的框架依赖。com.google.guava 这个依赖是为了解决一个报错,貌似是因为在类...原创 2019-12-25 11:39:20 · 579 阅读 · 0 评论 -
【实现方案】Springboot结合HttpSession实现邮箱验证码验证用户
前置说明本文使用 spring 框架中自带的 JavaMailSender 发送邮件,使用HttpSession 在服务器端保存会话信息,储存生成的验证码,以便客户端输入验证码进行验证。邮箱验证码验证众所周知,邮件可以包含很多种类的内容。在本文中,邮件内容分为:纯文本、HTML代码(Thymeleaf模板)、附件、图片。看完内容类型可以得知,其实内容为 HTML 代码或附件是最好用的。验证...原创 2019-11-28 22:14:08 · 908 阅读 · 0 评论 -
【web基础】Cookie Session Token 区别与联系
前言最近写的项目是和用户权限与认证有关,所以学习了很多有关 Cookie、Session 以及 Token 的相关知识,在这里做一个梳理。本文包括基础概念、区别与联系。对于实际如何在项目中进行实现,虽然在我之前的博客中有所体现,但之后我也会将其中实现功能的代码与流程整理出来,写一个专门的文章。Session基础概念“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息于...原创 2019-11-30 23:10:29 · 344 阅读 · 3 评论 -
【Elasticsearch学习笔记-基础篇3】Elasticsearch 聚集(aggregation)与过滤器(filter)
这篇主要总结一下 es 的聚集(aggregation)与过滤器(filter),不会涉及到具体的 API 操作与示例,主要总结概念性与本人理解的内容。原创 2021-01-05 17:10:47 · 2351 阅读 · 0 评论 -
【实现方案】Springboot整合token的权限管理实现(二)—— 配置服务器拦截器与跨域访问权限
前置说明前一篇文章介绍了如何使用 JWT 生成与解析 token。这篇文章给大家介绍,当我们使用 springboot 进行开发时,如何从后端解决跨域访问问题,以及如何配置 request 拦截器。跨域访问一、什么是跨域访问?跨域的严格一点的定义是:只要协议,域名,端口有任何一个的不同,就被当作是跨域。从现在的开发技术而言,大家越来越讲究前后端分离开发。如果前后端分离,那么势必会遇到跨域...原创 2019-11-14 11:11:22 · 643 阅读 · 0 评论 -
【实现方案】Springboot整合token的权限管理实现(三)—— 解决token或cookie过期后的跨域问题
前置说明在token拦截器中,处理非法 (包含过期)token 的方法无非就是两种,一种是直接 return false,另一种是 throws Exception。如果是使用 throws Exception ,那么直接 http status code 就是500,在前端也很好捕捉。但是如果直接 return false,那浏览器还是会报出跨域请求的错误。解决方案问题原因其实导致这个问...原创 2019-11-14 11:40:39 · 1545 阅读 · 0 评论 -
【Java学习笔记-高级篇】Java回调函数应用
前言最近在复习一些编程的基础知识,发现回调函数这个东西用起来很方便。于是就研究了一下Java是如何实现真正意义上的回调函数。直接调用与间接调用在理解回调函数之前,我们需要先来理解在 c/c++ 中,什么是直接调用,什么是间接调用。直接调用在函数A的函数体里,通过书写函数B的函数名来调用之,使内存中对应函数B的代码得以执行。这里,A称为“主叫函数”(Caller),B称为“被叫函数”...原创 2020-02-03 19:53:52 · 511 阅读 · 0 评论 -
【Java学习笔记-并发编程】线程与任务
最近在看一些Java15的并发、线程调度以及一些实现方案的东西,虽然很多东西还是 1.5 的,但还是很有收获。原创 2021-02-04 17:50:44 · 405 阅读 · 9 评论 -
【Java学习笔记-基础篇】关于注解(annotation)编程
今天在看以前写的代码,发现自己对注解的了解还不是非常透彻,经常选择性就忽视了对注解实现的探究,遂查询资料学习了一下。原创 2021-01-19 13:53:35 · 154 阅读 · 0 评论 -
【实现方案】springboot 使用 websocket 与客户端实时通信(with 多人聊天室 + 心跳检测)
在之前一个项目中,有一个实时通信的需求需要实现,由此我初步接触了 websocket 协议,并做了简单的业务实现。作为一个初步的了解吧,给大家一个参考。原创 2021-01-14 16:18:30 · 2048 阅读 · 0 评论 -
【Java学习笔记-并发编程】Treiber stack 详解
最近在看 Java 并发编程的相关源码。发现了一个词 —— Treiber stack。这篇文章介绍一下什么是 Treiber stack 以及其核心算法 CAS。原创 2021-02-20 17:33:58 · 979 阅读 · 1 评论 -
【Elasticsearch学习笔记-基础篇4】Elasticsearch 文档间的关系
这篇文章还是延续着第三篇文章的精神,概述相关概念与本人的学习心得, 不涉及 API 与具体的操作,有兴趣的同学可以另行查阅学习。原创 2021-01-11 09:50:44 · 348 阅读 · 1 评论 -
【Elasticsearch学习笔记-基础篇5】Elasticsearch 集群管理
本篇就是 es 学习笔记的倒数第二篇咯,集中于 es 的集群管理。同样的,本篇也是较少涉及相关配置文件的编写,主要聚焦于步骤方法总结以及本人感悟。原创 2021-01-12 16:45:02 · 243 阅读 · 0 评论 -
【Java学习笔记-并发编程】关键字 volatile 详解
最近项目中,写到了很多多线程的东西。其中有个多任务轻型阻断器的实现,牵出了 volatile 关键词的应用,顺便学习一下原理和相关的基础知识。原创 2021-02-24 19:56:01 · 200 阅读 · 0 评论 -
【Java学习笔记-并发编程】线程池
在上篇整理了 Java 线程与任务的概念,这篇说一说 Java 的线程池,在我们更加了解线程池的同时,也增加一些设计思路。原创 2021-02-19 10:56:17 · 218 阅读 · 0 评论