Spring Boot
文章平均质量分 92
springboot
云中、漫步
+ --> -
展开
-
Spring Boot (四十九)——整合spring security
Spring Security 是 Spring 家族中的一个安全管理框架,实际上,在 Spring Boot 出现之前,Spring Security 就已经发展了多年了,但是使用的并不多,安全管理这个领域,一直是 Shiro 的天下。相对于 Shiro,在 SSM/SSH 中整合 Spring Security 都是比较麻烦的操作,所以,Spring Security 虽然功能比 Shiro...原创 2020-05-03 16:25:48 · 207 阅读 · 0 评论 -
Spring Boot (四十八)——springcache介绍
目录1、基本介绍2、SpringCache具有如下特点1、基本介绍 一个应用主要瓶颈在于数据库的IO,大家都知道内存的速度是远远快于硬盘的速度(即使固态硬盘与内容也无法比拟)。应用之中经常会遇到返回相同的数据(数据字典,行政区划树),因为这些数据变化的可能性很小。假如我们使用传统的方式每次都通过接口与数据库打交道去请求获得;是不是每次都既消耗了内存...原创 2020-04-29 01:39:47 · 302 阅读 · 0 评论 -
Spring Boot (四十九)——springcache整合Redis实现缓存
Spring3.1中开始引入了令人激动的Cache,在Spring Boot中,可以非常方便的使用Redis来作为Cache的实现,进而实现数据的缓存。1、工程创建首先创建一个Spring Boot工程,注意创建的时候需要引入三个依赖,web、cache以及redis及spring security,如下图: <dependency> <group...原创 2020-04-29 01:39:33 · 331 阅读 · 0 评论 -
Spring Boot (四十七)——实现session共享(nginx+redis)
一、Spring-Session使用的场景HttpSession是通过Servlet容器进行创建和管理的,在传统的单服务架构中,通过Http请求创建的Session信息是存储在Web服务器内存中,如Tomcat/Jetty。假如当用户通过浏览器访问应用服务器,session信息中保存了用户的登录信息,并且session信息没有过期失效,那么用户就一直处于登录状态,可以做一些登录状态的业务操作。...原创 2020-04-14 22:32:38 · 214 阅读 · 0 评论 -
Spring Boot (四十六)——整合redis
使用 Java 操作 Redis 的方案很多,Jedis 是目前较为流行的一种方案,除了 Jedis ,还有很多其他解决方案,如下:除了这些方案之外,还有一个使用也相当多的方案,就是 Spring Data Redis。在传统的 SSM 中,需要开发者自己来配置 Spring Data Redis ,这个配置比较繁琐,主要配置 3 个东西:连接池、连接器信息以及 key 和 value 的序...原创 2020-04-10 00:36:46 · 218 阅读 · 0 评论 -
Spring Boot (四十五)——使用单元测试
1、在pom文件中添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope></dependen...原创 2020-02-05 20:35:05 · 130 阅读 · 2 评论 -
Spring Boot (四十四)——在idea中实现热部署
什么是热部署?在项目开发过程中,常常会改动页面数据或者修改数据结构,为了显示改动效果,往往需要重启应用查看改变效果,其实就是重新编译生成了新的 Class 文件,这个文件里记录着和代码等对应的各种信息,然后 Class 文件将被虚拟机的 ClassLoader 加载。而热部署正是利用了这个特点,它监听到如果有 Class 文件改动了,就会创建一个新的 ClaassLoader 进行加载该文件,...原创 2020-02-05 19:39:55 · 226 阅读 · 0 评论 -
Spring Boot (四十三)——Jpa构建 RESTful 查询定制
最广泛的定制,就是查询,因为增删改操作的变化不像查询这么丰富。对于查询的定制,非常容易,只需要提供相关的方法即可。例如根据姓名查询学生:public interface StudentDao extends JpaRepository<Student, Integer> { List<Student> findByNameContaining(@Param("na...原创 2020-02-05 15:52:04 · 411 阅读 · 1 评论 -
Spring Boot (四十二)——Jpa构建 RESTful 风格应用
RESTful 这个概念提出来很早,但是以前没有移动互联网时,我们做的大部分应用都是前后端不分的,在这种架构的应用中,数据基本上都是在后端渲染好返回给前端展示的,此时 RESTful 在 Web 应用中基本就没用武之地,移动互联网的兴起,让我们一套后台对应多个前端项目,因此前后端分离,RESTful 顺利走上前台。之前在SpringMVC中学习了restful的概念,SpringMVC 对于 R...原创 2020-02-05 14:47:15 · 359 阅读 · 0 评论 -
Spring Boot (四十一)——整合Jpa多数据源
工程创建首先是创建一个Spring Boot工程,创建时添加基本的Web、Jpa以及MySQL依赖,如下:创建完成后,添加Druid依赖,这里和前文的要求一样,要使用专为Spring Boot打造的Druid,大伙可能发现了,如果整合多数据源一定要使用这个依赖,因为这个依赖中才有DruidDataSourceBuilder,最后还要记得锁定数据库依赖的版本,因为可能大部分人用的还是5.x的M...原创 2020-02-04 11:23:17 · 93 阅读 · 0 评论 -
Spring Boot (四十)——Jpa 之关键字定义查询及自定义查询
开发者也可以在接口中自己声明相关的方法,只需要方法名称符合规范即可,在Spring Data中,只要按照既定的规范命名方法,Spring Data Jpa就知道你想干嘛,这样就不用写SQL了,那么规范是什么呢?参考下图:当然,这种方法命名主要是针对查询,按照 Spring Data 的规范,查询方法以 find,read, get 开头,比如:public interface BookDao...原创 2020-02-04 00:13:52 · 907 阅读 · 0 评论 -
Spring Boot (三十九)——Spring Data Jpa 整合
前言Spring Boot中的数据持久化方案前面给大伙介绍了两种了,一个是JdbcTemplate,还有一个MyBatis,JdbcTemplate配置简单,使用也简单,但是功能也非常有限,MyBatis则比较灵活,功能也很强大,据我所知,公司采用MyBatis做数据持久化的相当多,但是MyBatis并不是唯一的解决方案,除了MyBatis之外,还有另外一个东西,那就是Jpa。工程创建创建S...原创 2020-02-03 22:13:42 · 85 阅读 · 0 评论 -
Spring Boot (三十八)——Spring Data Jpa 简介
有很多读者留言希望松哥能好好聊聊 Spring Data Jpa!其实这个话题松哥以前零零散散的介绍过,在我的书里也有介绍过,但是在公众号中还没和大伙聊过,因此本文就和大家来仔细聊聊 Spring Data 和 Jpa!故事的主角Jpa1. JPA是什么 Java Persistence API:用于对象持久化的 API Java EE 5.0 平台标准的 ORM 规范,使得应用...原创 2020-01-14 00:06:41 · 165 阅读 · 0 评论 -
Spring Boot (三十七)——整合MyBatis多数据源
关于多数据源的配置,前面和大伙介绍过JdbcTemplate多数据源配置,那个比较简单,本文来和大伙说说MyBatis多数据源的配置。其实关于多数据源,我的态度还是和之前一样,复杂的就直接上分布式数据库中间件,简单的再考虑多数据源。这是项目中的建议,技术上的话,当然还是各种技术都要掌握的。前言在SSM整合中,开发者需要自己提供两个Bean,一个SqlSessionFactoryBean,还有...原创 2020-01-12 21:49:32 · 90 阅读 · 0 评论 -
Spring Boot (三十六)——整合MyBatis
Spring Boot中最简单的数据持久化方案是JdbcTemplate,JdbcTemplate虽然简单,但是用的并不多,因为它没有MyBatis方便,在Spring+SpringMVC中整合MyBatis步骤还是有点复杂的,要配置多个Bean,Spring Boot中对此做了进一步的简化,使MyBatis基本上可以做到开箱即用,本文就来看看在Spring Boot中MyBatis要如何使用。...原创 2020-01-12 17:46:42 · 118 阅读 · 0 评论 -
Spring Boot (三十五)——多数据源配置之JdbcTemplate
在实际开发中可能会遇到需要配置多个数据源的情况,比如:需要使用多个host、需要使用多种数据库(MySql、Oracle、SqlServer…).不过一般来说,如果有多数据源的需求,我还是建议首选分布式数据库中间件MyCat去解决相关问题,然后分表策略使用sharding-by-intfile。当然如果一些简单的需求,还是可以使用多数据源的,Spring Boot中,JdbcTemplate、My...原创 2020-01-12 16:21:42 · 429 阅读 · 0 评论 -
Spring Boot (三十四)——数据持久化之整合JdbcTemplate
在Java领域,数据持久化有几个常见的方案,有Spring自带的JdbcTemplate、有MyBatis,还有JPA,在这些方案中,最简单的就是Spring自带的JdbcTemplate了,这个东西虽然没有MyBatis那么方便,但是比起最开始的Jdbc已经强了很多了,它没有MyBatis功能那么强大,当然也意味着它的使用比较简单,事实上,JdbcTemplate算是最简单的数据持久化方案了。...原创 2020-01-12 15:14:19 · 105 阅读 · 0 评论 -
Spring Boot (三十三)——自定义 SpringMVC 配置,到底继承谁?
用过 Spring Boot 的小伙伴都知道,我们只需要在项目中引入 spring-boot-starter-web 依赖,SpringMVC 的一整套东西就会自动给我们配置好,但是,真实的项目环境比较复杂,系统自带的配置不一定满足我们的需求,往往我们还需要结合实际情况自定义配置。自定义配置就有讲究了,由于 Spring Boot 的版本变迁,加上这一块本身就有几个不同写法,很多小伙伴在这里容...原创 2020-01-11 17:54:24 · 135 阅读 · 0 评论 -
Spring Boot (三十二)——整合Swagger2
吧原创 2020-01-11 17:03:51 · 96 阅读 · 0 评论 -
Spring Boot (三十一)——自定义欢迎页及favicon
自定义欢迎页springboot 中定义欢迎页面有两种形式,如果是静态页面,直接定义一个index.html页面存放在resource/static目录下面,就可以了。如果是动态页面,我们需要请求一个“/index”路径返回一个“index.html”页面。需要注意的是,两者同时存在的话,以优先使用静态页面。实现比较简单,不再赘述。自定义faviconfavicon就是网站图标,比如:我...原创 2020-01-11 14:54:17 · 251 阅读 · 0 评论 -
Spring Boot (三十)——整合AOP
稍后整理原创 2020-01-11 14:28:35 · 182 阅读 · 0 评论 -
Spring Boot (二十九)——使用类型转换器
类型转换主要用在日期上,前端传来一个日期,后端如何来接收呢?下面看一个简单的例子:定义一个接口,方法接收一个Date类型的参数:@RestControllerpublic class UserController { @GetMapping("/hello") public void hello(Date date){ System.out.println(...原创 2020-01-11 13:50:40 · 415 阅读 · 0 评论 -
Spring Boot (二十八)——路径映射
我们都知道,我们使用动态模板如freemarker、thymeleaf等时,一般情况下我们都是经过一个controller处理后将页面渲染之后返回的,那么如果有些页面我们不需要渲染就想直接返回该怎么处理呢?这时候我们可以使用springboot提供的路径映射实现。具体如下:1、导入thymeleaf依赖,创建一个hell页面:<!DOCTYPE html><html la...原创 2020-01-11 00:50:46 · 250 阅读 · 0 评论 -
Spring Boot (二十七)——整合web基础组件
Web中的三大组件servlet、filter、listener在springboot 中也可以整合,下面具体实现一下:整合servlet创建一个servlet,继承HttpServlet类,这里需要添加注解@WebServlet,指定我们请求的action:@WebServlet(urlPatterns = "/myServlet")public class MyServlet exte...原创 2020-01-10 23:03:13 · 106 阅读 · 0 评论 -
Spring Boot (二十六)——定时任务
在 Spring + SpringMVC 环境中,一般来说,要实现定时任务,我们有两中方案,一种是使用 Spring 自带的定时任务处理器 @Scheduled 注解,另一种就是使用第三方框架 Quartz ,Spring Boot 源自 Spring+SpringMVC ,因此天然具备这两个 Spring 中的定时任务实现策略,当然也支持 Quartz,本文我们就来看下 Spring Boot ...原创 2020-01-10 22:16:34 · 123 阅读 · 0 评论 -
Spring Boot (二十五)——定义系统启动任务
在 Servlet/Jsp 项目中,如果涉及到系统任务,例如在项目启动阶段要做一些数据初始化操作,这些操作有一个共同的特点,只在项目启动时进行,以后都不再执行,这里,容易想到web基础中的三大组件( Servlet、Filter、Listener )之一 Listener ,这种情况下,一般定义一个 ServletContextListener,然后就可以监听到项目启动和销毁,进而做出相应的数据初...原创 2020-01-10 17:33:40 · 180 阅读 · 0 评论 -
Spring Boot (二十四)——注册拦截器
在springboot中使用拦截器有两个步骤:1、自定义拦截器类,实现HandlerInterceptor接口2、注册拦截器自定义拦截器类public class MyInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest reques...原创 2020-01-10 15:09:27 · 171 阅读 · 0 评论 -
Spring Boot (二十三)——加载XML配置
前言在使用springboot的时候一般是极少需要添加配置文件的(application.properties除外),但是在实际应用中也会存在不得不添加配置文件的情况,例如集成其他框架或者需要配置一些中间件等,在这种情况下,我们就需要引入我们自定义的xml配置文件了。实现看一个最简单的例子,不用注解,使用xml的方式给容器中注入一个bean:首先,准备一个bean,不要注解:public...原创 2020-01-10 14:31:52 · 320 阅读 · 0 评论 -
Spring Boot (二十二)——通过CORS解决跨域问题
前言在前后端分离的项目中,前端一般是通过Ajax请求接口,如果前端和后台不在同一个服务器和端口,那么就会出现跨域的问题,比如当localhost:8081网站访问localhost:8080网站资源就会存在跨域问题。同源策略很多人对跨域有一种误解,以为这是前端的事,和后端没关系,其实不是这样的,说到跨域,就不得不说说浏览器的同源策略。同源策略是由Netscape提出的一个著名的安全策略,它...原创 2020-01-10 13:32:04 · 389 阅读 · 0 评论 -
Spring Boot (二十一)——自定义异常处理
在 Spring Boot 项目中 ,异常统一处理,可以使用 Spring 中 @ControllerAdvice 来统一处理,也可以自己来定义异常处理方案。Spring Boot 中,对异常的处理有一些默认的策略,我们分别来看。默认情况下,Spring Boot 中的异常页面 是这样的:我们从这个异常提示中,也能看出来,之所以用户看到这个页面,是因为开发者没有明确提供一个 /error 路...原创 2020-01-10 01:24:29 · 330 阅读 · 0 评论 -
Spring Boot (二十)——@ControllerAdvice注解的三种使用场景
@ControllerAdvice ,这是一个非常有用的注解,顾名思义,这是一个增强的 Controller。使用这个 Controller ,可以实现三个方面的功能:全局异常处理全局数据绑定全局数据预处理灵活使用这三个功能,可以帮助我们简化很多工作,需要注意的是,这是 SpringMVC 提供的功能,在 Spring Boot 中可以直接使用,下面分别来看。全局异常处理先看一个异...原创 2020-01-09 00:37:41 · 702 阅读 · 0 评论 -
Spring Boot (十九)——实现文件上传
文件上传是项目开发中最常见的功能,springboot同样支持文件上传,需要使用到MultipartFile,MultipartFile是spring类型,代表HTML中form data方式上传的文件,包含二进制数据+文件名称。下面具体实现以下文件上传的几种场景:单文件上传在springboot中我们实现文件上传,不需要我们添加额外的依赖,已经有默认的配置,我们只需要编写我们的上传逻辑即可...原创 2020-01-06 00:36:47 · 247 阅读 · 0 评论 -
Spring Boot (十八)——静态资源配置
SSM 中的配置当我们使用 SpringMVC 框架时,静态资源会被拦截,需要添加额外配置,一般来说,我们可以通过 <mvc:resources /> 节点来配置不拦截静态资源,如下:<mvc:resources mapping="/js/**" location="/js/"/><mvc:resources mapping="/css/**" location...原创 2020-01-05 14:31:33 · 311 阅读 · 0 评论 -
Spring Boot (十七)——Json的使用
目前java json解析工具有阿里的fastjson,google的GSON,以及SpringMVC 默认的解析工具Jackson。SpringBoot默认自带是jackson,很多json转换速率的比对,如jackson,阿里的fastjson等,jackson足够使用了。在springboot中只要加入相关依赖就可以使用,使用方式与SpringMVC一致。使用jackson1.pom.x...原创 2020-01-05 13:43:42 · 942 阅读 · 0 评论 -
Spring Boot (十六)—— 整合Jsp
官方不推荐使用jsp作为页面,而是推荐使用模板thymeleaf作为页面展示。但是目前来说,很多项目的页面还是用的jsp.而且很多现成的项目用的jsp页面,扒过来就能用,当然如果时间允许的情况,还是不建议大家使用jsp,而是采用官方推荐的模板。如需使用参见下面的文章:转载:https://blog.csdn.net/qq_34021712/article/details/79976349...转载 2020-01-04 22:41:52 · 64 阅读 · 0 评论 -
Spring Boot (十五)—— 整合Thymeleaf
虽然现在慢慢在流行前后端分离开发,但是还是有一些公司在做前后端不分的开发,而在前后端不分的开发中,我们就会需要后端页面模板(实际上,即使前后端分离,也会在一些场景下需要使用页面模板,例如邮件发送模板)。后端页面模板比如: JSP,Velocity,FreeMaker等。早期的 Spring Boot 中还支持使用 Velocity 作为页面模板,现在的 Spring Boot 中已经不支持 Ve...原创 2020-01-04 20:33:13 · 130 阅读 · 0 评论 -
Spring Boot (十四)—— Freemarker常用指令
这里列举出Freemarker模板文件中8个常用的指令。1.assignassign指令用于创建或替换一个顶层变量,assign指令的用法有多种,包括创建或替换一个顶层变量,创建或替换多个变量等。示范代码:<#assign x> <#list [“星期一”, ”星期二”, ”星期三”, “星期四”, ”星期五”, ”星期六”, ”星期日”] as n> ...原创 2020-01-04 19:04:28 · 135 阅读 · 0 评论 -
Spring Boot (十三)——整合 Freemarker
Spring Boot (十三)——整合 Freemarker一、Freemarker 简介FreeMarker 是一款 老牌的开源的免费的模版引擎, 通过 Freemarker 模版,我们可以将数据渲染成 HTML 网页、电子邮件、配置文件以及源代码等。 它不是面向最终用户的,而是一个Java类库,我们可以将之作为一个普通的组件嵌入到我们的产品中。参见官方中文文档:http://freema...原创 2020-01-04 18:30:42 · 690 阅读 · 0 评论 -
Spring Boot (十二)——条件注解,Spring Boot 的基石(转载)
条件注解,Spring Boot 的基石! Spring Boot 中的自动化配置确实够吸引人,甚至有人说 Spring Boot 让 Java 又一次焕发了生机,这话虽然听着有点夸张,但是不可否认的是,曾经臃肿繁琐的 Spring 配置确实让人感到头大,而 Spring Boot 带来的全新自动化配置,又确实缓解了这个问题。你要是问这个自动化配置是怎么实现的...转载 2020-01-03 22:36:42 · 83 阅读 · 0 评论 -
Spring Boot (十一)——Spring Boot 加入 Https 功能(转载)
Spring Boot (十一)——Spring Boot 加入 Https 功能https 现在已经越来越普及了,特别是做一些小程序或者公众号开发的时候,https 基本上都是刚需了。不过一个 https 证书还是挺费钱的,个人开发者可以在各个云服务提供商那里申请一个免费的证书。我印象中有效期一年,可以申请 20 个。今天要和大家聊的是在 Spring Boot 项目中,如何开启 ht...转载 2020-01-03 22:29:36 · 127 阅读 · 0 评论