后端主流框架
spring、springmvc、springBoot、mybatis、spring cloud和spring cloud alibaba等主流框架学习记录!
Curry·DK
这个作者很懒,什么都没留下…
展开
-
SpringCloudGateway网关组件
SpringCloud Gateway是又SpringCloud提供的网关组件,用户客户端和各微服务之间请求的路由转发。原创 2021-07-13 18:29:26 · 244 阅读 · 0 评论 -
Sentinel 微服务中的服务容错组件
Sentinel 是由阿里开源的,广泛用于微服务中的服务容错组件。原创 2021-07-12 19:10:42 · 128 阅读 · 1 评论 -
Fegin--Spring Cloud微服务框架中服务调用组件
Fegin是Spring Cloud微服务框架中服务调用组件,可以完美的替代RestTemplate的方式进行服务的调用,而且Nacos完美的集成了Fegin,Fegin内部集成了Ribbon来实现某个服务集群的负载均衡。原创 2021-07-11 20:59:55 · 141 阅读 · 0 评论 -
RestTemplate--SpingCloud的微服务调用方式
在使用SpringCloud框架进行项目的微服务架构开发时,可以使用RestTemplate来实现微服务之间的调用,但是不推荐,推荐使用Fegin来实现服务的调用。原创 2021-07-11 20:56:53 · 107 阅读 · 0 评论 -
Ribbon -- SpringCloud提供的负载均衡组件
Ribbon是SpringCloud提供的负载均衡组件。原创 2021-07-11 20:46:25 · 123 阅读 · 1 评论 -
SpringSecurity+JWT 的权限验证技术
JWT是一种用于判断用户登录的令牌机制SpringSecurity是后端对请求资源进行权限验证的框架,它可以定制登录/退出逻辑,指定放行接口、验证接口,以及对检验的接口添加JWT filter实现登录权限验证放行的接口就不会进行JWT的filter验证,JWT的filet验证可以借助spring mvc框架的拦截器接口,这样当SpringSecurity放行接口时,springmvc的拦截器失去作用,当SpringSecurity验证接口时,spring mvc发挥作用,可以借助这种机制进行jwt的验证原创 2021-03-28 19:00:20 · 290 阅读 · 0 评论 -
基于JWT的token验证机制
Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的应用返回越来越广泛,它很好的取代了原始的保存在session中的登录认证的方式,因为这种方式在用户量上升的时候,消耗的内存较多,而且对于分布式的站点,虽然可以使用共享session来实现单点登录但是对于系统消耗较大。JWT说的本质一点就是在用户登录后对用户信息进行固定约束的加密手段从而产原创 2021-03-26 19:43:43 · 366 阅读 · 0 评论 -
Spring使用@Validated注解进行参数的校验
在之前项目中参数的校验,都是自己写的判断方法进行校验,这种方式需要编写大量的参数校验代码,这次采用了spring提供的注解进行参数的校验,更为的方便,简洁。@Valid:常见用在方法,类中字段上进行校验@Validated:是spring提供的对@Valid的封装,常见用在方法上进行校验,可以算是@Valid的一个升级版1.业务场景使用spring框架的代码,在Controller层的新增、修改接口中,往往是直接接收一个@ResponseBody解析的对象,接收之后需要进行一个对象参数的校验,防止原创 2021-03-24 19:05:34 · 1347 阅读 · 0 评论 -
Spring Security ——— Spring的安全框架
Spring Security 的前身是 Acegi Security ,是 Spring 项目组中用来提供安全认证服务的框架。Spring Security 为基于J2EE企业应用软件提供了全面安全服务。特别是使用领先的J2EE解决方案-Spring框架开发的企业软件项目。人们使用Spring Security有很多种原因,不过通常吸引他们的是在J2EE Servlet规范或EJB规范中找不到典型企业应用场景的解决方案。特别要指出的是他们不能再WAR 或 EAR 级别进行移植。这样,如果你更换服务原创 2020-11-17 16:16:19 · 331 阅读 · 0 评论 -
在windows本地系统下,安装完成redis后配置开机自启功能
准备:安装好redis点击安装目录下的redis-server.exe看到下图证明安装成功但是这样做就一个缺点,redis每次都需要自己手动启动。为了减少这种操作,可以将redis添加到本地服务中,然后启动服务来实现以后的开机自动启动功能。首先cmd到redis安装根目录下执行 注册安装服务同时如果想卸载,同理执行卸载服务#注册安装服务redis-server --service-install redis.windows.conf --loglevel verbose#卸载服务re原创 2020-09-11 10:41:06 · 127 阅读 · 1 评论 -
高并发项目如何优化 -----redis缓存+页面静态化
对于高并发的项目,为了提高系统的承压能力和响应速度,可以使用redis缓存数据和资源静态化,本篇文章就是记录关于项目优化的过程。一、页面缓存对于通用页面,一般使用页面缓存,直接将需要返回给用户的页面存储到redis中,然后当有人再次访问时直接出redis中取出直接返回给用户,不在进行其他操作,节省系统资源。二、url缓存url缓存是一种特殊的页面缓存,原因在于他有特殊的参数信息,对应不同的页面,比如一个商品的详情页,就需要url缓存,因为不同的商品有不同的信息,使用页面缓存并不能实现这一功能。三、原创 2020-06-10 12:20:43 · 1995 阅读 · 0 评论 -
SpringBoot项目添加Swagger实现自动生成API文档+(swagger-bootstrap-ui)文档界面优化+找不到文档怎么修改
在前后端分离的开发中,后端需要给前端提供API接口文档,这是非常重要的一步。但是,接口文档的编写以及更新也是在开发过程中需要耗费很多的时间,特别是一些参数的内容,容易因为错误的编写而导致前端人员使用不了接口。Swagger便是为了解决这个问题而生的,在开发的过程中,根据后端开发人员配置的参数,自动生成API文档,本篇文章就是关于在Springboot项目中使用这个插件的基础功能介绍。一、Swagger相关注解注解介绍@Api@Api 用在类上,说明该类的作用。可以标记一个 Cont原创 2020-06-02 23:08:17 · 1521 阅读 · 0 评论 -
MyBatis中的selectKey的用法(使用xml标签的样式)+ 一直返回1怎么解决
在insert语句中,在MySQL中使用函数来自动生成插入表的主键(设置id自动递增),而且需要方法能返回这个生成主键。使用myBatis的selectKey标签可以实现这个效果。使用注解的方式还是xml的方式,根据具体情况即可,使用的方式基本一样,就是语句的编写有一些差距。本篇文章就是以xml的方式进行配置的使用的。一、了解selectKey的基本属性属性描述keyPropertyselectKey 语句结果应该被设置的目标属性resultType结果的类型。MyBat原创 2020-05-31 21:53:21 · 1476 阅读 · 0 评论 -
SpringBoot项目使用MyBatis的分页插件pagehelper
对于一些列表展示的数据,由于数据量可能比较大,我们习惯上会采用分页的方式进行,这时候MyBatis提供的分页插件pagehelper就可以实现这个功能。在springboot项目中使用pagehelper还是比较简单的,在没有做分页之前,我们service层调用dao层,得到展示的列表数据后,直接通过controller层返回给前端页面。这里要实现分页,需要改动controller层和service层的操作,只需要两个非常重要的类PageHelper、PageInfo。import com.github原创 2020-05-31 21:02:02 · 475 阅读 · 0 评论 -
Spring boot连接远程阿里云服务器中的Redis(修改redis.conf配置文件+开放端口)
Spring boot连接远程服务器中的Redis原创 2020-05-29 21:28:35 · 3820 阅读 · 1 评论 -
springboot登录模块补充--手机短信快速登录实现步骤
随着技术的不断发展,传统的账号、密码登录的方式正在被QQ、微信等第三方登录和手机短信验证登录取代,本篇文章详细记录手机短信快速的开发的心得。一、设计思路1.首先,需要用户的手机号,当用户输入手机号进行获取验证码时,要对手机号做一个参数校验,然后根据手机号查询数据库中的用户表,判断用户是不是存在,对于不存在的用户手机号,以异常的方式抛出提示信息。2.当数据库中的信息匹配成功匹配时,来实现发送验证的功能。首先,自动生成一个六位数验证码,然后调用阿里云短信服务的模板(因为我是使用阿里云的短信服务,具体的阿里原创 2020-05-26 15:02:54 · 794 阅读 · 1 评论 -
SpringBoot优化控制层代码,使用@Valid 对传入的参数进行校验,并自定义一个参数校验注解
在controller层,对数据进行校验首先使用@Valid注解,去到自己定义的和传入参数对应的类中,进行相应的参数要求的校验、在controller接受 @PostMapping(value = "/login_submit") public ResponseResult<Boolean> login_submit(@Valid LoginVo loginVo) { userService.checkLogin(loginVo); return Re原创 2020-05-17 16:30:47 · 1920 阅读 · 0 评论 -
ResponseResult在全局异常处理抛出中的实现(优化业务层代码)
在开发过程中,除系统自身的异常外,不同业务场景中用到的异常也不一样,为了优化代码,使业务场景只返回我们想要的结果,其他结果全部使用异常抛出。这样就需要在controller层添加一个异常处理类,即实现对controller层抛出的异常进行处理,返回相应的ResponseResult的方法**@ControllerAdvice 捕获 Controller 层抛出的异常,如果添加 @ResponseBody 返回信息则为JSON格式。@RestControllerAdvice 相当于 @Controller原创 2020-05-17 16:02:57 · 1061 阅读 · 0 评论 -
自定义ResponseResult对controller响应信息的封装
在使用restful api风格的接口进行开发时,后端中需要对具体的操作结果进行封装,在这个过程中,一般习惯先编写一个Response Code(定义code(状态码)、msg(返回提示信息)),然后编写一个Response Result(定义一个Response Code,在定义一个 T data(用来返回不同类型的数据)),用来做具体的成功or失败返回结果的封装。...原创 2020-05-16 20:50:21 · 1834 阅读 · 0 评论 -
Spring boot整合redis方法之RedisTemplate
使用Spring boot整合redis,其本质还是使用了Spring的Spring Data Redis去处理的实现的。使用之前要保证redis安装完成并启动其服务端,然后在框架中需要添加spring boot中的redis和redis池的相应依赖,然后编写相应的配置文件,写一个简单的demo,可以直接调用spring提供的redisTemplate来实现简单的crud操作,注意对象保存是需要实现序列化,不能直接存储,可以在对象类中实现Serializable类。...原创 2020-05-11 18:23:37 · 487 阅读 · 0 评论 -
Springtoot框架中的事务注解@Transactional不起作用的原因
在使用springboot这种高度集成的框架时,遇到问题往往不好发现原因在哪!Springtoot框架中的事务注解@Transactional不起作用的原因:1、使用注解的方法必须是public修饰符修饰的方法(private,protected修饰的方法都无效)!2、使用注解的方法中使用try…catch进行捕获了异常(如果需要捕获异常且又要事务起作用,则需要在catch中加:throw new RuntimeException()即可)!3、使用注解的方法使用时是被同类方法内部调用的也会失去作用原创 2020-05-11 10:39:25 · 166 阅读 · 0 评论 -
Spring框架的核心模块剖析
Spring框架是一个轻量级的开发框架,可以和任何一种框架集成在一起使用。可以和Spring MVC整合web(Controller)层,可以和MyBatis整合持久层。对于刚开始学习这个框架的小伙伴,经常看到这张图,这张图就是spring框架所集成的模块图,也是整个spring的内容。结合这张图和我所学完整个框架的体会,首先说Spring是一个容器框架,最重要的模块便是Core Contai...原创 2020-05-02 20:05:34 · 349 阅读 · 0 评论 -
Spring的ORM(对象关系映射)模块----学习笔记
ORM: 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。...原创 2020-04-30 21:05:55 · 498 阅读 · 0 评论 -
Spring的事务控制----入门级
Spring中的事务和数据库中的事务基本一致,Spring的事务是对数据库事务的封装,如果数据库不支持事务,那么Spring中的事务也没有作用。原创 2020-04-30 20:44:46 · 148 阅读 · 0 评论 -
Spring不同模块、不同功能对应的依赖(jar包)分类总结
Spring框架的依赖大题可以分为下面几种spring基础包、AOP切面、事务、数据库、web、日志、servlet、mybatis、activiti工作流、shiro(Java安全框架)、freemarker(.ftl)、thymeleaf(.html)共计12种,后几种基本不使用,本篇文章就来一个一个的说明每个模块所有的依赖及其代码(1)Spring基础包① 概述junit : mave...原创 2020-04-23 22:41:37 · 480 阅读 · 0 评论 -
Spring的AOP----从入门到精通(2)
本篇文章,结合上一张所学的内容,来使用代码感受一下spring的aop真正的作用。作为一个入门的小demo,这里我们使用的所有方法都不涉及传参问题。步骤可以分为如下:① 将目标类和切面类(封装了通知方法的类)加入到IOC容器中。② 告诉Spring到底哪个是切面类。使用@Aspect注解。③ 告诉Spring,切面类里面的每一个方法,都是何时何地运行。(1)将目标类和切面类加入到IOC容...原创 2020-04-23 22:18:07 · 201 阅读 · 0 评论 -
Spring的AOP----从入门到精通(1)
Spring框架中除了IOC之外,还有一项比较重要的技术AOP,本篇文章讲解AOP的相关内容。一、AOP是什么?AOP(Aspect Oriented Programming)面向切面编程;OOP(Object Oriented Programming)面向对象编程;面向切面编程:基于OOP基础之上的新的编程思想,是指在程序运行期间,将某段代码动态的切入到指定方法的指定位置进行运行的这种...原创 2020-04-22 19:20:28 · 195 阅读 · 0 评论 -
Spring之IOC详细分析(1)
Spring的核心是IOC(Inverse of Control 控制反转)和AOP(Aspect Oriented Programming 面向切面编程),本篇文章就是从比较基础的层面开始学习IOC的所有内容。一、IOC的控制反转 那到底是什么东西的“控制”被“反转”了呢?“控制”是指我们编写程序调用某个类的时候创建这个对象的控制权;“反转”是指这种控制权我们自己创建(new)中移除,转...原创 2020-04-20 21:52:01 · 186 阅读 · 0 评论 -
Spring之IOC详细分析(2)
spring原创 2020-04-20 21:50:49 · 162 阅读 · 0 评论 -
Mybatis参数传值,单参多参,foreach标签
一、单参传值对于单参数传值,在mapper.xml文件中存在三种书写格式,分别是#{参数名}、#{0}、#{param1}、#{arg0}四种方式。在dao层写好参数,使用mapper接口类,接下来使用不同的方式对mybatis单参传值进行介绍。(1)使用#{参数名}的方式在dao层接口中写的参数,在xml文件的参数中可以直接使用#{参数名}进行获取。(2)使用#{param1}...原创 2020-04-01 19:41:57 · 875 阅读 · 0 评论 -
window系统下用命令启动spring boot项目
首先先进入到项目文件夹底下window系统输入:mvn spring-boot:run原创 2020-03-11 10:56:07 · 1464 阅读 · 1 评论 -
spring boot项目的搭建(学习笔记)
学习目标:使用IDEA成功搭建一个Spring boot项目准备工作:成功安装IDEA步骤:1.打开IDEA,点击2.选择然后点击右侧的next按钮进入下一个页面继续next进入到这个页面是为项目添加依赖,可以根据自己的需要添加,也可以不添加在后面使用哪一个添加哪一个,继续next在这里为项目指定工程名字和路径,选择完毕后点击finish等待加载这样,一个spring b...原创 2020-03-11 17:29:38 · 84 阅读 · 0 评论 -
Spring boot 整合mybatis
一、准备工作(1)使用IDEA创建Spring boot项目,在创建时可以直接将jdbc、web、mysql、mybatis依赖直接加入到项目中。(2)数据库准备:使用疫情数据中的新闻数据表二、整合步骤(1)创建基本项目的框架在启动类下面一次创建pojo、dao、service、serviceimpl、controller包(包含个人习惯),在配置文件包下面创建Mappers包(存放sq...原创 2020-03-12 16:16:54 · 98 阅读 · 0 评论 -
spring boot下创建webapp+配置spring视图解析器
正常步骤下创建的spring boot项目是没有webapp这个包的,那么怎么添加这个包那?怎么配置视图解析器那?一、创建一个正常的spring boot项目,然后在main下面创建和java包同级的webapp包,创建完毕之后,点击依次点击二、配置webapp路径第一个箭头配置web.xml文件,在spring boot项目中,是不需要配置这个文件的,所以选不选无挂紧要,但第二个...原创 2020-03-04 22:06:32 · 936 阅读 · 0 评论 -
spring boot 编写restful web服务(新手)
以API“https://gturnquist-quoters.cfapps.io/api/random”为例,spring官网给的例子!一、编写与其返回数据对应的类(pojo类)package com.example.demo.pojo;import com.fasterxml.jackson.annotation.JsonIgnoreProperties;@JsonIgnorePr...原创 2020-03-04 20:42:12 · 135 阅读 · 0 评论 -
SSM三层框架整合
ssm三层框架,首先要明确是哪三层。在服务器开发中有三层分别是表现层、业务层、持久层,分别需要MyBatis框架、Spring框架、Springmvc框架。首先要明确,要以spring框架为中心,去整合其他两个框架...原创 2020-02-18 14:21:52 · 520 阅读 · 0 评论 -
spring mvc框架入门
spring mvc框架作用在三层框架的表现层,表现层中需要和浏览器进行参数请求和相应结果返回。spring mvc是一种基于java的实现mvc设计模式的请求驱动类型的轻量级web框架,属于spring framework的后续产品,已经融合在spring web flow里面,spring框架提供了构建web应用程序的全功能mvc模块,使用spring可插入的mvc架构,从而在使用sprin...原创 2020-02-18 14:05:13 · 211 阅读 · 0 评论 -
spring框架入门
首先明确,spring框架是作用在三层框架中的业务层框架,与持久层的mybatis框架和表现层的spring mvc框架作用类似,都在没层中重要作用原创 2020-02-18 13:29:10 · 140 阅读 · 0 评论 -
mybatis中mysql语句基于注解的编写入门
mybatis基于注解的编写,便可以代替mapper文件,直接在dao层接口类中加入@select…等注解进行编写使用mapper.xml编写参考添加链接描述使用注解编写,mapper.xml文件便被替代了,删掉即可,但是需要修改sqlMapConfig.xml中的映射文件dao层接口中的注解...原创 2020-02-18 12:19:17 · 183 阅读 · 0 评论 -
mybatis框架入门
mybatis框架:在三层架构中的持久层中处理和数据库交互的框架传统的jdbc对数据库的操作需要加载驱动…释放数据库资源,过程繁琐复杂,而在开发过程中,我们的核心应该在mysql语句中,mybatis框架便是来解决这次繁琐的过程,大大加快开发过程。Mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,是开发者只需要关注sql语句本身,不用其他繁琐的过程。通过xml文件或注解...原创 2020-02-18 11:52:16 · 260 阅读 · 0 评论