
Spring Boot 实战
qq_3642489
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring Boot实战(十二)分布式系统开发 12.3 Spring Cloud实战
12.3实战实战部分主要由6个微服务组成:config:配置服务器,本例为person-service和some-service提供外部配置。discovery:Eureka Server为微服务提供注册person:为UI模块提供保存person的REST服务some:为UI模块返回一段字符串UI:作为应用网关,提供外部访问的唯一入口。使用Feign消费person服务、Ribbon...原创 2019-04-30 15:34:23 · 439 阅读 · 0 评论 -
Spring Boot实战(九)9.2 批处理 Spring Batch
9.2.1 Spring Batch快速入门1.什么是Spring BatchSpring Batch是用来处理大量数据操作的一个框架,主要用来读取大量数据,然后进行一定处理后输出成指定的形式。2.Spring Batch的主要组成Spring Batch主要由以下几部分组成,如表名称用途JobRepository用来注册Job的容器JobLauncher用...原创 2019-04-25 19:00:19 · 6471 阅读 · 7 评论 -
Spring Boot实战(八)8.4 声明式事务机制
8.4.1 Spring的事务机制所有的数据访问技术都有事务处理机制,这些技术提供了API用来开启事务、提交事务来完成数据操作,或者在发生错误的时候回滚数据。而Spring的事务机制是用统一的机制来处理不同数据访问技术的事务处理。Spring的事务机制提供了一个PlatformTransactionManager接口,不同的数据访问技术的事务使用不同的接口实现,如表数据访问技术实现...原创 2019-04-16 16:26:54 · 429 阅读 · 0 评论 -
Spring Boot实战(八)Spring Boot 的数据访问
Spring Data项目是Spring用来解决数据访问问题的一揽子解决方案,Spring Data是一个伞形项目,包含了大量关系型数据库及非关系型数据库的数据访问解决方案。Spring Data使我们可以快速且简单地使用普通的数据访问技术及新的数据访问技术。Spring Data为我们使用统一的API来对数据存储技术进行数据访问操作提供了支持。这是Spring通过提供Spring Data C...原创 2019-02-20 11:10:07 · 350 阅读 · 0 评论 -
Spring Boot实战(八)8.3 Spring Data REST
8.3.1 点睛 Spring Data REST(1)什么是Spring Data RESTSpring Data JPA是基于Spring Data的repository之上,可以将repository自动输出为REST资源。目前Spring Data REST支持将Spring Data JPA、Spring Data MongoDB、Spring Data Neo4j、Spring D...原创 2019-02-28 17:41:02 · 1326 阅读 · 0 评论 -
Spring Boot实战(八)Spring Data JPA
8.2.1 点睛Spring Data JPA1.什么是Spring Data JPA在介绍Spring Data JPA的时候,我们首先认识下Hibernate。Hibernate是数据访问解决技术的绝对霸主,使用O/R映射(Object-Relational Mapping)技术实现数据访问,O/R映射即将领域模型类和数据库的表进行映射,通过程序操作对象而实现表数据操作的能力,让数据访问操...原创 2019-02-21 16:36:31 · 359 阅读 · 0 评论 -
Spring Boot实战(七)Spring Boot 的 Web 开发 7.7 基于 Bootstrap 和 AngularJS 的现代Web应用
现代的B/S系统软件有下面几个特色。1.单页面应用单页面应用(single-page application,简称SPA)指的是一种类似于原生客户端软件的更流畅的用户体验的页面。在单页面的应用中,所有的资源(HTML、Javascript、CSS)都是按需动态加载到页面上的,且不需要服务端控制页面的转向。2.响应式设计响应式设计(Responsive web design,简称RWD)指的...原创 2019-01-29 16:25:04 · 560 阅读 · 0 评论 -
Spring Boot实战(七)Spring Boot 的 Web 开发 7.6 WebSocket
7.6.1 什么是WebSocketWebSocket为浏览器和服务端提供了双工异步通信的功能,即浏览器可以向服务端发送消息,服务端也可以向浏览器发送消息。WebSocket需浏览器的支持,如IE10+、Chrome 13+、Firefox 6+,这对我们现在的浏览器来说都不是问题。WebSocket是通过一个socket来实现双工异步通信能力的。但是直接使用WebSocket(或者SockJ...原创 2019-01-28 11:51:47 · 434 阅读 · 0 评论 -
Spring Boot实战(七)Spring Boot 的 Web 开发 7.2 Thymeleaf模板引擎
7.2 Thymeleaf基础知识Thymeleaf是一个Java类库,它是一个 xml/xhtml/html5的模板引擎,可以作为MVC的Web应用的View层。Thymeleaf还提供了额外的模块与Spring MVC集成,所以我们可以使用Thymeleaf完全替代JSP。下面我们演示日常工作中常用的Thymeleaf用法,我们将把本节的内容在7.2.4节运行演示。1.引入 Thyme...原创 2019-01-22 16:03:33 · 551 阅读 · 0 评论 -
Spring Boot实战(七)Spring Boot 的 Web 开发 7.1 Spring Boot 的开发支持
Web开发是开发中至关重要的一部分,Web开发的核心内容主要包括内嵌Servlet容器和Spring MVC。7.1 Spring Boot 的Web开发支持Spring Boot 提供了spring-boot-starter-web为Web开发予以支持,spring-boot-starter-web为我们提供了嵌入的Tomcat以及Spring MVC的依赖。而Web相关的自动配置存储在sp...原创 2019-01-22 14:20:51 · 181 阅读 · 0 评论 -
Spring Boot实战(六)Spring Boot核心 6.5 Spring Boot 运行原理
在前面几个章节,我们见识了Spring Boot为我们做的自动配置,为了让大家快速领略Spring Boot的魅力,我们将在本节先通过分析Spring Boot 的运行原理后,根据已掌握的知识自定义一个starter pom。在3.5章中我们了解到Spring 4.x 提供了基于条件来配置Bean的能力,其实Spring Boot的神奇的实现也是基于这一原理的。本节虽然没有摆在显著位置,但是本...原创 2019-01-22 11:59:16 · 492 阅读 · 0 评论 -
Spring Boot实战(四)Spring MVC基础 4.5 Spring MVC的高级配置
4.5.1文件上传配置文件上传是一个项目里经常要用的功能,Spring MVC通过配置一个MultipartResolver来上传文件。在Spring的控制器中,通过MultipartFile file 来接收文件,通过MultipartFile[] files 接收多个文件上传。示例(1)添加文件上传依赖。 <!-- file upload --> <depende...原创 2019-01-16 16:02:34 · 290 阅读 · 0 评论 -
Spring Boot实战(八)8.5数据缓存 Cache
我们知道一个程序的瓶颈在于数据库,我们也知道内存的速度是大大快于硬盘的速度的。当我们需要重复地获取相同的数据的时候,我们一次又一次的请求数据库或者远程服务,导致大量的时间耗费在数据查询或者远程方法调用上,导致程序性能恶化,这便是数据缓存要解决的问题。8.5.1 Spring 缓存支持Spring 定义了一org.springframework.cache.CacheManager和org.sp...原创 2019-04-17 15:09:28 · 233 阅读 · 0 评论 -
Spring Boot实战(九)9.3异步消息
异步消息主要目的是为了系统与系统之间的通信。所谓异步消息即消息发送者无须等待消息接收者的处理及返回,甚至无须关心消息是否发送成功。在异步消息中有两个很重要的概念,即消息代理(message broker)和目的地(destination)。当消息发送者发送消息后,消息将由消息代理接管,消息代理保证消息传递到指定的目的地。异步消息主要有两种形式的目的地:队列(queue)主题(topic)。队列...原创 2019-04-26 13:59:07 · 485 阅读 · 0 评论 -
Spring Boot实战(八)8.6 非关系型数据库NoSQL
NoSQL是对于不使用关系作为数据管理的数据库系统的统称。NoSQL的主要特点是不使用SQL语言作为查询语言,数据存储也不是固定的表、字段。NoSQL数据库主要有文档存储型(MongoDB)、图形关系存储型(Neo4j)和键值对存储型(Redis)。本节将演示基于MongoDB的数据访问以及基于Redis的数据访问。8.6.1 MongoDBMongoDB是一个基于文档(Document)...原创 2019-04-22 15:54:35 · 315 阅读 · 0 评论 -
Spring Boot实战(十二)分布式系统开发 12.2 Spring Cloud快速入门
12.2.1 配置服务Spring Cloud提供了Config Server,它有在分布式系统开发中外部配置的功能。通过Config Server,我们可以集中存储所有应用的配置文件。Config Server支持在git或者在文件系统中放置配置文件。可以使用以下格式来区分不同应用的不同配置文件:/{application}/{profile}/[/{lablel}]/{applicat...原创 2019-04-29 17:11:27 · 149 阅读 · 0 评论 -
Spring Boot实战(十二)分布式系统开发 12.1 微服务、原生云应用
微服务(Microservice)是近两年来非常火的概念,它的含义是:使用定义好边界的小的独立组件来做好一件事情。微服务是相对于传统单块式架构而言的。单块式架构是一份代码,部署和伸缩都是基于单个单元进行的。它是优点是易于部署,但是面临着可用性低、可伸缩性差、集中发布的生命周期以及违反单一功能原则(Single Responsibility Principle)。微服务的出现解决了这个问题,它以单...原创 2019-04-29 16:29:33 · 379 阅读 · 0 评论 -
Spring Boot实战(十一)应用监控 11.3 SSH
我们还可以通过SSH或TELNET监控和管理我们的应用,这一点Spring Boot是借助CraSH(http://www.crashub.org)来实现的。在应用中,我们只需在Spring Boot项目中添加spring-boot-starter-remote-shell依赖即可。11.3.1 新建Spring Boot项目新建Spring Boot项目,依赖为Remote Shell(sp...原创 2019-04-29 16:13:24 · 427 阅读 · 0 评论 -
Spring Boot实战(十一)应用监控 11.2 JMX
我们也可以通过JMX对应用进行监控和管理。本节应用上一节的例子演示。在控制台调用Java内置的jconsole来实现JMX监控,如图这时会打开jconsole页面,选择当前程序的进行,如图进入界面后,在MBean标签的org.springframework.boot域上可对我们的程序进行监控和管理,如图...原创 2019-04-29 14:56:28 · 213 阅读 · 0 评论 -
Spring Boot实战(十一)应用监控 11.1 http
Spring Boot提供了运行时的应用监控和管理的功能。我们可以通过http、JMX、SSH协议来进行操作。审计、健康及指标信息将会自动得到。Spring Boot提供了监控和管理端点,如表端点名描述actuator所有EndPoint的列表,需加入spring HATEOAS支持autoconfig当前应用的所有自动配置beans当前应用中所有Bean...原创 2019-04-29 14:47:07 · 410 阅读 · 0 评论 -
Spring Boot实战(十)Spring Boot开发部署与测试 10.4 Spring Boot的测试
Spring Boot的测试和Spring MVC的测试类似。Spring Boot为我们提供了一个@SpringApplicationConfiguration来替代@ContextConfiguration,用来配置Application Context。在Spring Boot中,每次新建项目的时候,都会自动加上spring-boot-starter-test的依赖,这样我们就没有必要测试...原创 2019-04-29 11:40:24 · 179 阅读 · 0 评论 -
Spring Boot实战(十)Spring Boot开发部署与测试 10.3 云部署--基于Docker的部署
本节我们将在CentOS7.1上演示用Docker部署Spring Boot程序。前面我们讲述了使用已经编译好的Docker镜像,本节我们将讲述如何编译自己的Docker镜像,并运行镜像的容器。主流的云计算(PAAS)平台都支持发布Docker镜像。Docker是使用Dokerfile文件来编译自己镜像的。10.3.1 DockerfileDockerfile主要有如下的指令。(1)FRO...原创 2019-04-29 10:44:42 · 205 阅读 · 0 评论 -
Spring Boot实战(十)Spring Boot开发部署与测试 10.2 常规部署
10.2.1 jar形式1.打包若我们在新建Spring Boot项目的时候,选择打包方式(Packaging)是jar,则我们只需用:mvn package2.运行可直接使用下面命令运行,结果如图java -jar xx.jar3.注册为Linux的服务Linux下 的软件我们通常把它注册为服务,这样我们就可以通过命令开启、关闭以及保持开机启动等功能。若想使用此功能...原创 2019-04-29 09:41:10 · 161 阅读 · 0 评论 -
Spring Boot实战(九)9.1安全控制Spring Security
9.1.1 Spring Security 快速入门1.什么是Spring SecuritySpring Security是专门针对基于Spring 的项目的安全框架,充分利用了依赖注入和AOP来实现安全功能。在早期的Spring Security版本,使用Spring Security需要使用大量的XML配置,而本节将全部基于Java配置来实现Spring Security的功能。安全框...原创 2019-04-24 11:19:37 · 441 阅读 · 0 评论 -
Spring Boot实战(十)Spring Boot开发部署与测试 10.1 开发的热部署
10.1.1 模板热部署在Spring Boot里,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在application.properties中关闭模板引擎的缓存,例如:Thymeleaf的配置:spring.freemarker.cache=falseGroovy的配置:spring.groovy.template.cache=...原创 2019-04-28 13:46:31 · 196 阅读 · 0 评论 -
Spring Boot实战(九)9.4 系统集成Spring Integration
9.4.1 Spring Integration快速入门Spring Integration提供了基于Spring的EIP(Enterprise Integration Patterns,企业集成模式的实现。Spring Integration主要解决的问题是不同系统之间交互的问题,通过异步消息驱动来达到系统交互时系统之间的松耦合。本节将基于无XML配置的原则使用Java配置、注解以及Sprin...原创 2019-04-26 17:50:27 · 23521 阅读 · 1 评论 -
Spring Boot实战(七)Spring Boot 的 Web 开发 7.5 Favicon配置
7.5.1 默认的FaviconSpring Boot提供了一个默认的Favicon,每次访问应用的时候都能看到,如图7.5.2 关闭Favicon我们可以在application.properties中设置关闭Favicon,默认为开启,如图spring.mvc.favicon.enabled=false7.5.3 设置自己的Favicon若需要设置自己的Favicon,则只...原创 2019-01-26 22:37:51 · 166 阅读 · 0 评论 -
Spring Boot实战(七)Spring Boot 的 Web 开发 7.4 Tomcat配置
本节虽然叫Tomcat配置,但其实指的是servlet容器的配置,因为Spring Boot默认内嵌的Tomcat为servlet容器,所以本节只讲对Tomcat配置,其实本节的配置对Tomcat、Jetty和Undertow都是通过的。7.4.1 配置Tomcat关于Tomcat的所有属性都在org.springframework.boot.autoconfikgure.web.SererP...原创 2019-01-26 22:18:27 · 451 阅读 · 0 评论 -
Spring Boot实战(七)Spring Boot 的 Web 开发 7.3 Web相关配置
7.3.1 Spring Boot提供的自动配置通过查看WebMvcAutoConfiguration及WebmvcProperties的源码,可以发现Spring Boot为我们提供了如下的自动配置。1.自动配置的ViewResolver(1)ContentNegotiatingViewResolver这是Spring MVC提供的一个特殊的ViewResolver,ContentNeg...原创 2019-01-26 20:26:21 · 147 阅读 · 0 评论 -
Spring Boot实战(二)Spring常用配置 2.2 Spring EL和资源调用
2.2.1 点睛Spring EL-Spring表达语言,支持在xml和注解中使用表达式,类似于JSP的EL表达式语言。Spring开发中经常涉及调用各种资源的情况,包含普通文件、网址、配置文件、系统环境变量等,我们可以使用Spring的表达式语言实现资源的注入。Spring主要在注解@Value的参数中使用表达式。本节演示实现以下几种情况:(1)注入普通字符;(2)注入操作系统属性;...原创 2019-01-08 11:19:27 · 324 阅读 · 0 评论 -
Spring Boot实战(二)Spring常用配置 2.1 Bean的Scope
2.1.1点睛Scope描述的是Spring容器如何新建Bean的实例的。Spring的Scope有以下几种,通过@Scope注解来实现。(1)Singleton:一个Spring容器中只有一个Bean的实例,此为Spring的默认配置,全容器共享一个实例。(2)Prototype:每次调用新建一个Bean实例。(3)Request:Web项目中,给每一个http request新建一个B...转载 2019-01-08 10:25:42 · 590 阅读 · 0 评论 -
Spring Boot实战(三)Spring高级话题 3.6 @Enable*注解的工作原理
在本章的第一部分我们通过:@EnableAspectJAutoProxy开启对AspectJ自动代理的支持。@EnableAsync开启异步方法的支持。@EnableScheduling开启计划任务的支持。在第二部分我们通过:@EnableWebMvc开启Web MVC的配置支持。在第三部分我们通过:@EnableConfigurationProperties开启对@Configur...原创 2019-01-13 00:02:46 · 252 阅读 · 0 评论 -
Spring Boot实战(三)Spring高级话题 3.5组合注解与元注解
从Spring 2开始,为了响应JDK1.5推出的注解功能,Spring开始大量加入注解来替代xml配置。Spring的注解主要用来配置和注入Bean,以及AOP相关配置(@Transactional)。随着注解的大量使用,尤其相同的多个注解用到各个类或方法中,会相当繁琐。这就是所谓的样板代码(boilerplate code),是Spring设计原则中要消除的代码。所谓元注解其实就是可以注解到...原创 2019-01-12 22:52:12 · 232 阅读 · 0 评论 -
Spring Boot实战(三)Spring高级话题 3.4 条件注解@Conditional
在2.4节学到,通过活动的profile,我们可以获得不同的Bean。Spring 4提供了一个更通用的基于条件的Bean的创建,即使用@Conditional注解。@Conditional根据满足某一个特定条件创建一个特定的Bean。比方说,当某一个jar包在一个类路径下的时候,自动配置一个或多个Bean;或者只有某个Bean被创建才会创建另外一个Bean。总的来说,就是根据特定条件来控制Be...原创 2019-01-12 21:54:54 · 185 阅读 · 0 评论 -
Spring Boot实战(三)Spring高级话题 3.3 计划任务
从Spring3.1开始,计划任务在Spring中的实现变得简单。首先通过在配置类注解@EnableScheduling来开启对计划任务的支持,然后在要执行计划任务的方法上注解@Scheduled,声明这是一个计划任务。Spring通过@Schduled支持多种类型的计划任务,包含cron、fixDelay、fixRate等。3.2.2示例(1)计划任务执行类。package com.wi...原创 2019-01-12 21:07:53 · 212 阅读 · 0 评论 -
Spring Boot实战(三)Spring高级话题 3.2 多线程
Spring通过任务执行器(TaskExecutor)来实现多线程和并发编程。使用ThreadPoolTaskExecutor可实现一个基于线程池的TaskExecutor。而实际开发中任务一般是非阻碍的,即异步的,所以我们要在配置类中通过@EnableAsycn开启对异步任务的支持,并通过在实际执行的Bean的方法中使用@Async注解来声明其是一个异步任务。3.2.2 示例(1)配置类。...原创 2019-01-12 20:47:10 · 193 阅读 · 0 评论 -
Spring Boot实战(五)Spring Boot基础 5.1 Spring Boot 概述
5.1.1 什么是Spring Boot随着动态语言的流行(Ruby、Groovy、Scala、Node.js),Java的开发显得格外的笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。在上述环境下,Spring Boot 应运而生。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须手动进行配置)的理念让你的项目快速运行起来。使用Sp...原创 2019-01-18 09:36:21 · 517 阅读 · 0 评论 -
Spring Boot实战(一)Spring基础 1.3 Spring基础配置
Spring框架本身有四大原则:1)使用POJO进行轻量级和最小侵入式开发。2)通过依赖注入和基于接口编程实现松耦合。3)通过AOP和默认习惯进行声明式编程。4)使用AOP和模板(template)减少模式化代码。Spring所有功能的设计和实现都是基于此四大原则的。1.3.1 依赖注入1.点睛我们经常说的控制翻转(Inversion of Control-IOC)和依赖注入(d...转载 2019-01-07 17:31:37 · 297 阅读 · 0 评论 -
Spring Boot实战(一)Spring基础 1.2 Spring项目快速搭建(基于Maven)
讲到项目的搭建,也许有些人使用的是通过开发工具新建项目,然后将项目所要依赖的第三方jar包复制到项目的类路径下(通常为lib目录)。我们现在要和这种项目搭建的方式说拜拜了,因为上述搭建方式没有第三方类库的依赖关系,在导入一个特定的jar包时,可能此jar包还依赖其它的jar包,其它的jar包又依赖于更多的jar包,这也是我们平常遇到的ClassNotFound异常的主要原因。为了解决上述问题,...转载 2019-01-07 15:18:10 · 288 阅读 · 0 评论 -
Spring Boot实战(一)Spring基础 1.1 Spring概述
1.1.1 Spring的简史Spring的历史网上有很多介绍,下面讲下我亲历的Spring发展的过程。第一阶段:xml配置 在Spring 1.x时代,使用Spring开发满眼都是xml配置的Bean,随着项目的扩大,我们需要把xml配置文件分放到不同的配置文件里,那时候需要频繁地在开发的类和配置文件之间切换。 第二阶段:注解配置 在Spring 2.x时代,随着JDK1.5带来的注解支...转载 2019-01-07 14:12:57 · 256 阅读 · 0 评论