Spring
文章平均质量分 67
一生酷到底
你若不去爱,怎知世界可爱
展开
-
分布式集群架构场景化解决⽅案(集群时钟同步)
什么是分布式和集群以及实现二、集群时钟同步问题1、时钟不同步导致的问题时钟此处指服务器时间,如果集群中各个服务器时钟不⼀致势必导致⼀系列问题,试想 “集群是各个服务器⼀起团队化作战,⼤家⼯作都不在⼀个点上,岂不乱了套!”举⼀个例⼦,电商⽹站业务中,新增⼀条订单,那么势必会在订单表中增加了⼀条记录,该条记录中应该会有“下单时间”这样的字段,往往我们会在程序中获取当前系统时间插⼊到数据库或者直接从数据库服务器获取时间。那我们的订单⼦系统是集群化部署,或者我们的数据库也是分库分表的集群化部署,然⽽他们的系原创 2021-11-24 09:28:25 · 226 阅读 · 0 评论 -
Springboot项目下载模板(同生成数据报告文件)
一、前言1、本教程主要内容一般情况下项目在docke环境上部署会出现路径找不到的情况,解决项目打包后模板文件路径丢失找不到,通过结合FreeMarker进行模板文件下载。主要解决过于复杂的模板文件通过动态生成较难实现可用于模板文件下载通过一个报告模板转成模板文件对数据进行填充转换下载2、需要用到的包环境信息软件版本freemarker2.3.26-incubating适用范围二、操作流程1、准备模板文件可以是word,excel等可以转换为xm原创 2021-11-04 10:56:04 · 1335 阅读 · 0 评论 -
Spring Security
一、Spring Security介绍1、框架介绍Spring 是一个非常流行和成功的 Java 应用开发框架。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。一般来说,Web 应用的安全性包括**用户认证****(Authentication)和用户授权(Authorization)**两个部分。(1)用户认证指的是:验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来原创 2021-11-01 09:16:02 · 640 阅读 · 0 评论 -
Canal数据同步
一、Canal介绍1、应用场景在前面的统计分析功能中,我们采取了服务调用获取统计数据,这样耦合度高,效率相对较低,目前我采取另一种实现方式,通过实时同步数据库表的方式实现,例如我们要统计每天注册与登录人数,我们只需把会员表同步到统计库中,实现本地统计就可以了,这样效率更高,耦合度更低,Canal就是一个很好的数据库同步工具。canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL。Canal环境搭建canal的原理是原创 2021-10-25 09:04:12 · 1561 阅读 · 8 评论 -
SpringBoot整合阿里云短信服务
一、新建短信微服务1、在service模块下创建子模块service-msm2.创建controller和service代码3.配置application.properties# 服务端口server.port=8006# 服务名spring.application.name=service-msm# mysql数据库连接spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=j原创 2021-10-22 08:53:03 · 287 阅读 · 0 评论 -
SpringBoot整合JWT
一、使用JWT进行跨域身份验证1、传统用户身份验证Internet服务无法与用户身份验证分开。一般过程如下:用户向服务器发送用户名和密码。验证服务器后,相关数据(如用户角色,登录时间等)将保存在当前会话中。服务器向用户返回session_id,session信息都会写入到用户的Cookie。用户的每个后续请求都将通过在Cookie中取出session_id传给服务器。服务器收到session_id并对比之前保存的数据,确认用户的身份。这种模式最大的问题是,没有分布式架构,无法支持横向扩原创 2021-10-15 16:59:05 · 200 阅读 · 0 评论 -
SpringBoot集成Redis
一、Redis介绍Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(区别于MySQL的二维表格的形式存储。)。和Memcache类似,但很大程度补偿了Memcache的不足。和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把更原创 2021-10-11 09:13:15 · 5297 阅读 · 1 评论 -
Nacos服务管理
一、Nacos1、基本概念**(1)**Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。**(2)**常见的注册中心:Eureka原创 2021-10-08 08:38:23 · 1417 阅读 · 0 评论 -
阿里云视频点播服务
一、创建视频点播微服务1、创建微服务模块Artifact:service-vodpom(1)service-vod中引入依赖<dependencies> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> </dependency>原创 2021-10-05 12:44:53 · 385 阅读 · 0 评论 -
SpringBoot集成OSS
一、新建云存储微服务1、在service模块下创建子模块service-oss2、配置pom.xmlservice-oss上级模块service已经引入service的公共依赖,所以service-oss模块只需引入阿里云oss相关依赖即可,service父模块已经引入了service-base模块,所以Swagger相关默认已经引入<dependencies> <!-- 阿里云oss依赖 --> <dependency> <原创 2021-09-26 22:33:17 · 1725 阅读 · 0 评论 -
EasyExcel读写Excel
一、创建项目,实现EasyExcel对Excel写操作1、创建一个普通的maven项目项目名:excel-easydemo2、pom中引入xml相关依赖<dependencies> <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --> <dependency> <groupId>com.alibaba</groupId>原创 2021-09-24 08:45:54 · 364 阅读 · 0 评论 -
SpringBoot统一返回结果对象
一、统一返回数据格式项目中我们会将响应封装成json返回,一般我们会将所有接口的数据格式统一, 使前端(iOS Android, Web)对数据的操作更一致、轻松。一般情况下,统一返回数据格式没有固定的格式,只要能描述清楚返回的数据状态以及要返回的具体数据就可以。但是一般会包含状态码、返回消息、数据这几部分内容例如,我们的系统要求返回的基本数据格式如下:列表:{ "success": true, "code": 20000, "message": "成功", "data": {原创 2021-09-15 16:35:43 · 2215 阅读 · 0 评论 -
SSM 整合
一:SSM整合1.整合策略SSM = Spring + SpringMVC + Mybatis = (Spring + Mybatis)+ SpringMVC先整合 Spring + Mybatis然后再整合 SpringMVC基于的需求:查询 Account 表的全部数据显示到⻚⾯2.Mybatis整合Springjdbc.propertiesjdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:330原创 2021-09-14 09:27:47 · 380 阅读 · 0 评论 -
Spring概述(APO与IOC介绍与使用)
一,Spring介绍1.1,Spring 简介Spring 是分层的 full-stack(全栈) 轻量级开源框架,以 IoC 和 AOP 为内核,提供了展现层 Spring MVC 和业务层事务管理等众多的企业级应⽤技术,还能整合开源世界众多著名的第三⽅框架和类库,已经成为使⽤最多的 Java EE 企业应⽤开源框架。Spring 官⽅⽹址:http://spring.io/我们经常说的 Spring 其实指的是Spring Framework(spring 框架)。1.2,Spring 发原创 2021-09-10 09:19:01 · 1035 阅读 · 0 评论 -
阿里云存储OSS
一、对象存储OSS为了解决海量数据存储与弹性扩容,项目中我们采用云存储的解决方案- 阿里云OSS。1、开通“对象存储OSS”服务(1)申请阿里云账号(2)实名认证(3)开通“对象存储OSS”服务(4)进入管理控制台2、创建Bucket选择:标准存储、公共读、不开通3、上传默认头像创建文件夹avatar,上传默认的用户头像4、创建RAM子用户二、使用SDK1、创建Mavaen项目com.southaliyun-oss2、pom<dependencies>原创 2021-09-09 10:02:37 · 786 阅读 · 0 评论 -
Mybatis-Plus介绍与使用
一,介绍信息官网地址https://mybatis.plus/框架结构1.1,安装使用地址:安装 | MyBatis-Plus1.2,初始化工程1.导入依赖1.3,原生Mybatis实现查询User创建子ModuleMybatis实现查询User第二步编写User实体对象:(这里使用lombok进行简化bean操作)第三步编写UserMapper接口:第四步编写UserMapper.xml文件:第五步编写测试用列:1.4,Mybatis+M原创 2021-09-06 14:20:26 · 761 阅读 · 0 评论 -
Netty对websocket的支持
Netty和WebStocket介绍1.什么是WebSocket?WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。2.什么是Netty?Netty由JBOSS提供的一个开源框架,是一个异步的、基于事件驱动的网络框架应用,用于快速开发高性能、高可靠性的网络IO程序。具体应用Maven依赖<dependency> <groupId>i原创 2021-09-06 14:15:43 · 172 阅读 · 0 评论 -
Mybatis缓存与复杂映射
Mybatis缓存一级缓存①、在一个sqlSession中,对User表根据id进行两次查询,查看他们发出sql语句的情况查看控制台打印情况:② 、同样是对user表进行两次查询,只不过两次查询之间进行了一次update操作。查看控制台打印情况:③、总结第一次发起查询用户id为1的用户信息,先去找缓存中是否有id为1的用户信息,如果没有,从 数据库查询用户信息。得到用户信息,将用户信息存储到一级缓存中。如果中间sqlSession去执行commit操作(执行插入、更新、删除),原创 2021-09-03 09:18:54 · 214 阅读 · 0 评论 -
SpringBoot导出数据为PDF
一:添加所需依赖<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.11</version></dependency><dependency> <groupId>com.itextpdf.tool</groupId&原创 2021-09-02 14:45:52 · 2419 阅读 · 3 评论 -
HttpClient的Http Basic Authentication认证方式请求
采用Basic Authentication的认证请求后端处理其中的atob加密根据实际需求是否需要其他构建方式参考原创 2021-09-01 17:37:15 · 340 阅读 · 0 评论 -
Mybatis自定义持久层框架IPersistence
1.分析JDBC操作问题JDBC问题总结:原始jdbc开发存在的问题如下:数据库连接创建、释放频繁造成系统资源浪费,从而影响系统性能。Sql语句在代码中硬编码,造成代码不易维护,实际应用中sql变化的可能较大,sql变动需要改变java代码。使用preparedStatement向占有位符号传参数存在硬编码,因为sql语句的where条件不一定,可能多也可能少,修改sql还要修改代码,系统不易维护。对结果集解析存在硬编码(查询列名),sql变化导致解析代码变化,系统不易维护,如果能原创 2021-08-31 09:39:47 · 150 阅读 · 0 评论 -
Mybatis相关概念及应用
1.对象/关系数据库映射(ORM)ORM全称Object/Relation Mapping:表示对象-关系映射的缩写ORM完成面向对象的编程语言到关系数据库的映射。当ORM框架完成映射后,程序员既可以利用面向对象程序设计语言的简单易用性,又可以利用关系数据库的技术优势。ORM把关系数据库包装成面向对象的模型。ORM框架是面向对象设计语言与关系数据库发展不同步时的中间解决方案。采用ORM框架后,应用程序不再直接访问底层数据库,而是以面向对象的放松来操作持久化对象,而ORM框架则将这些面向对象的操原创 2021-08-31 09:39:04 · 176 阅读 · 0 评论 -
SpringBoot基于easypoi的导入导出
一:所需依赖和配置1.所需依赖<dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-base</artifactId> <version>3.0.3</version> </dependency> <dependency> <groupId>cn.afterturn</g原创 2021-08-24 08:37:19 · 156 阅读 · 0 评论 -
SpringBoot 发送邮件功能(包含网易、QQ、Gmail邮箱)
SpringBoot 2.x 集成网易邮箱、QQ邮箱、Gmail邮箱发送邮件:octocat: 在Spring中提供了非常好用的 JavaMailSender接口实现邮件发送,因此引入依赖和进行编写不同配置即可实现。所需依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId&原创 2021-08-20 09:31:13 · 7398 阅读 · 2 评论 -
Zookeeper学习总结
一:Zookeeper介绍1.介绍用起来像单机但是又比单机更可靠Zookeeper是开源的高性能的分布式应用协调系统,一个高性能的分布式数据一致性解决方案2.特点顺序一致性原子性单一视图可靠性及时性3.架构图4.Zookeeper和CAP的关系CP:一致性+分区容错性能得到一致的数据结果,同时系统对网络具备容错性但是它不能保证每次服务请求的可用性5.作用分布式服务注册与订阅统一配置文件生成分布式唯一IDMaster解点选举分布原创 2021-08-20 09:26:49 · 88 阅读 · 0 评论 -
SpringBoot整合RabbitMQ
一:生产者项目1.引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>2.编写配置文件server: port: 8080spring: application: name: producer rabbi原创 2021-08-18 16:19:04 · 93 阅读 · 0 评论