Spring Boot & Spring Cloud
Wang-Junchao
这个作者很懒,什么都没留下…
展开
-
26-SpringBoot——核心-Spring Data REST
Spring Data JPA 是基于Spring Data 的repository 之上,可以将repository 自动输出为REST资源。目前Spring Data REST 支持将Spring Data JPA 、Spring Data MongoDB 、Spring Data Neo4j 、Spring Data GemFire 以及Spring Data Cassandra 的repository 自动转原创 2017-09-03 07:19:12 · 1496 阅读 · 0 评论 -
24-SpringBoot——核心-WebSocket
SpringBoot——核心-WebSocket【博文目录>>>】【项目源码>>>】【WebSocket】WebSocket 为浏览器和服务端提供了双工异步通信的功能,即浏览器可以向服务端发送消息,服务端也可以向浏览器发送消息。WebSocket 需浏览器的支持,如IE 10+、Chrome 13+,Firefox 6+,这对我们现在的浏览器来说都不是问题。WebSocket 是通过一个socket原创 2017-08-25 07:39:01 · 2001 阅读 · 1 评论 -
10-SpringBoot——Spring 高级话题-多线程
Spring 通过任务执行器( TaskExecutor )来实现多线程和并发编程。使用ThreadPoolTask-Executor 可实现一个基于线程泊的TaskExecutor。而实际开发中任务一般是非阻碍的,即异步的,所以我们要在配置类中通过@EnableAsync 开启对异步任务的支持,并通过在实际执行的Bean 的方法中使用@Async 注解来声明其是一个异步任务。原创 2017-08-07 07:41:02 · 14611 阅读 · 2 评论 -
15-SpringBoot——Spring MVC基础-服务端推送技术
服务端推送技术在我们日常开发中较为常用,可能早期很多人的解决方案是使用Ajax 向服务器轮询消息,使浏览器尽可能第一时间获得服务端的消息,因为这种方式的轮询频率不好控制,所以大大增加了服务端的压力。本案例所有的服务器端推送的方案都是基于:当客户端向服务端发送请求,服务端会抓住这个请求不放,等有数据更新的时候才返回给客户端,当客户端接收到消息后,再向服务端发送请求,周而复始。这种方式的好处是减少了服务器的请求数量,原创 2017-08-14 07:53:32 · 2782 阅读 · 0 评论 -
04-SpringBoot——Spring常用配置-Bean的Scope
Spring 的Scope 有以下几种,通过@Scope 注解来实现。 1. Singleton :一个Spring 容器中只有一个Bean 的实例,此为Spring 的默认配置,全容器共享一个实例。 2. Prototype :每次调用新建一个Bean 的实例。 3. Request: Web 项目中,给每一个http request 新建一个Bean 实例。 4. Session: Web 项目中原创 2017-07-29 06:34:21 · 9246 阅读 · 0 评论 -
03-SpringBoot——Spring基础-AOP
AOP :面向切面编程,相对于OOP 面向对象编程。Spring 的AOP 的存在白的是为了解耦。AOP 可以让一组类共享相同的行为。在OOP 中只能通过继承类和实现接口,来使代码的耦合度增强,且类继承只能为单继承,阻碍更多行为添加到一组类上, AOP 弥补了OOP 的不足。Spring 支持AspectJ 的注解式切面编程。原创 2017-07-27 07:56:32 · 1106 阅读 · 0 评论 -
21-SpringBoot——核心-Web配置
分析WebMvcAutoConfiguration 及WebMvcProperties 的源码,发现Spring Boot为我们提供了如下自动配置功能。(1) ContentNegotiatingViewResolver:这是一个特殊的ViewResolver, ContentNegotiatingViewResolver 不自己处理View ,而是代理给不同的ViewResolver 来处理,它有最高的优先级。原创 2017-08-21 07:32:09 · 960 阅读 · 0 评论 -
20-SpringBoot——核心-运行原理
Spring Boot 关于自动配置的源码在spring-boot-autoconfigure-xxx.jar中。可以通过下面三种方式查看当前项目中已启用和未启用的自动配置的报告。 (1) 运行jar 时增加--debug 参数 (2) 在applic剖ion.properties 中设置属性。 (3) 运行时设置JVM启动参数-Ddebug Spring Boot 的运作原理,它的核心功能是由@Enab原创 2017-08-20 08:34:33 · 1608 阅读 · 0 评论 -
14-SpringBoot——Spring MVC基础-自定义HttpMessageConverter
HttpMessageConveter 是用来处理request 和response 里的数据的。Spring 为我们内置了大量的HttpMessageConverter,例如, MappingJackson2HttpMessageConverter 、StringHttpMessageConverter 等。我们实现一个自定义的HttpMessageConverter,他将接收以“-”号连接的数据,将数据转换成自定原创 2017-08-12 08:16:37 · 7506 阅读 · 1 评论 -
16-SpringBoot——Spring MVC基础-测试
测试是保证软件质量的关键,为了测试Web 项目通常不需要启动项目,我们需要一些Servlet 相关的模拟对象,比如:MockMVC 、MockHttpServletRequest 、MockHttpServletResponse 、MockHttpSession 等。在Spring 里,我们使用@WebAppConfiguration 指定加载的ApplicationContext 是一个WebApplication原创 2017-08-15 07:28:38 · 1013 阅读 · 0 评论 -
27-SpringBoot——核心-声明式事务
而Spring 的事务机制是用统一的机制来处理不同数据访问技术的事务处理。Spring 的事务机制提供了一个PlatformTransactionManager 接口,不同的数据访问技术的事务使用不间的接口实现。原创 2017-09-04 07:21:26 · 1239 阅读 · 0 评论 -
22-SpringBoot——核心-Tomcat配置
SpringBoot——核心-Tomcat配置【博文目录>>>】【项目源码>>>】【Tomcat配置】在SpringBoot中Tomcat 的所有属性都在org. springframework.boot.autoconfigure.web. ServerProperties配置类中做了定义,我们只需在application.properties 配置属性做配置即可。通用的Servlet 容器配置都原创 2017-08-23 07:40:22 · 1434 阅读 · 0 评论 -
32-SpringBoot——核心-企业级开发-异步消息
异步消息主要目的是为了系统与系统之间的通信。所谓异步消息即消息发送者无须等待消息接收者的处理及返回,甚至无须关心消息是否发送成功。在异步消息中有两个很重要的概念,即消息代理( message broker )和目的地( destination )。当消息发送者发送消息后,消息将由消息代理接管,消息代理保证消息传递到指定的目的地。异步消息主要有两种形式的目的地:队列( queue )和主题( topic )。队列用原创 2017-09-09 08:03:51 · 1295 阅读 · 0 评论 -
31-SpringBoot——核心-企业级开发-SpringBatch
Spring Batch 是用来处理大量数据操作的一个框架,主要用来读取大量数据,然后进行一定处理后输出成指定的形式。原创 2017-09-08 07:14:30 · 996 阅读 · 0 评论 -
30-SpringBoot——核心-企业级开发-Spring Security
Sprirg security 是专门针对基于Spring 的项目的安全框架,充分利用了依赖注入和AOP来实现安全的功能。在早期的Spring Security 版本,使用Spring Security 需要使用大量的XML 配置,而本节将全部基于Java 配置来实现Spring Security 的功能。安全框架有两个重要的概念,即认证( Authentication )和授权( Authorization原创 2017-09-07 07:29:16 · 2139 阅读 · 0 评论 -
29-SpringBoot——核心-非关系型数据库NoSQL
MongoDB 是一个基于文档( Document )的存储型的数据瘁,使用面向对象的思想,每一条数据记录都是文档的对象。Spring 对MongoDB 的支持主要是通过Spring Data MongoDB 来实现的, Spring Data MongoDB 为我们提供了如下功能。原创 2017-09-06 08:09:47 · 1746 阅读 · 0 评论 -
23-SpringBoot——核心-Favicon配置
SpringBoot——核心-Favicon配置【博文目录>>>】【项目源码>>>】【Favicon配置】Spring Boot 提供了一个默认的Favicon ,每次访问应用的时候都能看到。我们可以在application.properties 中设置关闭Favicon,spring.mvc.favicon.enabled=false ,默认为开启。若需要设置自己的Favicon ,则只需将自己的原创 2017-08-24 07:25:10 · 1077 阅读 · 0 评论 -
25-SpringBoot——核心-Spring Data JPA
JPA 即Java Persistence API。JPA 是一个基于O/R映射的标准规范(目前最新版本是JPA 2.1 )。所谓规范即只定义标准规则(如注解、接口),不提供实现,软件提供商可以按照标准规范来实现,而使用者只需按照规范中定义的方式来使用,而不用和软件提供商的实现打交道。JPA 的主要实现由Hibernate、EclipseLink 和OpenJPA 等,这也意味着我们只要使用JPA 来开发,无论是哪一原创 2017-08-27 10:46:40 · 4212 阅读 · 0 评论 -
28-SpringBoot——核心-数据缓存Cache
Spring 定义了org.springframework.cache.CacheManager 和org.springframework.cache.Cache接口用来统一不同的缓存的技术。其中, CacheManager 是Spring 提供的各种缓存技术抽象接口, Cache 接口包含缓存的各种操作(增加、删除、获得缓存,我们一般不会直接使用此接口)。原创 2017-09-05 07:18:10 · 1597 阅读 · 0 评论 -
17-SpringBoot——基础-概述
随着动态语言的流行( Ruby 、Groovy 、Scala 、Node.js), Java 的开发显得格外的笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第二方技术集成难度大。面对上述问题, Spring Boot 应运而生。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须手动进行配置)的理念让你的项目快速运行起来。使用Spring Boot 很容易创建一个独立运行(运行ja原创 2017-08-16 07:45:48 · 985 阅读 · 0 评论 -
13-SpringBoot——Spring MVC基础-高级配置-文件上传
文件上传是一个项目里经常要用的功能, Spring MVC 通过配置一个MultipartResolver 来上传文件。在Spring 的控制器中,通过MultipartFile file 来接收文件,通过MultipartFile[] files 接收多个文件上传。在Spring MVC中,文件上传变得非常简单,通过CommonsMultipartResolver可以控制文件上传的一些属性,比如设置文件上传的最大原创 2017-08-11 07:23:52 · 2015 阅读 · 0 评论 -
09-SpringBoot——Spring 高级话题-Spring Aware
Spring的依赖注入的最大亮点就是所有的Bean 对Spring 容器的存在是没有意识的。你可以将容器替换成别的容器,如Google Guice ,这时Bean 之间的耦合度很低。但是在实际项目中,你不可避免的要用到Spring 容器本身的功能资源,这时你的Bean 必须要意识到Spring 容器的存在,才能调用Spring 所提供的资源,这就是所谓的Spring Aware。原创 2017-08-04 07:18:44 · 2192 阅读 · 0 评论 -
19-SpringBoot——核心-Profile配置
Profile是Spring用来针对不同的环境对不同的配置提供支持的 ,全局 Profile 配置使用appllication-{profile} .properties( 如 application-prod.properties )。通过在 app1ication.properties 中设置 spring.profiles.active= prod 来指定活动的Profile。也可以使用JVM参数在启动时指原创 2017-08-18 08:07:37 · 796 阅读 · 0 评论 -
Spring Cloud构建微服务架构(一)服务注册与发现
Spring Cloud简介Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud Config、Spr转载 2017-05-18 08:26:06 · 1686 阅读 · 0 评论 -
spring-data-redis 自定义注解扩展实现时效设置
前言spring目前在@Cacheable和@CacheEvict等注解上不支持缓存时效设置,只允许通过配置文件设置全局时效。这样就很不方便设定时间。比如系统参数和业务数据的时效是不一样的,这给程序开发造成很大的困扰。不得已,本人实现了类似Sping的三个注解。以下是具体实现。原创 2017-06-13 08:19:31 · 2873 阅读 · 0 评论 -
Spring Cloud构建微服务架构(七)消息总线(续:Kafka)
Spring Cloud Bus除了支持RabbitMQ的自动化配置之外,还支持现在被广泛应用的Kafka。在本文中,我们将搭建一个Kafka的本地环境,并通过它来尝试使用Spring Cloud Bus对Kafka的支持,实现消息总线的功能。由于本文会以之前Rabbit的实现作为基础来修改,所以先阅读《Spring Cloud构建微服务架构(七)消息总线》有助于理解本文。Kafka简介Kafka是转载 2017-06-17 08:52:16 · 1521 阅读 · 0 评论 -
Spring Cloud构建微服务架构(七)消息总线
先回顾一下,在之前的Spring Cloud Config的介绍中,我们还留了一个悬念:如何实现对配置信息的实时更新。虽然,我们已经能够通过/refresh接口和Git仓库的Web Hook来实现Git仓库中的内容修改触发应用程序的属性更新。但是,若所有触发操作均需要我们手工去维护Web Hook中的应用位置的话,这随着系统的不断扩张,会变的越来越难以维护,而消息代理中间件是解决该问题最为合适的方案转载 2017-06-17 08:39:41 · 1613 阅读 · 0 评论 -
Spring Cloud构建微服务架构(六)高可用服务注册中心
前言在Spring Cloud系列文章的开始,我们就介绍了服务注册与发现,其中,主要演示了如何构建和启动服务注册中心Eureka Server,以及如何将服务注册到Eureka Server中,但是在之前的示例中,这个服务注册中心是单点的,显然这并不适合应用于线上生产环境,那么下面在前文的基础上,我们来看看该如何构建高可用的Eureka Server集群。单点Eureka Server的样例:Gi转载 2017-06-17 08:31:31 · 783 阅读 · 0 评论 -
Spring Cloud构建微服务架构(五)服务网关
通过之前几篇Spring Cloud中几个核心组件的介绍,我们已经可以构建一个简略的(不够完善)微服务架构了。比如下图所示: 我们使用Spring Cloud Netflix中的Eureka实现了服务注册中心以及服务注册与发现;而服务间通过Ribbon或Feign实现服务的消费以及均衡负载;通过Spring Cloud Config实现了应用多环境的外部化配置以及版本管理。为了使得服务集群更为健壮转载 2017-06-16 07:49:00 · 1321 阅读 · 0 评论 -
Redis缓存中使用Kryo序列化工具并且修改内容同时更新缓存
背景缓存做为加速数据访问的途径在许多的系统开发中已经是必不可少。在实际的使用中存在这样一个场景:对象的的内容非常庞大,一次数据查询量比较大,在并发访问时频繁访问数据库会造成性能瓶颈,实际使用中就会使用缴存,对对象进行更新操作的时候需要对更新的内容入库。但是不希望删除缓存中的对象,而是只更新缓存中的内容,这样就可以减少数据库的访问。提升应用的访问性能基于此场景,本示例做了一个用例,可以实用于真实例项目原创 2017-06-04 21:30:40 · 4593 阅读 · 4 评论 -
Spring Cloud构建微服务架构(三)断路器
在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身问题出现调用故障或延迟,而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会出现因等待出现故障的依赖方响应而形成任务积压,最终导致自身服务的瘫痪。举个例子,在一个电商网站中,转载 2017-05-26 08:23:43 · 1177 阅读 · 0 评论 -
Spring Cloud构建微服务架构(四)分布式配置中心
Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持。配置服务器为各应用的所有环境提供了一个中心化的外部配置。它实现了对服务端和客户端对Spring Environment和PropertySource抽象的映射,所以它除了适用于Spring构建的应用程序,也可以在任何其他语言运行的应用程序中使用。作为一个应用可以通过部署管道来进行测试或者投入生产,我们可以分别为这转载 2017-06-14 08:16:30 · 877 阅读 · 0 评论 -
Spring Cloud构建微服务架构(四)分布式配置中心(续)
本文接之前的《Spring Cloud构建微服务架构(四)分布式配置中心》,继续来说说Spring Cloud Config的使用。先来回顾一下,在前文中我们完成了什么:构建了config-server,连接到Git仓库在Git上创建了一个config-repo目录,用来存储配置信息构建了config-client,来获取Git中的配置信息在本文中,我们继续来看看Spring Cloud C转载 2017-06-15 08:19:43 · 703 阅读 · 0 评论 -
05-SpringBoot——Spring常用配置-Spring EL和资源调用
Spring常用配置-Spring EL和资源调用【博文目录>>>】【项目源码>>>】【Spring EL和资源调用】Spring EL-Spring 表达式语言,支持在xml和注解中使用表达式,类似于JSP 的EL 表达式语言。Spring 开发中经常涉及谓用各种资源的情况,包含普通文件、网址、配置文件、系统环境变量等,我们可以使用Spring 的表达式语言实现资源的注入。Spring 主要在注解原创 2017-07-31 08:05:37 · 2819 阅读 · 0 评论 -
02-SpringBoot——Spring基础-Java配置
02-SpringBoot——Spring基础-Java配置【博文目录>>>】【项目源码>>>】【Java配置】Java 配置是Spring 4.x 推荐的配置方式,可以完全替代xml 配置: Java 配置也是Spring Boot推荐的配置方式。Java 配置是通过@Configuration 和@Bean 来实现的。@Configuration 声明当前类是一个配置类,相当于一个Spring原创 2017-07-26 07:41:11 · 1403 阅读 · 1 评论 -
08-SpringBoot——Spring常用配置-事件
Spring 的事件( Application Event )为Bean 与Bean 之间的消息通信提供了支持。:当一个Bean 处理完一个任务之后,希望另外一个Bean 知道并能做相应的处理,这时我们就需要让另外一个Bean 监听当前Bean 所发送的事件。Spring 的事件需要遵循如下流程: (1)自定义事件,集成ApplicationEvent。 (2)定义事件监听器,实现ApplicationLi原创 2017-08-03 07:41:47 · 1101 阅读 · 0 评论 -
18-SpringBoot——核心-基本配置
Spring Boot 通常有一个名为XxxApplication 的入口类,入口类里有一个main 方法,这个main方法其实就是一个标准的Java 应用入口方法。在main 方法中使用SpringApplication.run( Xxx.class, args ),启动Spring Boot 应用项目。@SpringBootApplication 是Spring Boot 的核心注解,它是一个组合注解。原创 2017-08-17 07:49:22 · 1051 阅读 · 0 评论 -
01-SpringBoot——Spring基础-依赖注入
01-SpringBoot——Spring基础-依赖注入【博文目录>>>】【项目源码>>>】【依赖注入】控制翻转(Inversion of Control-IOC)和依赖注入(dependency injection-DI)在Spring环境下是同等的概念,控制翻转是通过依赖注入实现的。所谓依赖注入是指容器负责创建对象和维护对象间的依赖关系,而不是通过对象本身去创建和解决自自己的依赖。依赖的主要目的原创 2017-07-25 08:01:30 · 2318 阅读 · 0 评论 -
12-SpringBoot——Spring MVC基础-常用配置
Spring MVC 的定制配置需要我们的配置类继承一个WebMvcConfigurerAdapter 类,并在此类使用@EnableWebMvc 注解,来开启对Spring MVC 的配置支持,这样我们就可以重写这个类的方法,完成我们的常用配置。原创 2017-08-09 07:43:00 · 1781 阅读 · 0 评论 -
07-SpringBoot——Spring常用配置-Profiles
Profile 为在不同环境下使用不同的配置提供了支持(开发环境下的配置和生产环境下的配置肯定是不同的,例如,数据库的配置)。 (1) 通过设定Environment 的ActiveProfiles 来设定当前context 需要使用的配置环境。在开发中使用@Profile 注解类或者方法,达到在不同情况下选择实例化不同的Bean。 (2) 通过设定jvm 的spring.profiles.active 参数来原创 2017-08-02 07:23:20 · 1130 阅读 · 0 评论