![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
快学SpringBoot
「已注销」
happyjava.cn
展开
-
【快学springboot】1.快速创建springboot项目
使用spring initialize工具快速创建springboot项目IDEA专业版默认集成了此工具,eclipse或者vs code等可以自行搜索安装。如果不希望安装此插件,也可直接通过官网创建spring boot项目,然后下载到本地即可。官网地址如下:https://start.spring.io/在IDEA使用spring initialize工具创建项目的时候选择spring ...原创 2019-08-17 17:00:52 · 68 阅读 · 0 评论 -
【快学SpringBoot】过滤XSS脚本攻击(包括json格式)
XSS攻击是什么XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。简而言之,就是作恶用户通过表单提交一些前端代码,如果不做处理的话,这些前端代码将会在展示的时候被浏览器执行。如何避免XSS攻击...原创 2019-08-17 17:15:44 · 1182 阅读 · 0 评论 -
「快学springboot」16.让swagger帮忙写接口文档
swagger简介官方的介绍THE WORLD'S MOST POPULAR API TOOLINGSwagger is the world’s largest framework of API developer tools for the OpenAPI Specification(OAS),enabling development across the entire API life...原创 2019-08-17 17:16:20 · 58 阅读 · 0 评论 -
【快学springboot】在springboot中写单元测试
前言很多公司都有写单元测试的硬性要求,在提交代码的时候,如果单测通不过或者说单元测试各种覆盖率不达标,会被拒绝合并代码。写单元测试,也是保证代码质量的一种方式。junit单元测试相信绝大多数的Java开发者都用过Junit来写单元测试。引入依赖:<dependency> <groupId>junit</groupId> <arti...原创 2019-08-17 17:18:39 · 96 阅读 · 0 评论 -
【快学springboot】使用springboot发送邮件
前言在实际项目中,经常需要用到邮件通知功能。比如,用户通过邮件注册,通过邮件找回密码等;又比如通过邮件发送系统情况,通过邮件发送报表信息等等,实际应用场景很多。这篇文章,就教大家通过springboot快速的实现一个发送邮件的功能。开启smtp这里以QQ邮箱为例。登录QQ邮箱之后,点击设置,点击账户。如下图:点击开启IMAP/SMTP服务。记下QQ邮箱提示的授权码:这个授权码,就...原创 2019-08-17 17:25:16 · 249 阅读 · 0 评论 -
「快学springboot」SpringBoot多环境配置文件
前言我们都知道springboot的配置卸载application.properties配置文件上(或者application.yml)。但是,如果想要把不同的环境(如开发环境,测试环境,生产环境)的配置文件分离,这要怎么做呢?其实,SpringBoot是支持指定不同的配置文件的。SpringBoot配置文件格式在Spring Boot中多环境配置文件名需要满足application-{pr...原创 2019-08-17 17:51:18 · 94 阅读 · 0 评论 -
「快学springboot」SpringBoot整合freeMark模板引擎
前言虽然现在流行前后端分离开发和部署,但是有时候还是需要用到服务端渲染页面的。比如:需要考虑到SEO优化等问题的时候,FreeMark其实还是很有作用的。本人的博客本来是用React开发的,但是后来发现搜索引擎难以收集由JS渲染的页面,所以前段时间,是用jQuery+FreeMark重写了我的博客前端页面。感兴趣的朋友,可以点击下面的查看更多的链接跳转至本人的博客。在springboot中,不...原创 2019-08-17 17:52:02 · 199 阅读 · 0 评论 -
「快学SpringBoot」配置文件的加载顺序和配置项默认值设置
前言有的时候,配置信息是我们无法在开发过程中就能确定的。比如,给客户开发的项目,客户需要根据自身的情况自定义配置,如数据库配置,加密密钥配置等等。这时候,就需要把配置文件放在外面,让用户自定义配置部署了。SpringBoot应对这种情况简直就是游刃有余,其有多种加载配置文件的方式。下面我们就来认识一下配置文件放在外部SpringBoot支持把配置文件放在外部。只要把配置文件放在jar包的同...原创 2019-08-17 17:52:37 · 135 阅读 · 0 评论 -
「快学springboot」集成Spring Security实现鉴权功能
Spring Security介绍Spring Security是Spring全家桶中的处理身份和权限问题的一员。Spring Security可以根据使用者的需要定制相关的角色身份和身份所具有的权限,完成黑名单操作、拦截无权限的操作等等。本文将讲解Springboot中使用spring security。引入依赖<dependency> <groupId>...原创 2019-08-17 17:53:12 · 152 阅读 · 0 评论 -
【快学springboot】SpringBoot整合Mybatis Plus
mybatis plus简介来自官方对于mybatis plus的介绍:MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。其支持以下特性:无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD ...原创 2019-08-17 17:53:51 · 81 阅读 · 0 评论 -
【快学SpringBoot】SpringBoot+Docker构建、运行、部署应用
前言Docker技术发展为当前流行的微服务提供了更加便利的环境,使用SpringBoot+Docker部署和发布应用,其实也是一件比较简单的事情。当前,前提是得有Docker的基础。源码在文末文末有项目源码的github地址构建一个SpringBoot项目本人最早的一篇文章,就是教大家如何使用Spring Initialise工具,快速的创建一个SpringBoot项目,如果还不懂的,可...原创 2019-08-27 21:28:10 · 200 阅读 · 0 评论 -
【快学SpringBoot】快速上手好用方便的Spring Cache缓存框架
前言缓存,在开发中是非常常用的。在高并发系统中,如果没有缓存,纯靠数据库来扛,那么数据库压力会非常大,搞不好还会出现宕机的情况。本篇文章,将会带大家学习Spring Cache缓存框架。原创声明本文发布于掘金号【Happyjava】。Happy的掘金地址:https://juejin.im/user/5cc2895df265da03a630ddca,Happy的个人博客:http://blo...原创 2019-08-27 21:30:07 · 133 阅读 · 0 评论 -
【快学springboot】14.操作redis之list
前言之前讲解了springboot(StringRedisTemplate)操作redis的string数据结构,这篇文章将会讲解list数据结构list数据结构具有的操作下图列出了redis list数据结构所具有的方法StringRedisTemplate提供的方法RedisTemplate提供的操作redis的方法列表如下:下面,我们挑一些常用的方法作为实例讲解,其它方法,可...原创 2019-08-17 17:14:58 · 493 阅读 · 0 评论 -
【快学springboot】13.操作redis之String数据结构
前言在之前的文章中,讲解了使用redis解决集群环境session共享的问题【快学springboot】11.整合redis实现session共享,这里已经引入了redis相关的依赖,并且通过springboot的配置,实现了session共享。下面,我们就通过springboot提供的RedisTemplate来操作redis。注入RedisTemplate@Autowiredpriva...原创 2019-08-17 17:13:38 · 75 阅读 · 0 评论 -
【快学springboot】3.多种接受参数的方式
前言在开发中,我们常常会碰到多种传参的方式。这里,我们就来总结下,springboot中可以运用到的接受参数的方式。URL参数这种参数,组合在url上,形如url/{id}。在springboot中,接受此类参数可以使用PathVariable注解,如下:@GetMapping(value = "/param/{id}")public Object pathVariable(@PathV...原创 2019-08-17 17:03:20 · 153 阅读 · 0 评论 -
【快学springboot】4.接口参数校验
前言在开发接口的时候,参数校验是必不可少的。参数的类型,长度等规则,在开发初期都应该由产品经理或者技术负责人等来约定。如果不对入参做校验,很有可能会因为一些不合法的参数而导致系统出现异常。上一篇文章讲了多种接受参数的方法【快学springboot】3.多种接受参数的方式。因为目前json类型的参数是最常用的,所以这里只讲解json类型的参数校验。其他类型的大同小异。新建一个Param.jav...原创 2019-08-17 17:03:50 · 132 阅读 · 0 评论 -
【快学springboot】5.全局异常捕获,异常流处理业务逻辑
前言上一篇文章说到,参数校验,往往需要和全局的异常拦截器来配套使用,使得返回的数据结构永远是保持一致的。参数异常springboot默认的返回结构:{ "timestamp": "2019-04-25T13:09:02.196+0000", "status": 400, "error": "Bad Request", "errors": [ { "codes": [ "Patte...原创 2019-08-17 17:04:21 · 93 阅读 · 0 评论 -
【快学springboot】2.Restful简介,SpringBoot构建Restful接口
Restful简介Restful一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。随着Restful风格的流行,现在更多的人叫HTTP接口为Restful接口。所以还是很有必要了解下Restful的一些基础约定的。Rest架构的主要原则网络上的所有事物都被抽象为资...原创 2019-08-17 17:02:09 · 93 阅读 · 0 评论 -
【快学springboot】6.WebMvcConfigurer配置静态资源和解决跨域
勘误有个朋友说:为什么我配置了WebMvcConfigurer,静态资源static依然能访问?!这里是本人的失误,我在启动类中添加了EnableWebMvc注解(文章里却没有提及,最好的做法是放在对应的配置类上面),导致了默认配置的失效。如果不使用该注解,默认的配置路径不会被覆盖掉~前言虽然现在都流行前后端分离部署,但有时候还是需要把前端文件跟后端文件一起打包发布,这就涉及到了spri...原创 2019-08-17 17:06:45 · 847 阅读 · 0 评论 -
【快学springboot】7.使用Spring Boot Jpa
jpa简介Jpa (Java Persistence API) 是 Sun 官方提出的 Java 持久化规范。它为 Java 开发人员提供了一种对象/关联映射工具来管理 Java 应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合 ORM 技术。值得注意的是,JPA只是一套规范,不是具体的实现。Java很喜欢自己去定义规范,然后让厂商自己去实现,比如JMS等。Spring Da...原创 2019-08-17 17:07:31 · 54 阅读 · 0 评论 -
【快学springboot】8.JPA乐观锁OptimisticLocking
介绍当涉及到企业应用程序时,正确地管理对数据库的并发访问是至关重要的。为此,我们可以使用Java Persistence API提供的乐观锁定机制。它导致在同一时间对同一数据进行多次更新不会相互干扰。为了使用OptimisticLocking,我们需要一个实体(Entity),其中包含一个带有@Version注释的属性。在使用它时,每个读取数据的事务都持有version属性的值。在事务想要进行更...原创 2019-08-17 17:08:29 · 262 阅读 · 0 评论 -
【快学springboot】9.使用 @Transactional 注解配置事务管理
介绍springboot对数据库事务的使用非常的方便,只需要在方法上添加@Transactional注解即可。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编程式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于 AOP,将具体业务逻辑与事务处理解耦。声明式事务管理使业务代码逻辑不受污染, 因此在实际使用中声明式事务用的比较多。使用Transac...原创 2019-08-17 17:09:16 · 85 阅读 · 0 评论 -
【快学springboot】10.使用@Async注解创建多线程,自定义线程池
说明使用@Async注解创建多线程非常的方便,还可以通过配置,实现线程池。比直接使用线程池简单太多。而且在使用上跟普通方法没什么区别,加上个@Async注解即可实现异步调用。用法AsyncTask.java@Componentpublic class AsyncTask { private static final Logger LOG = LoggerFactory.getLogge...原创 2019-08-17 17:10:01 · 279 阅读 · 0 评论 -
【快学springboot】11.整合redis实现session共享
前言**这里都是基于前面的项目基础上的。**springboot整合redis非常的方便,这也是springboot的宗旨,简化配置。这篇文章就教大家如何使用springboot整合redis来实现session共享。引入依赖<dependency><groupId>org.springframework.boot</groupId><art...原创 2019-08-17 17:11:18 · 112 阅读 · 0 评论 -
【快学springboot】12.实现拦截器
前言之前在【快学springboot】6.WebMvcConfigurer配置静态资源和解决跨域里有用到WebMvcConfigurer接口来实现静态资源的映射和解决跨域请求,并且在文末还说了WebMvcConfigurer(springboot2.x之后使用该接口,springboot1.x使用WebMvcConfigurerAdapter类,不过该类已经被标识过期了)可以配置很多东西,如下:...原创 2019-08-17 17:12:24 · 65 阅读 · 0 评论 -
【快学SpringBoot】Spring Cache+Redis实现高可用缓存解决方案
前言之前已经写过一篇文章介绍SpringBoot整合Spring Cache,SpringBoot默认使用的是ConcurrentMapCacheManager,在实际项目中,我们需要一个高可用的、分布式的缓存解决方案,使用默认的这种缓存方式,只是在当前进程里缓存了而已。Spring Cache整合Redis来实现缓存,其实也不是一件复杂的事情,下面就开始吧。关于Spring Cache的运用...原创 2019-08-27 21:30:38 · 181 阅读 · 0 评论