自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

原创 SpringCloud SpringBoot mybatis 分布式微服务(三十)springboot集成swagger2,构建优雅的Restfu API

swagger,中文“拽”的意思。它是一个功能强大的api框架,它的集成非常简单,不仅提供了在线文档的查阅,而且还提供了在线文档的测试。另外swagger很容易构建restful风格的api,简单优雅帅气,正如它的名字。一、引入依赖 <dependency> <groupId>io.springfox</groupId> ...

2018-03-07 10:45:46 1227 3

原创 SpringCloud SpringBoot mybatis 分布式微服务(二十九)Restdoc生成api文档

Restdoc,通过单元测试生成api文档restdocs是通过单元测试生存snippets文件,然后snippets根据插件生成htm文档的。建一个单元测试类:@RunWith(SpringRunner.class)@WebMvcTest(HomeController.class)@AutoConfigureRestDocs(outputDir = "target/snippets")pu...

2018-03-05 11:03:57 472 1

原创 SpringCloud SpringBoot mybatis 分布式微服务(二十八)集成spring cache

创建一个book数据访问层先创建一个实体类public class Book {private String isbn;private String title;public Book(String isbn, String title) { this.isbn = isbn; this.title = title;}….getter ….setter} 创建一个数据访问接...

2018-03-05 11:01:12 457 1

原创 SpringCloud SpringBoot mybatis 分布式微服务(二十七)集成apidoc

一、apidoc简介apidoc通过在你代码的注释来生成api文档的。它对代码没有侵入性,只需要你写好相关的注释即可,并且它仅通过写简单的配置就可以生成高颜值的api接口页面。它基于node.js,所以你需要安装node.js环境。node.js安装,点击这里。这里就不介绍。二、准备工作安装完node.js安装api.doc,它的项目源码:https://github.com/apidoc/api...

2018-03-05 10:53:57 1221 3

原创 SpringCloud SpringBoot mybatis 分布式微服务(二十六)集成swagger2构建Restful API

一、引入依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version>

2018-03-05 10:51:03 577 3

原创 SpringCloud SpringBoot mybatis 分布式微服务(二十五)创建API文档

Restdoc,通过单元测试生成api文档restdocs是通过单元测试生存snippets文件,然后snippets根据插件生成htm文档的。建一个单元测试类:@RunWith(SpringRunner.class)@WebMvcTest(HomeController.class)@AutoConfigureRestDocs(outputDir = "target/snippets")pu...

2018-03-01 10:04:43 461 1

原创 SpringCloud SpringBoot mybatis 分布式微服务(二十四)整合Redis

引入依赖:在pom文件中添加redis依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></depend...

2018-02-27 09:57:57 1501

原创 SpringCloud SpringBoot mybatis 分布式微服务(二十三)Restdoc生成api文档

准备工作你需要15minJdk 1.8maven 3.0+idea创建工程引入依赖,其pom文件:<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin...

2018-02-27 09:55:05 329

原创 SpringCloud SpringBoot mybatis 分布式微服务(二十二)构建restful API

引入依赖在pom文件引入mybatis-spring-boot-starter的依赖: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter<artifactI...

2018-02-27 09:52:33 552

原创 SpringCloud SpringBoot mybatis 分布式微服务(二十一)整合 beatlsql

整合阶段由于springboot没有对 beatlsql的快速启动装配,所以需要我自己导入相关的bean,包括数据源,包扫描,事物管理器等。在application加入以下代码:@Bean(initMethod = "init", name = "beetlConfig") public BeetlGroupUtilConfiguration getBeetlGroupUtilConfig...

2018-02-26 10:23:10 379

原创 SpringCloud SpringBoot mybatis 分布式微服务(二十)Spring Boot 自定义配置文件

上面介绍的是我们都把配置文件写到application.yml中。有时我们不愿意把配置都写到application配置文件中,这时需要我们自定义配置文件,比如test.properties:com.forezp.name=forezpcom.forezp.age=12怎么将这个配置文件信息赋予给一个javabean呢?@Configuration@PropertySource(value = ...

2018-02-26 10:20:24 383

原创 SpringCloud SpringBoot mybatis 分布式微服务(十九)springboot在启动时注入了哪些bean

在程序入口加入:@SpringBootApplicationpublic class SpringbootFirstApplication { public static void main(String[] args) { SpringApplication.run(SpringbootFirstApplication.class, args); } ...

2018-02-26 10:18:18 402

原创 SpringCloud SpringBoot mybatis 分布式微服务(十八)Spring Boot中的事务管理

快速入门在Spring Boot中,当我们使用了spring-boot-starter-jdbc或spring-boot-starter-data-jpa依赖的时候,框架会自动默认分别注入DataSourceTransactionManager或JpaTransactionManager。所以我们不需要任何额外配置就可以用@Transactional注解进行事务的使用。我们以之前实现的《用spri...

2018-02-23 10:23:04 646

原创 SpringCloud SpringBoot mybatis 分布式微服务(十六)Spring Boot中使用Flyway来管理数据库版本

Flyway简介Flyway是一个简单开源数据库版本控制器(约定大于配置),主要提供migrate、clean、info、validate、baseline、repair等命令。它支持SQL(PL/SQL、T-SQL)方式和Java方式,支持命令行客户端等,还提供一系列的插件支持(Maven、Gradle、SBT、ANT等)。官方网站:https://flywaydb.org/本文对于Flyway...

2018-02-23 10:02:27 394

原创 SpringCloud SpringBoot mybatis 分布式微服务(十五)Spring Boot中使用MyBatis注解配置详解

传参方式下面通过几种不同传参方式来实现前文中实现的插入操作。使用@Param在之前的整合示例中我们已经使用了这种最简单的传参方式,如下:@Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name}, #{age})")int insert(@Param("name") String name, @Param("age") Integer age);这种方...

2018-02-23 09:57:44 816

原创 SpringCloud SpringBoot mybatis 分布式微服务(十四)Spring Boot整合MyBatis

Spring中整合MyBatis就不多说了,最近大量使用Spring Boot,因此整理一下Spring Boot中整合MyBatis的步骤。搜了一下Spring Boot整合MyBatis的文章,方法都比较老,比较繁琐。查了一下文档,实际已经支持较为简单的整合与使用。下面就来详细介绍如何在Spring Boot中整合MyBatis,并通过注解方式实现映射。整合MyBatis新建Spring Bo...

2018-02-23 09:42:17 2527 2

原创 SpringCloud SpringBoot mybatis 分布式微服务(十三)Spring Boot中使用MongoDB数据库

MongoDB简介MongoDB是一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库之间的产品,其主要目标是在键/值存储方式(提供了高性能和高度伸缩性)和传统的RDBMS系统(具有丰富的功能)之间架起一座桥梁,它集两者的优势于一身。MongoDB支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型,也因为他的存储格式也使得它所存储的数据在Nodej...

2018-02-11 10:29:18 810

原创 SpringCloud SpringBoot mybatis 分布式微服务(十二)Spring Boot中使用Redis数据库

使用RedisRedis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。Redis官网Redis中文社区引入依赖Spring Boot提供的数据访问框架Spring Data Redis基于Jedis。可以通过引入spring-boot-starter-redis来配置依赖关系。<dependency> <group...

2018-02-11 10:17:53 588

原创 SpringCloud SpringBoot mybatis 分布式微服务(十一)Spring Boot多数据源配置与使用(Spring-data-jpa支持)

Spring-data-jpa支持对于数据源的配置可以沿用上例中DataSourceConfig的实现。新增对第一数据源的JPA配置,注意两处注释的地方,用于指定数据源对应的Entity实体和Repository定义位置,用@Primary区分主数据源。@Configuration@EnableTransactionManagement@EnableJpaRepositories( ...

2018-02-11 10:00:41 343

原创 SpringCloud SpringBoot mybatis 分布式微服务(十)Spring Boot多数据源配置与使用(JdbcTemplate支持)

之前在介绍使用JdbcTemplate和Spring-data-jpa时,都使用了单数据源。在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.properties文件中配置连接参数即可。但是往往随着业务量发展,我们通常会进行数据库拆分或是引入其他数据库,从而我们需要配置多个数据源,下面基于之前的JdbcTemplate和Spring-data-jpa例子分别...

2018-02-11 09:55:10 786 1

原创 SpringCloud SpringBoot mybatis 分布式微服务(九)Spring Boot中使用Spring-data-jpa让数据访问更简单

在上一篇Spring中使用JdbcTemplate访问数据库 中介绍了一种基本的数据访问方式,结合构建RESTful API和使用Thymeleaf模板引擎渲染Web视图的内容就已经可以完成App服务端和Web站点的开发任务了。然而,在实际开发过程中,对数据库的操作无非就“增删改查”。就最为普遍的单表操作而言,除了表和字段不同外,语句都是类似的,开发人员需要写大量类似而枯燥的语句来完成业务逻辑。为...

2018-02-11 09:51:19 933 1

原创 SpringCloud SpringBoot mybatis 分布式微服务(八)Spring Boot中使用JdbcTemplate访问数据库

本文介绍在Spring Boot基础下配置数据源和通过JdbcTemplate编写数据访问的示例。数据源配置在我们访问数据库的时候,需要先配置一个数据源,下面分别介绍一下几种不同的数据库配置方式。首先,为了连接数据库需要引入jdbc支持,在pom.xml中引入如下配置: org.springframework.boot spring-boot-start

2018-02-07 10:20:41 415

原创 SpringCloud SpringBoot mybatis 分布式微服务(七)Spring Boot中使用Spring Security进行安全控制

我们在编写Web应用时,经常需要对页面做一些安全控制,比如:对于没有访问权限的用户需要转到登录表单页面。要实现访问控制的方法多种多样,可以通过Aop、拦截器实现,也可以通过框架实现(如:Apache Shiro、Spring Security)。本文将具体介绍在Spring Boot中如何使用Spring Security进行安全控制。准备工作首先,构建一个简单的Web工程

2018-02-07 10:15:30 942

原创 SpringCloud SpringBoot mybatis 分布式微服务(六)Spring Boot中Web应用的统一异常处理

我们在做Web应用的时候,请求处理过程中发生错误是非常常见的情况。Spring Boot提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面用来展示异常内容。选择一个之前实现过的Web应用(Chapter3-1-2)为基础,启动该应用,访问一个不存在的URL,或是修改处理内容,直接抛出异常,如:@RequestMapping("/he

2018-02-07 10:11:01 332

原创 SpringCloud SpringBoot mybatis 分布式微服务(五)使用Swagger2构建强大的RESTful API文档

由于Spring Boot能够快速开发、便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API。而我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会抽象出这样一层来同时服务于多个移动端或者Web前端。这样一来,我们的RESTful API就有可能要面对多个开发人员或多个开发团队:IOS开发、Andr

2018-02-07 10:05:00 407

原创 SpringCloud SpringBoot mybatis 分布式微服务(四)Spring Boot开发Web应用

静态资源访问在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。默认配置Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:/static/public/resources/META-INF/resources举例:我们可以在src/main/resources/目录下创建sta

2018-02-07 09:59:26 525

原创 SpringCloud SpringBoot mybatis 分布式微服务(三)Spring Boot构建RESTful API与单元测试

首先,回顾并详细说明一下在快速入门中使用的@Controller、@RestController、@RequestMapping注解。如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建议先看一下快速入门的内容。@Controller:修饰class,用来创建处理http请求的对象@RestController:Spring4之后加入的注解,原来在@Controller中

2018-02-06 10:22:15 351

原创 SpringCloud SpringBoot mybatis 分布式微服务(二)Spring Boot属性配置文件详解

相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷。我们在Spring Boot使用过程中,最直观的感受就是没有了原来自己整合Spring应用时繁多的XML配置内容,替代它的是在pom.xml中引入模块化的Starter POMs,其中各个模块都有自己的默认配置,所以如果不是特殊应用场景,就只需要在application.properties中

2018-02-06 10:18:31 470

原创 SpringCloud SpringBoot mybatis 分布式微服务(一)Spring Boot快速入门

简介在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应用!Spring Boot让我们的Spring应用变的更轻量化。比如:你可以仅仅依靠一个Java类来运行一个Spring引用。你也可以打包你的应用为

2018-02-06 10:13:19 795

原创 Spring Cloud架构教程 (十六)服务容错保护(Hystrix断路器)【Dalston版】

断路器断路器模式源于Martin Fowler的Circuit Breaker一文。“断路器”本身是一种开关装置,用于在电路上保护线路过载,当线路中有电器发生短路时,“断路器”能够及时的切断故障电路,防止发生过载、发热、甚至起火等严重后果。在分布式架构中,断路器模式的作用也是类似的,当某个服务单元发生故障(类似用电器发生短路)之后,通过断路器的故障监控(类似熔断保险丝),直接切断原来的主逻

2018-02-06 10:09:42 240 1

原创 Spring Cloud架构教程 (十五)服务容错保护(Hystrix依赖隔离)【Dalston版】

依赖隔离舱壁模式”对于熟悉Docker的读者一定不陌生,Docker通过“舱壁模式”实现进程的隔离,使得容器与容器之间不会互相影响。而Hystrix则使用该模式实现线程池的隔离,它会为每一个Hystrix命令创建一个独立的线程池,这样就算某个在Hystrix命令包装下的依赖服务出现延迟过高的情况,也只是对该依赖服务的调用产生影响,而不会拖慢其他的服务。通过对依赖服务的线程池隔离实现,可以带

2018-02-06 10:02:55 394 1

原创 Spring Cloud架构教程 (十四)服务容错保护(Hystrix服务降级)【Dalston版】

在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元应用间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身问题出现调用故障或延迟,而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会出现因等待出现故障的依赖方响应而形成任务积压,线程资源无法释放,最终导致自身服务的瘫痪,进一

2018-02-06 10:00:04 238 1

原创 Spring Cloud架构教程 (十三)分布式配置中心【Dalston版】

在本文中,我们将学习如何构建一个基于Git存储的分布式配置中心,并对客户端进行改造,并让其能够从配置中心获取配置信息并绑定到代码中的整个过程。准备配置仓库准备一个git仓库,可以在码云或Github上创建都可以。比如本文准备的仓库示例:http://git.oschina.net/didispace/config-repo-demo假设我们读取配置中心的应用名为

2018-01-31 10:07:45 228

原创 Spring Cloud架构教程 (十二)服务消费(Feign)【Dalston版】

Spring Cloud FeignSpring Cloud Feign是一套基于Netflix Feign实现的声明式服务调用客户端。它使得编写Web服务客户端变得更加简单。我们只需要通过创建接口并用注解来配置它既可完成对Web服务接口的绑定。它具备可插拔的注解支持,包括Feign注解、JAX-RS注解。它也支持可插拔的编码器和解码器。Spring Cloud Feign还扩展了对Spr

2018-01-31 10:01:40 209

原创 Spring Cloud架构教程 (十一)服务消费(Ribbon)

Spring Cloud RibbonSpring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。它是一个基于HTTP和TCP的客户端负载均衡器。它可以通过在客户端中配置ribbonServerList来设置服务端列表去轮询访问以达到均衡负载的作用。当Ribbon与Eureka联合使用时,ribbonServerList会被Discove

2018-01-31 09:56:50 228

原创 Spring Cloud架构教程 (十)服务消费(基础)【Dalston版】

使用LoadBalancerClient在Spring Cloud Commons中提供了大量的与服务治理相关的抽象接口,包括DiscoveryClient、这里我们即将介绍的LoadBalancerClient等。对于这些接口的定义我们在上一篇介绍服务注册与发现时已经说过,Spring Cloud做这一层抽象,很好的解耦了服务治理体系,使得我们可以轻易的替换不同的服务治理设施。

2018-01-31 09:30:57 231 1

原创 Spring Cloud架构教程 (九)服务注册与发现(Eureka、Consul)

Spring Cloud简介Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud

2018-01-31 09:20:15 339 1

原创 Spring Cloud架构教程 (八)消息驱动的微服务(消费组)【Dalston版】

使用消费组实现消息消费的负载均衡通常在生产环境,我们的每个服务都不会以单节点的方式运行在生产环境,当同一个服务启动多个实例的时候,这些实例都会绑定到同一个消息通道的目标主题(Topic)上。默认情况下,当生产者发出一条消息到绑定通道上,这条消息会产生多个副本被每个消费者实例接收和处理,但是有些业务场景之下,我们希望生产者产生的消息只被其中一个实例消费,这个时候我们需要为这些消费者设

2018-01-30 09:35:35 496

原创 Spring Cloud架构教程 (七)消息驱动的微服务(核心概念)【Dalston版】

下图是官方文档中对于Spring Cloud Stream应用模型的结构图。从中我们可以看到,Spring Cloud Stream构建的应用程序与消息中间件之间是通过绑定器Binder相关联的,绑定器对于应用程序而言起到了隔离作用,它使得不同消息中间件的实现细节对应用程序来说是透明的。所以对于每一个Spring Cloud Stream的应用程序来说,它不需要知晓消息中间件的通信细节,它只需要知

2018-01-30 09:30:30 217

原创 Spring Cloud架构教程 (六)消息驱动的微服务【Dalston版】

Spring Cloud Stream是一个用来为微服务应用构建消息驱动能力的框架。它可以基于Spring Boot来创建独立的、可用于生产的Spring应用程序。它通过使用Spring Integration来连接消息代理中间件以实现消息事件驱动的微服务应用。Spring Cloud Stream为一些供应商的消息中间件产品提供了个性化的自动化配置实现,并且引入了发布-订阅、消费组以及消息分区这

2018-01-30 09:28:38 327

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除