- 博客(349)
- 资源 (10)
- 收藏
- 关注
原创 SpringBoot相关内容介绍
文章目录Spring Boot 2 启动时加载properties文件Spring Boot 2 启动时加载properties文件每个项目从开发到测试再到上线所需要的各种环境是不同的,这就需要维护相应的配置文件,比如properties或yml文件。有了配置文件后就要考虑如何与应用进行集成。对于云环境来讲,项目发布需要打成镜像,再进行部署。如果把spring boot项目连同配置文件(变量)一起打入JAR包并不是一个很好的选择,我们的做法是JAR不包含配置文件,待启动镜像和JAR时将配置文件动态赋
2021-01-05 11:00:48
370
1
原创 Gradle入门到精通
文章目录简介Gradle安装配置(Windows版)Gradle和idea集成Groovy语言简单介绍Groovy中的闭包gradle配置文件介绍让gradle使用本地maven仓库gradle web 工程gradle工程拆分与聚合简介Java作为一门世界级主流编程语言,有一款高效易用的项目管理工具是java开发者共同追求的心愿和目标。先是2000年Ant,后有2004年Maven两个工具的诞生,都在java市场上取得了巨大的成功。但是二者都有一定的不足和局限性。2012年基于Ant和Maven产
2021-01-04 23:52:59
475
转载 AES算法的底层实现是如何进行的?
文章目录假设有一个发送方在向接收方发送消息。如果没有任何加密算法,接收方发送的是一个明文消息:“我是小灰”如果消息被中间人截获到,即使中间人无法篡改消息,也可以窥探到消息的内容,从而暴露了通信双方的私密。因此我们不再直接传送明文,而改用对称加密的方式传输密文,画风就变成了下面这样:具体工作的步骤如下:1.发送方利用密钥123456,加密明文“我是小灰”,加密结果为TNYRvx+SNjZwEK+ZXFEcDw==。2.发送方把加密后的内容TNYRvx+SNjZwEK+Z
2020-12-29 21:26:53
632
原创 解读Triple、ImmutableTriple、MutableTriple的源码
文章目录Triple介绍三者之间的关系ImmutableTripleMutableTripleTriple介绍包路径为:org.apache.commons.lang3.tupleTriple是一个抽象类,它实现了Comparable、Serializable接口。它的内部还有一个类TripleAdapter,是它的子类。Triple是用于存储三个对象的。三个对象的位置是left、middle、right。因此Triple带泛型是Triple< L ,M ,R>。Triple类
2020-12-29 11:37:19
2918
原创 关于MultipartFile与File如何进行转换
文章目录File转MultipartFileMultipartFile转FileFile转MultipartFilepackage edp;import org.apache.poi.util.IOUtils;import org.springframework.mock.web.MockMultipartFile;import org.springframework.web.multipart.MultipartFile;import java.io.File;import java.i
2020-12-23 16:04:01
5194
1
原创 Spring中的Condition接口有什么作用?
文章目录Condition介绍关于`@Conditional`注解关于ConditionContext参数关于AnnotatedTypeMetadata参数Condition介绍Condition是一个函数式接口,内部只包含一个matches()方法。通常情况下,我们会写一个类实现这个接口,重写里面的matches()方法,通过这个方法的返回值来决定要不要把某个Bean注册到Spring IOC容器中。举例:上面这个就是通过读取文件中spring.security.oauth2.enable
2020-12-10 19:04:19
1637
2
原创 Deque怎么理解?
文章目录介绍ArrayDeque介绍Deque 是 Double ended queue (双端队列) 的缩写。Deque的父接口有:Deque的子接口和实现类有:Deque接口包含了以下方法:Deque 支持容量受限的双端队列,也支持大小不固定的。一般双端队列大小不确定。Deque 的实现类主要分为两种场景:一般场景LinkedList 为大小可变的链表双端队列,允许元素为 nullArrayDeque 为大小可变的数组双端队列,不允许 null并发场景Linke
2020-12-09 16:07:59
431
原创 maven-assembly-plugin 快速入门(maven assembly 插件)
文章目录使用方法描述符文件元素介绍(assembly.xml)idformatsdependencySetsfileSetsfiles当你使用 Maven 对项目打包时,你需要了解以下 3 个打包 plugin,它们分别是pluginfunctionmaven-jar-plugin maven默认打包插件,用来创建 project jarmaven-shade-plugin用来打可执行包,executable(fat) jarmaven-assembly-plugin
2020-11-27 18:08:11
823
原创 Travis CI(持续集成)
文章目录持续集成(Travis CI)简介什么是持续集成?Travis CI 使用详解Travis CI的.travis.yml配置文件持续集成(Travis CI)运行流程详解install 命令script 命令Travis 部署Travis 钩子方法Travis 运行状态持续集成(Travis CI)简介编写代码只是软件开发的一小部分,更多的时间往往花在构建(build)和测试(test)。为了提高软件开发的效率,构建和测试的自动化工具层出不穷。Travis CI 就是这类工具之中,市场份额最大
2020-11-27 16:26:44
884
原创 zookeeper与dubbo快速入门案例
文章目录zookeeper&dubbo1. 概述1.1. 什么是zookeeper1.2. 本质及主要作用1.2.1. 统一命名服务1.2.2. 配置管理1.2.3. 集群管理2. 下载及安装2.1. 安装2.2. 配置文件解读2.3. 启动zookeeper2.4. 客户端连接3. Znode数据模型3.1. 数据结构图3.2. 节点类型3.3. 节点属性4. 通知机制(watch)4.1. watch机制特点4.2. shell客户端演示5. java客户端6. dubbo入门6.1. 架构
2020-11-20 13:40:01
567
原创 Junit
文章目录@Test@BeforeClass@AfterClass@Before@After@Ignore单元测试所有的方法必须为public void 类型的。@TestJunit 可用于单元测试。我们只需要在相对应的方法上添加@Test注解即可。@BeforeClass当测试方法执行之前,最先执行标有该注解的方法。必须为static。@AfterClass当测试方法执行之后,最后执行标有该注解的方法,必须为static。@Before当测试方法执行之前,先执行标有该注解的方法。@Af
2020-11-05 15:07:32
291
原创 TestNG
TestNG是一个测试框架。建议:不需要JMockit等模拟框架时优先选择TestNG、需要模拟框架时优先选择JUnit。@Test作用跟junit中的@Test作用一样。@BeforeSuite测试套件在执行之前需要执行的。@ AfterSuite测试套件在执行之后需要执行的。@BeforeTest在测试之前需要执行的。@AfterTest在测试之后需要执行的。@BeforeGroups在一个测试方法所属于的任意一个组的第一个方法被调用之前执行。@AfterGroups在一个
2020-11-05 15:06:47
208
原创 SVN
文章目录SVN解决的问题简介SVN的工作原理SVN的基本操作SVN的安装与配置安装服务器端程序配置版本库启动服务器端程序使用命令行模式访问 SVN 服务器SVN解决的问题可以进行备份。可以将代码还原。可以达到协同修改。多版本项目文件管理。可以追溯问题代码的编写人和编写时间。可以进行权限控制。简介版本控制[Revision control],是一种思想。而SVN是实现版本控制的工具软件。全称是SubVersion,通常也称为版本控制器。Subversion 是 Apache 软件基金会组
2020-11-05 15:05:43
207
原创 quartz报Caused by: java.lang.ClassNotFoundException: org.quartz.plugins.xml.JobInitializationPlugin
错误如下:解决办法将quartz.properties配置文件全部注释掉,只留下一个配置线程数的,其余全部使用默认的即可。
2020-11-02 10:59:53
752
原创 Quartz快速入门案例
Quartz任务调度一.Quartz概念Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。quartz是开源且具有丰富特性的"任务调度库",能够集成于任何的java应用,小到独立的应用,大至电子商业系统。quartz能够创建亦简单亦复杂的调度,以执行上十、上百,甚至上万的任务。任务job被定义为标准的java组件,能够执行任何你想要实现的功能。quartz调度框架包含许多企业级的特性,如JTA事务、集
2020-10-30 18:55:59
754
1
原创 日志中的相关解释
%d 输出日志时间点的日期(一般是那一天),也可以在其后用大括号自定义格式,比如:%d{yyyy MMM dd HH:mm:ss:SSS},输出类似:2014 11 05 :23:28 :22%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL ;%r 输出自应用启动到输出该log信息耗费的毫秒数 ;%c 输出所属的全类名,也可以只输出类名,:%c{1} ;%t 输出产生该日志的当前线程名字 ;%m 输出代码中自定义的的信息;%n 输出一个回车换行符,Windows平台为“
2020-10-29 16:11:00
279
原创 SpringSecurity的基本使用
文章目录简介历史简介SpringSecurity是一个基于Spring框架的,提供了一套Web应用安全性的完整解决方案的框架。安全方面的两个主要区域是“认证”和“授权”,一般来说,Web应用的安全性包含用户认证和用户授权两个部分,这也是SpringSecurity框架的重要核心功能。历史...
2020-10-21 22:45:26
178
1
原创 Eclipse插件开发
文章目录如何选择插件开发插件开发的五部分各部分说明如何选择插件开发点击open perspective(打开透视图),选择插件开发。即可切换到相关插件开发的视图。插件开发的五部分工具栏、菜单、工作区、透视图、视图。各部分说明...
2020-10-16 20:58:42
191
原创 Google的开源架包中的工具类解决驼峰命名与下划线命名互转。
最近公司项目的要求,把数据库表名转化为对应的pojo类。于是我自己手写了一个工具类,进行互相转化,结果被要求修改。翻来覆去,终于找到了一个开源的工具类啦。首先它是Google开发的。架包如下:<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>21.0</version>
2020-09-25 00:31:10
771
原创 SpringCloud Netflix
文章目录RPC概念高并发衡量指标高可用注册中心负载均衡服务雪崩熔断限流API网关SpringCloud相关模块SpringCloud命名规则官方网站开启Eureka注册中心功能配置文件RPC概念RPC:【Remote Procedure Call】是指远程过程调用,是一种进程间通信方式,他是一种技术的思想,而不是规范。服务之间常见的交互方式有两种:1、RPC(Netty[socket]+自定义序列化)2、RestAPI(HTTP+JSON)Tomcat最多支持并发多少用户?Tomcat 默认配
2020-09-09 15:41:21
499
原创 Thymeleaf
目录常用语法常用语法Thymeleaf通过${}来获取model中的变量欢迎您:<span th:text="${user.name}">请登录</span>th:object<h2> <p th:text="${user.name}">Jack</p> <p> th:text="${user.age}">21</p> <p th:text="${user.friend.na
2020-09-07 23:38:21
162
原创 Quartz
文章目录概述Quartz的基本组成部分Quartz依赖的架包JobJobDetailJobExecutionContextTriggerCron表达式概述Quartz是一个定时任务框架,跟xxl-job类似。Quartz的基本组成部分调度器:Scheduler任务:JobDetail触发器:Trigger,包括SimpleTrigger和CronTriggerQuartz依赖的架包<!-- https://mvnrepository.com/artifact/org.quartz-sc
2020-09-07 23:34:48
140
原创 SpringCloud Alibaba
SpringCloud Alibaba一、 简介由于性能关系,Eureka停止更新,Hystrix和Ribbon进入维护模式,不再继续更新。2018.10.31,Spring Cloud Alibaba正式入驻了Spring Cloud官网孵化器,并在Maven中央库发布了第一个版本。Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Sp
2020-08-25 00:12:57
519
原创 Jenkins是如何进行部署的?
0-自动化部署相关概念java项目部署方式第一种:手动部署第二种:自动化部署搭建上述持续集成环境可以把整个构建、部署过程自动化,很大程度上减轻工作量。对于程序员的日常开发来说不会造成任何额外负担——自己把代码提交上去之后,服务器上运行的马上就是最新版本——一切都发生在无形中。概念扫盲CI:Continuous Integration 持续集成CD:Continuous Delivery 持续交互devpos:详情见 百度百科持续集成工具Jenkins 和 Hundson200
2020-08-16 22:34:04
1438
原创 14.支付、秒杀
1. 支付订单搞定之后就是支付了,首先搭建支付工程。1.1. 搭建环境pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/PO
2020-08-15 20:14:45
653
2
原创 13.订单、库存
1. 搭建订单工程完成购物车页面之后,点击购物车页面的“去结算”按钮,跳转到订单结算页。接下来,先搭建订单系统:pom.xml:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="htt
2020-08-15 13:13:23
1067
原创 12.分布式定时任务(xxl-job)
1. 定时任务为什么需要定时任务?时间驱动处理场景: 整点发送优惠券,每天更新收益,每天刷新标签数据和人群数据。批量处理数据: 按月批量统计报表数据,批量更新短信状态,实时性要求不高。异步执行解耦: 活动状态刷新,数据同步,异步执行离线查询,与内部逻辑解耦。实现方式:jdk方式:死循环、Timer定时器、JUC定时任务等springScheduling声明式定时任务:@EnableScheduling、@Scheduled永远的经典:定时任务框架quartz分布式定时任务:xxl-jo.
2020-08-14 19:29:25
3805
1
原创 密码学,你懂多少?
第一章 密码学1.1 密码学基本概念密码在我们的生活中有着重要的作用,那么密码究竟来自何方,为何会产生呢?密码学是网络安全、信息安全、区块链等产品的基础,常见的非对称加密、对称加密、散列函数等,都属于密码学范畴。密码学有数千年的历史,从最开始的替换法到如今的非对称加密算法,经历了古典密码学,近代密码学和现代密码学三个阶段。密码学不仅仅是数学家们的智慧,更是如今网络空间安全的重要基础。1.1.1 古典密码学在古代的战争中,多见使用隐藏信息的方式保护重要的通信资料。比如先把需要保护的信息用化学药水
2020-07-31 01:53:29
1738
1
原创 11.购物车、SpringTask
1. 购物车功能分析1.1. 功能需求需求描述:用户可以在登录状态下将商品添加到购物车用户可以在未登录状态下将商品添加到购物车用户可以使用购物车一起结算下单(批量下单)用户可以查询自己的购物车用户可以在购物车中修改购买商品的数量。用户可以在购物车中删除商品。在购物车中展示商品优惠信息提示购物车商品价格变化提示购物车商品价格变化,数据结构,首先分析一下购物车的数据结构1.2. 数据结构首先分析一下购物车的数据结构因此每一个购物车信息,都是一个对象,基本字段包括:{
2020-07-30 22:13:28
682
原创 10.单点登录(jwt)
1. 用户管理提供数据接口搭建gmall-ums略。。。。参照课前资料中的《前端商城接口文档.md》编写数据接口1.1. 数据验证功能根据接口文档知:请求方式:GET请求路径:check/{param}/{type}请求参数:param,type返回结果:true或false1.1.2. UserController/** * 校验数据是否可用 * @param data * @param type * @return */@Get
2020-07-30 21:56:19
839
原创 9.商品详情页及异步编排(CompletableFuture)
1. 商品详情当用户搜索到商品,肯定会点击查看,就会进入商品详情页,接下来我们完成商品详情页的展示。商品详情浏览量比较大,并发高,我们会独立开启一个微服务,用来展示商品详情。1.1. 创建modulepom.xml依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSc
2020-07-30 21:36:47
1708
原创 8.商品分类、缓存及分布式锁(Redisson)
1. 门户首页商品分类搜索做完之后,把目光移动首页,首页最重要的模块之一便是商品分类,商品分类也是进入商品列表,找到心仪商品的另一个主要途径。接下来就搭建一个module。这个页面作为整个商城的门户入口,访问量巨大,为了方便优化扩展,需要搭建独立的系统。1.1. 创建首页Module创建gmall-index首页工程application.yml配置如下:bootstrap.yml配置略。。。server: port: 18087spring: cloud: nacos:
2020-07-30 21:30:23
586
原创 RabbitMQ你懂多少?
1. RabbitMQ1.1. 搜索与商品服务的问题目前我们已经完成了商品详情和搜索系统的开发。我们思考一下,是否存在问题?商品的原始数据保存在数据库中,增删改查都在数据库中完成。搜索服务数据来源是索引库,如果数据库商品发生变化,索引库数据不能及时更新。如果我们在后台修改了商品的价格,搜索页面依然是旧的价格,这样显然不对。该如何解决?这里有两种解决方案:方案1:每当后台对商品做增删改操作,同时要修改索引库数据方案2:搜索服务对外提供操作接口,后台在商品增删改后,调用接口以上两种
2020-07-29 18:04:14
749
原创 JavaEE技术之分布式事务
1. 本地事务商品新增功能非常复杂,商品管理微服务在service层中调用保存spu和sku相关的方法,为了保证数据的一致性,必然会使用事务。在JavaEE企业级开发的应用领域,为了保证数据的完整性和一致性,必须引入数据库事务的概念,所以事务管理是企业级应用程序开发中必不可少的技术。单体应用中使用的事务都是本地事务。所谓本地事务,是指该事务仅在当前工程内有效。1.1. 基本概念事务的概念:事务是逻辑上一组操作,组成这组操作各个逻辑单元,要么一起成功,要么一起失败。事务的四个特性(ACID):
2020-07-27 02:13:23
1210
原创 7.数据同步、RabbitMQ
1. RabbitMQ回顾1.1. 概念回顾MOM:Message-oriented middleware,面向消息中间件MQ:Message Queue,消息队列。应用程序之间的通信方法两种主流实现:JMS:Java MessageService,是一种java接口规范。必须java实现,只有两种消息模型AMQP:Advanced Message Queuing Protocol,高级消息队列协议。任何语言都可实现,可以有多种消息模型主要作用:异步解耦削峰主流MQ产品:A
2020-07-26 23:45:51
420
原创 6.模板引擎(Thymeleaf)及搜索页渲染
1. 认识thymeleaf1.1. 模板技术把页面中的静态数据替换成从后台数据库中的数据。这种操作用jsp就可以实现。但是Spring boot 的架构不推荐使用Jsp,而且支持也不好,所以如果你是用springboot的话,一般使用Freemarker或者Thymeleaf。官方推荐使用Thymeleaf。1.2. 简介官方网站:https://www.thymeleaf.org/index.htmlThymeleaf是用来开发Web和独立环境项目的现代服务器端Java模板引擎。Thy
2020-07-26 23:34:11
1319
2
原创 创建新Docker容器时出现“The container name “/xxx“ is already in use by container xxxxxxxxxxx...”问题的解决办法
创建新Docker容器时出现“The container name “/xxx” is already in use by container xxxxxxxxxxx…”问题的解决办法详细错误提示:/usr/bin/docker-current: Error response from daemon: Conflict. The container name “/xxx” is already in use by container e3274a72e8d62a0f3022d3201405ce58614
2020-07-25 00:53:55
2292
原创 5.商品搜索
1. 导入商品数据1.1. 搭建搜索工程pom.xml内容如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
2020-07-25 00:49:58
389
常见请求和响应头-说明.doc
2020-04-11
dom4j-1.6.1.zip
2020-04-08
apache-tomcat-8.5.32.zip
2020-04-08
C3P0数据库连接池驱动.zip
2020-04-01
DBUtils.zip
2020-03-31
mysql-5.5.27-winx64-服务端.zip
2020-03-25
jdk1.8.zip
2019-12-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人