spring
文章平均质量分 70
chengkui1990
Java开发
展开
-
spring中的事务传播行为
原创 2018-02-09 11:31:45 · 158 阅读 · 0 评论 -
springboot启动源码详解
学习spring这个框架,我们总是有种感觉,会用但是不懂,“会用”是因为spring的框架利用约定大于配置的原则帮我们封装好了所有的启动配置类,这样我们使用起来的入门门槛就比较低了,只要照着官方的文档配置,一般都不会有问题,“不懂”是因为我们不知道他的底层到底是怎么实现的,有种雾里看花的感觉,一旦我们想拓展下spring的框架,就无从下手了, spring作为一个优秀的开源框架,我们很有必要去探究...原创 2018-07-31 16:52:15 · 364 阅读 · 0 评论 -
spring负载均衡自动配置类LoadBalancerAutoConfiguration
/* * Copyright 2013-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * ...原创 2018-10-12 11:31:52 · 2559 阅读 · 0 评论 -
SpringCloud之网关Zuul的使用以及简介
说明:Spring Cloud Zuul是SpringClud的网关,我们知道,网关一般是应用的入口,做一些公共的和业务无关的校验工作,例如加验签、加解密等一些操作,而zuul作为微服务的网关,有如下原因:1、作为系统的统一入口,屏蔽了微服务内部的实现细节;2、与服务治理框架相结合(例如:Eureka),实现自动化的实例维护、以及负载均衡的路由转发;3、实现接口的校验与微服务业务逻...原创 2018-10-17 21:01:28 · 1437 阅读 · 0 评论 -
Spring Cloud Config配置中心使用及介绍
简介:我们之前创建的微服务实例的配置文件都是配置在应用程序里面的,如Application.properties等,这么做的第一个缺点是一旦修改配置文件,必须要修改应用且必须重启实例才能使配置生效,第二个缺点是加入我们要部署多个微服务实例的时候,假如使用的是同一个配置文件,那么有多少个节点我们就要修改且重新部署多少次,容易遗漏出错,效率不高。此时,Spring Cloud Config应运而生,他...原创 2018-10-19 16:40:56 · 347 阅读 · 0 评论 -
spring Cloud Sleuth 分布式服务跟踪
前瞻: 首先我们知道spring Cloud Sleuth分布式服务跟踪是干什么的,在现如今的系统规模中,随着系统规模的越来越大,微服务之间的调用关系越来越错综复杂,通常一个前端的请求在系统中会经过多个微服务之间的调用最后才能返回正确的结果,而在这么多微服务之间的相互调用中,每一次微服务之间调用的延迟都可能使整个请求出现超时而导致失败,这时候,对于全链路调用的跟踪就显得尤为重要了,它...原创 2018-11-01 15:27:34 · 621 阅读 · 0 评论 -
springMVC源码解析
前沿: 我们需要知道什么是springMVC,简单的来说,他是一个web框架,实现了视图(view)-模型(model)-控制器(controller)的解耦,但是怎么解耦的呢,今天我们就一边debug,一边从源码来解析springMVC的运行过程;1、我们都知道,springMVC的核心是DispatcherServlet,它是springMVC的核心控制器,也就是MVC中的C...原创 2018-11-07 17:57:29 · 364 阅读 · 0 评论 -
springboot整合Mybatis项目源码分析
我们先来看看Mybatis的几个核心类SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession之间的关系; 大致流程是这个样子的,mybatis通过SqlSessionFactoryBuilder类的build方法和配置文件生成SqlSessionFactory对象,而SqlSession对象是通过SqlSessionFactor...原创 2018-12-12 17:07:00 · 906 阅读 · 0 评论 -
Spring AOP实现多数据源动态切换
前言:前面的一篇文章我们实现了mysql数据库的主从同步,那么这一篇开始我们用AOP来简单实现多数据源的动态切换;要实现的功能:设置读数据库和写数据库,当查询数据的时候从读数据库读取,当插入数据的时候插入写数据库,读写数据库是主从关系,这样就可以实现读写分离了;首先看一下我的项目目录结构,然后我们一步一步的实现: 1、配置读写数据源:既然是设置读写2个数据库,那么肯定是要配置2个数...原创 2018-12-20 20:25:35 · 1310 阅读 · 0 评论 -
Springboot整合Mybatis项目搭建
实战第一,先创建一个springboot整合mybatis的简单例子:第一步: 创建完成后的maven配置依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3...原创 2018-12-11 18:06:51 · 1559 阅读 · 0 评论 -
spring的aop的源码解析
spring中最重要的概念有2个,一个是IOC(inverse of control)和aop(面向切面编程),今天我们来聊聊aop面向切面编程;基础概念这里就不做介绍了,今天我们主要来说说aop的实现,先来一个简单的例子:public interface Dao { public void insert(); public void select();}pub...原创 2018-07-27 14:58:15 · 183 阅读 · 0 评论 -
springCloud整合RabbitMQ实现消息中间件
什么是RabbitMQ?RabbitMQ是一个消息中间件,是一个实现了AMQP(高级消息队列协议)的开源消息代理软件,同类的产品还有kafka,rocketMQ,但是目前springcloud只集成了RabbitMQ和kafka,他的作用就是实现系统之间消息传递的解耦,对一些实时性要求不是很高的服务或者并发很高的系统来说是一个不错的选择,同时因为RabbitMQ是以AMQP协议实现的,所以支持...原创 2018-07-04 11:06:52 · 35821 阅读 · 7 评论 -
springCloud中分布式配置中心config运用
一、springCloud能做什么?没有springCloud前,传统的服务配置文件都是配置在项目里面的,例如resource目录下面的application.yml或者application.properties文件,这种配置文件的局限性是修改起来比较麻烦,要重新打包发布并且重启服务,这些缺点就是springCloud的优点,1、配置文件和项目分离,配置在git上或者svn上;2、配置文件修...原创 2018-07-03 11:18:43 · 4044 阅读 · 0 评论 -
springboot启动时是如何加载配置文件application.yml文件
今天启动springboot时,明明在resources目录下面配置了application.yml的文件,但是却读不出来,无奈看了下源码,总结一下springboot查找配置文件路径的过程,能力有限,欢迎各位大牛指导!!!spring加载配置文件是通过listener监视器实现的,在springboot启动时:在容器启动完成后会广播一个SpringApplicationEvent事件,而Spri...原创 2018-04-09 15:04:48 · 184753 阅读 · 22 评论 -
springboot+mybatis+gradle+PageHelper实现分页
用springboot+mybatis+gradle+PageHelper实现分页,记录一下!第一步:build.gradle引入配置文件:dependencies { compile group: 'com.github.pagehelper', name: 'pagehelper-spring-boot-starter', version: '1.2.4'}第二步:默认的情况这样就直接可...原创 2018-04-16 14:11:58 · 1392 阅读 · 0 评论 -
spring缓存源码解析
大家都知道spring的缓存机制,可能都会用缓存标签@Cacheable等标签,可是大家有没有想过,为什么在方法上加了标签以后,这个方法就能用缓存呢,作为一名咸鱼coding,当然要知其然也要知其所以然啦,废话不多说,开始吧!在springboot启动的时候,会先扫描所有的bean,发现被@Cache注解修饰的bean,生成动态代理,扫描bean的类是SpringCacheAnnotationPa...原创 2018-04-23 17:05:25 · 1128 阅读 · 3 评论 -
springcloud的fegin简单实例
第一步:修改pom.xml配置文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo...原创 2018-05-04 13:35:19 · 1687 阅读 · 1 评论 -
spring+mybatis+log4jdbc源码分析!
最近有个需求,记录框架spring+mybatis的项目的慢sql,想到了log4jdbc框架,log4jdbc只是对传统jdbc的一层封装,然后打印出sql执行日志和执行时间:先简单介绍一下log4jdbc的使用:第一步:引用log4jdbc的gradle配置,如果是maven的自己转换:compile 'com.googlecode.log4jdbc:log4jdbc:1.2'第二步:修改jd...原创 2018-05-25 11:44:15 · 771 阅读 · 0 评论 -
springCloud的短路器Hystrix使用
第一步:引入pom依赖:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId></dependency>第二步:启动类加上注解: @Ena...原创 2018-06-21 13:23:27 · 293 阅读 · 0 评论 -
springCloud的feign使用
说明:fegin是基于Netflix Feign的实现,整合了Spring Cloud Ribbon 和 Spring Cloud Hystrix,除了这两者强大的功能外,还提供了一种声明式的web服务客户端定义方式;第一步:引入maven的依赖:<parent> <groupId>org.springframework.boot</groupId&...原创 2018-06-22 14:32:47 · 428 阅读 · 0 评论 -
springCloud的RestTemplate+@LoadBalanced注解实现负载均衡源码分析
学习springcluod的时候,有一个困惑,为什么RestTemplate上面@LoadBalanced注解,就能实现负载均衡,今天我们一起学习下源码,探索下springCloud底层的秘密:第一步:在看源码之前我们先自己搭建一个消费者微服务(因为我们这里主要讲解的是springCloud的Ribbon负载均衡,所以注册中心和提供者这里就不再讲解了)1、引入必要的maven依赖:<pare...原创 2018-06-20 11:29:42 · 11585 阅读 · 3 评论 -
springBoot以外部tomcat作为容器方式部署启动
前言:springBoot采用约定大于配置的规则,使开发人员可以快速部署启动web项目,包括tomcat容器,springBoot启动时使用的是springBoot的内嵌容器,那么加入我们需要使用自定义的外部容器启动springBoot项目,那么应该这么实现呢?往下看!1、第一步: 打包方式设置成war:2、第二步:springBoot的启动类继承SpringBootS...原创 2019-04-11 18:51:52 · 673 阅读 · 0 评论