
Spring实战
文章平均质量分 71
鬼灭之刃
提升自我
展开
-
通过一张图讨论JAVA入门应掌握什么
1 NGINX需掌握:反向代理地址重写按目录划分项目支持HTTPS对称加密虽然性能好但有密钥泄漏的风险,非对称加密(2组公钥+2私钥双向传输)安全但性能低下,因此考虑用非对称加密来传输对称加密所需的密钥,然后进行对称加密,但是为了防止非对称过程产生的中间人攻击,需要对服务器公钥和服务器身份进行配对的数字认证,然后引入了CA数字签名+数字证书验证的方式,客户端从认证机构拿到证书私钥,通过证书私钥拿到非对称加密公钥。解决跨域问题CORS全称Cross-Origin Resourc.原创 2021-12-25 19:43:11 · 2072 阅读 · 2 评论 -
分布式、高性能和高可用解决方案 (分布式)
1 分布式分布式系统会把一个应用系统拆分为可独立部署的多个服务,因此需要服务与服务之间远程协作才能完成事务操作。切记,分布式一定是存在网络分区的。1 CAP和BASE原则1.1 理解CAPCAP是 Consistency、Availability、Partition tolerance三个词语的缩写,分别表示一致性、可用性、分区容忍性。下面通过数据库读写分离来解释CAPC - Consistency:一致性是指写操作后的读操作可以读取到最新的数据状态,当数据分布在多个节点上,从任意结点读取原创 2021-12-05 12:37:51 · 3286 阅读 · 0 评论 -
2021-09-16
HashMap和HashSetHashSet是在HashMap上套了一层,只设置key,val设为默认值LinkedHashMap和HashMap通过双向链表维护了节点之间的顺序,不仅要维护map还要维护节点之间的双向链表LinkedHashSet和LinkedHashMap的区别同HashSet和HashMap的区别...原创 2021-09-16 23:46:46 · 230 阅读 · 0 评论 -
OAuth2接入第三方认证平台实战(登录,注销,当前用户,自定义异常,白名单)
1 演示先演示一波(1)不携带token访问资源(2)登录(3)携带token访问资源(4)注销(5)注销后访问资源(6)登录后再次访问资源演示完毕,开始讲解2 授权模式选择本项目选择密码模式,原因如下, 同一个企业内部的不同产品要使用本企业的 oAuth2.0 体系。在有些情况下,产品希望能够定制化授权页面。由于是同个企业,不需要向用户展示“xxx将获取以下权限”等字样并询问用户的授权意向,而只需进行用户的身份认证即可。这个时候,由具体的产品团队开发定制化的授权界面,接收用原创 2021-03-14 18:09:52 · 8093 阅读 · 1 评论 -
按照执行时间轮询任务(串行或并行)
按照执行时间轮询任务,不在执行时间内直接跳过。@Componentpublic class RoundRobinTask { //预案管理 private static ConcurrentHashMap<String, ConcurrentLinkedQueue<CruiseRoi>> taskRoiMap = new ConcurrentHashMap(); private static ConcurrentHashMap<String, De原创 2021-02-20 18:41:47 · 2026 阅读 · 8 评论 -
mybatis-plus使用指南
1 查询1 根据id查询Employee employee = emplopyeeDao.selectById(1);2 根据条件查询一条数据Employee employeeCondition = new Employee();employeeCondition.setId(1);employeeCondition.setLastName("更新测试");//若是数据库中符合传入的条件的记录有多条,那就不能用这个方法,会报错Employee employee = emplopyeeDao原创 2021-01-23 20:40:14 · 536 阅读 · 0 评论 -
网关登录授权实战
1 用户名和密码登录获取token1.1 获取验证码(1)生成图形验证码,将图形验证码保存到redis(key,value)public CloudwalkResult<AcCaptchaOutDTO> generateCaptcha() throws ServiceException { try { AcCaptchaDTO acCaptchaDTO = this.acCaptchaProcessor.generate(); ByteArrayOu原创 2021-01-14 20:42:47 · 1623 阅读 · 0 评论 -
常用技术004(Spring Security Oauth2 JWT)
1 认证原理(密码模式)(1)用户输入用户名和密码,验证后会获取token。同时,这个token被保存到redis或者mysql中。(2)用户携带token访问资源,网关会将用户携带的token与已保存的token进行比较,通过认证的用户可以访问资源。2 认证实现2.1 基于 JDBC 存储令牌(1)配置认证服务器配置数据源:DataSource配置令牌存储方式:TokenStore -> JdbcTokenStore配置客户端读取方式:ClientDetailsServi原创 2021-01-11 15:46:58 · 469 阅读 · 0 评论 -
常用技术002(ES索引)
1 Index、Type、Document1、Indexindex:索引是文档(Document)的容器,是一类文档的集合。2、TypeType 可以理解成关系数据库中Table,在7.0开始,一个索引只能建一个Type为_doc3、DocumentDocument Index 里面单条的记录称为Document(文档),等同于关系型数据库表中的行。2 ES创建索引库和搜索2.1 创建索引库结构在changgou_service_api项目下创建changgou_service_sear原创 2021-01-11 11:51:43 · 408 阅读 · 0 评论 -
常用技术001(nginx+lua实现二级缓存和限流)
网站首页高可用nginx+lua学习目标了解Lua语言的基本语法使用nginx+Lua+redis实现广告缓存掌握nginx限流的基本使用方法1 Lua介绍1.1 lua是什么 Lua 是一个小巧的脚本语言。它是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo三人所组成的研原创 2021-01-11 11:01:53 · 1165 阅读 · 0 评论 -
登录和授权实战
1 准备工作1.1 发送短信服务1.1.1 接入阿里云短信服务阿里云短信接入1.1.2 短信发送工具类@Componentpublic class SmsUtils { private static final Logger LOGGER = LoggerFactory.getLogger(SmsUtils.class); @Autowired private AcSmsProperties acSmsProperties; @Autowired p原创 2021-01-10 16:31:07 · 702 阅读 · 0 评论 -
JWT+SpringSecurity进行网关安全认证
1 SpringSecuritySpringSecurity进行网关安全认证的过程很简单,认证的过程就好比一个员工通过人脸,指纹或工牌等凭证进入公司。这里人脸,指纹,工牌就相当于一个凭证,其中任一凭证经过认证后都可以进入公司。经过以上分析不难猜出SpringSecurity主要包括三个组件:Authentication(认证/身份验证)类比 人脸AuthenticationProvider(认证提供者)类比 人脸识别应用AuthenticationManager(认证管理者)类比 门禁系统(包含多原创 2020-12-19 17:51:23 · 1073 阅读 · 1 评论 -
1 Gitlab和Git安装
1 安装Dockeryum -y install docker-io Docker 仓库分为公开仓库(Public)和私有仓库(Private)两种形式,我们使用阿里云的公开仓库。2 在Docker下安装GitLab拉取gitlab、redis、postgresql,gitlab依赖redis和postgresql:docker pull sameersb...原创 2020-03-30 19:17:50 · 625 阅读 · 0 评论 -
云服务到底是什么?
1 虚拟化技术想要了解云计算,首先需要知道什么是虚拟化技术。1.1 纯低层硬件资源的虚拟化1.1.1 宿主架构在宿主架构中,由主机OS 管理硬件资源,而VMM(虚拟机监控器)是通过调用主机OS 上的某些服务来获得资源,提供实际的虚拟化功能。该架构主要应用于高端服务器或生产集群,采用该架构的技术有:VMware Workstation、VMware Server(GSX)、Vi...原创 2020-03-29 14:01:03 · 4253 阅读 · 3 评论 -
1 Spring实现数据持久化(开篇)
1 Spring在持久化中的应用多年以来,关系型数据库一直是企业级应用中的统治者。在博客“Spring实现数据持久化(Spring+JDBC)”中,我们将会看到如何使用Spring的JDBC抽象来查询关系型数据库,这要比原生的JDBC简单得多。如果你不喜欢JDBC风格的话,在博客“Spring实现数据持久化(Spring+ORM)”中,将会展现Spring如何与对象关系映射(ORM)框架进...原创 2020-02-04 14:25:16 · 1055 阅读 · 0 评论 -
3 Spring Security详解(授权及保护视图)
不同用户登录后看到的菜单是不一样的。例如,管理员能够看到系统管理,而普通用户看不到。实现这一功能需要两步:给用户不同的权限。 Spring Security使用JSP标签库来渲染视图。1 保护视图1.1 Spring Security的JSP标签库Spring Security的JSP标签库很小,只包含三个标签:为了使用JSP标签库,我们需要在对应的JSP中声明它:...原创 2020-02-03 12:49:00 · 642 阅读 · 0 评论 -
2 Spring Security详解(认证用户)
认证用户的过程:进入认证页面-->输入用户名和密码-->CSRF-->查询存储的用户数据(用户名、密码以及角色信息)-->认证完成项目的源码:https://download.youkuaiyun.com/download/A1342772/121323011 自定义认证页面不使用Spring Security自带的认证页面,使用自己定义的。释放静态资源,拦截器不要拦截...原创 2020-02-02 14:21:21 · 900 阅读 · 0 评论 -
1 Spring Security详解(入门篇)
1 权限管理1.1 权限管理概念权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源。权限管理几乎出现在任何系统里面,前提是需要有用户和密码认证的系统。在权限管理的概念中,有两个非常重要的名词:认证:通过用户名和密码成功登陆系统后,让系统得到当前用户的角色身份(用户登录后获取角色身份)。 授权:系统根据当前用户的角色,给其授予对应可以操作的...原创 2020-02-01 22:05:10 · 1188 阅读 · 0 评论 -
4 springMVC详解(项目实战2-传递模型数据,文件上传,异常处理,拦截器)
具体信息可以查看https://download.youkuaiyun.com/download/A1342772/12127249原创 2020-01-31 14:16:07 · 323 阅读 · 0 评论 -
4 springMVC详解(项目实战2-控制器接收参数)
1 controllerpackage cn.edu.nuaa.controller;import cn.edu.nuaa.domain.Account;import cn.edu.nuaa.domain.User;import org.springframework.beans.factory.annotation.Autowired;import org.springfram...原创 2020-01-30 17:17:24 · 355 阅读 · 0 评论 -
4 springMVC详解(项目实战1-入门程序)
1 创建WEB工程,引入开发的jar包 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source>...原创 2020-01-30 12:36:02 · 443 阅读 · 0 评论 -
3 springMVC详解(高级技术)
1 DispatcherServlet新的配置1.1 自定义DispatcherServlet配置在SpittrWebAppInitializer中我们所编写的三个方法仅仅是必须要重载的abstract方法。但实际上还有更多的方法可以进行重载,从而实现额外的配置。此类的方法之一就是customizeRegistration()。在AbstractAnnotationConfigDispat...原创 2020-01-30 12:32:51 · 583 阅读 · 0 评论 -
2 springMVC详解(视图解析器)
1 理解视图解析视图解析器首先往视图逻辑名上添加前后缀,找到渲染模型的JSP文件(也可以不是JSP),使用JSP对模型进行渲染。简而言之,就是对模型进行渲染,并将渲染后的视图发送给浏览器。作用:如果控制器中的方法直接负责产生HTML的话,就很难在不影响请求处理逻辑的前提下,维护和更新视图。只返回一个视图逻辑名,控制器方法和视图的实现会在模型内容上达成一致,这是两者的最大关联,除此之 外...原创 2020-01-29 14:24:37 · 2056 阅读 · 1 评论 -
1 SpringMVC详解(起步)
Spring MVC基于模型-视图-控制器(Model-View-Controller,MVC)模式实现,它能够帮你构建像Spring框架那样灵活和松耦合的Web应用程序。1 跟踪Spring MVC请求在请求离开浏览器时,会带有用户所请求内容的信息,至少会包含请求的URL。请求旅程的第一站是DispatcherServlet。DispatcherServlet就是前端控制器。 Di...原创 2020-01-28 07:58:18 · 577 阅读 · 0 评论 -
03-Spring实战(Spring概述)
当谈论Spring时,其实它远远超出我们的想象。事实上,Spring远不是Spring框架所下载的那些。如果仅仅停留在核心的Spring框架层面,我们将错过Spring Portfolio所提供的巨额财富。整个Spring Portfolio包括多个构建于核心Spring框架之上的框架和类库。概括地讲,整个Spring Portfolio几乎为每一个领域的Java开发都提供了Spring编程模型。...原创 2020-01-17 22:29:12 · 298 阅读 · 0 评论 -
02-Spring实战(Bean容器)
1 Spring容器(container)在基于Spring的应用中,你的应用对象生存于Spring容器(container)中。如下图所示,Spring容器负责配置并管理对象的整个生命周期,从生存到死亡。Bean在容器中生活一辈子,从出生到死亡。2 容器的分类Spring自带了多个容器实现,可以归为两种不同的类型。bean工厂(由org.springframework. be...原创 2020-01-17 21:47:46 · 267 阅读 · 0 评论 -
01-Spring实战(Spring简化java编程)
1 Spring简化java开发为了降低Java开发的复杂性,Spring采取了以下4种关键策略:(1)基于POJO的轻措级和最小侵入性编程;(2)通过依赖注入和面向接口实现松耦合;(3)基于切面和惯例进行声明式编程;(4)通过切面和模板减少样板式代码。1.1 基于POJO的轻措级和最小侵入性编程POJO:POJO(Plain Ordinary Java Object)...原创 2020-01-17 18:01:30 · 425 阅读 · 0 评论