
Spring
文章平均质量分 94
斗者_2013
多年java老兵,专注微服务,中间件等热点技术,分享工作心得和技术干货
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
商品超买超卖问题分析及实战
商品超买超卖是高并发下非常典型的问题,也是面试中秒杀场景常常会问到的问题。常见的问题有:1、怎么设计一个秒杀系统?2、商品超买、超卖问题产生的原因?3、怎么防止商品出现超买|超卖问题?4、乐观锁和悲观锁的适用场景是什么?5、提高事务的隔离级别能解决超买|超卖问题吗?原创 2022-02-23 16:53:21 · 4900 阅读 · 1 评论 -
spring怎么实现单例模式
在Spring中,bean可以被定义为两种模式:prototype(多例)和singleton(单例)singleton(单例):只有一个共享的实例存在,所有对这个bean的请求都会返回这个唯一的实例。prototype(多例):对这个bean的每次请求都会创建一个新的bean实例,类似于new。Spring bean 默认是单例模式。简单来说,spring中的单例是通过单例注册表实现的。...原创 2019-03-11 18:51:48 · 19043 阅读 · 9 评论 -
spring怎么解决bean的循环依赖
前言在实际工作中,经常由于设计不佳或者各种因素,导致类之间相互依赖。这些类可能单独使用时不会出问题,但是在使用Spring进行管理的时候可能就会抛出BeanCurrentlyInCreationException等异常 。当抛出这种异常时表示Spring解决不了该循环依赖,本文将简要说明Spring对于循环依赖的解决方法。循环依赖的产生和解决的前提循环依赖的产生可能有很多种情况,例如:A的...转载 2019-03-11 19:46:31 · 3577 阅读 · 0 评论 -
Spring中bean的生命周期
bean的生命周期一、生命周期流程图:Spring Bean的完整生命周期从创建Spring容器开始,直到最终Spring容器销毁Bean,这其中包含了一系列关键点。若容器注册了以上各种接口,程序那么将会按照以上的流程进行。下面将仔细讲解各接口作用。二、各种接口方法分类Bean的完整生命周期经历了各种方法调用,这些方法可以划分为以下几类:1、Bean自身的方法 : 这个包括了Be...原创 2019-03-12 16:13:30 · 3021 阅读 · 3 评论 -
spring StopWatch监控请求执行时间
为什么谈到StopWatch这个对象类,主要是在spring boot的启动流程中发现了它的应用。所以这里简单分析下它的作用和使用场景。spring boot启动中的使用,统计整个启动流程的执行时间: public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new...原创 2019-03-12 17:06:58 · 1085 阅读 · 0 评论 -
spring boot自动化配置
SpringBoot自动配置模块实现:SpringBoot自动配置模块该配置模块的主要使用到了SpringFactoriesLoader,即Spring工厂加载器,该对象提供了loadFactoryNames方法,入参为factoryClass和classLoader,即需要传入上图中的工厂类名称和对应的类加载器,方法会根据指定的classLoader,加载该类加器搜索路径下的指定文件,即s...转载 2019-03-12 20:10:28 · 1331 阅读 · 0 评论 -
spring中属性文件加载工具类PropertiesLoaderUtils
最近研究spring源码,梳理整体架构体系和流程,发现里面有很多实现很经典。记得以前玩spring读取配置文件的时候,好多人都是网上百度,找一个解析属性文件Properties的工具类,放到项目中,实际上,在spring 框架里面,本来就包含这样一个解析属性文件的工具类PropertiesLoaderUtils核心方法:PropertiesLoaderUtils.loadProperti...原创 2019-03-13 11:02:20 · 881 阅读 · 0 评论 -
使用Feign时报错Service id not legal hostname
报错Service id not legal hostname的原因是服务名称不能带有下划线,可以使用中划线参考:https://github.com/spring-cloud/spring-cloud-netflix/issues/1582转载 2019-03-19 00:43:33 · 8425 阅读 · 1 评论 -
Spring Cloud中关于Feign的常见问题总结
这篇文章主要给大家介绍了Spring Cloud中关于Feign的常见问题,文中通过示例代码介绍的很详细,需要的朋友可以参考借鉴,下面来一起看看吧。一、FeignClient接口,不能使用@GettingMapping 之类的组合注解代码示例:@FeignClient("microservice-provider-user")public interface UserFeignClient...转载 2019-03-23 01:03:09 · 1614 阅读 · 0 评论 -
Spring Cloud源码分析之Eureka篇第七章:续约
在文章《Spring Cloud源码分析之Eureka篇第四章:服务注册是如何发起的 》的分析中,我们知道了作为Eureka Client的应用启动时,在com.netflix.discovery.DiscoveryClient类的initScheduledTasks方法中,会做以下几件事:周期性更新服务列表;周期性服务续约;服务注册逻辑;本章学习的是周期性服务续约的相关代码,对应用如何将...转载 2019-04-10 11:33:44 · 520 阅读 · 0 评论 -
Spring Cloud源码分析之Eureka篇:服务注册
本章学习的是服务注册逻辑的相关代码,对应用如何将自身信息注册到Eureka进行深入了解,原文地址:https://blog.youkuaiyun.com/boling_cavalry/article/details/82861618关于源码版本本次分析的Spring Cloud版本为Edgware.RELEASE,对应的eureka-client版本为1.7.0;源码分析首先回顾com.netflix...转载 2019-04-10 11:39:49 · 480 阅读 · 0 评论 -
springcloud中微服务的优雅停机
大部分项目部署中,为了方便,可能都直接使用kill -9 服务的pid来停掉服务。但是由于Eureka采用心跳的机制来上下线服务,会导致服务消费者调用此已经kill的服务提供者然后出错。可以采用以下方式来解决:核心是先调用方法主动通知Eureka注册中心服务下线,然后在停掉服务。本文会介绍几种eureka 注册中心服务下线的方式最不可取的就是直接使用kill命令停掉服务。默认情况下...原创 2019-04-22 10:48:29 · 3764 阅读 · 0 评论 -
springcloud中微服务的优雅停机
大部分项目部署中,为了方便,可能都直接使用kill -9 服务的pid来停掉服务。但是由于Eureka采用心跳的机制来上下线服务,会导致服务消费者调用此已经kill的服务提供者然后出错。可以采用以下方式来解决:核心是先调用方法主动通知Eureka注册中心服务下线,然后在停掉服务。本文会介绍几种eureka 注册中心服务下线的方式最不可取的就是直接使用kill命令停掉服务。默认情况下...转载 2019-05-06 16:33:09 · 1233 阅读 · 0 评论 -
spring cloud性能调优
网上看了好多关于spring cloud性能调优这类的文章,良莠不齐。本文针对公司微服务并发的实际场景以及网上调研的资料分析影响微服务并发的各种配置优化。先说明线上调用的实际例子:通过zuul网关 调用服务A的接口,服务A的接口里面通过Feign调用服务B的接口。问题:通过JMeter并发测试发现,并发数竟然没有达到30次/s,即QPS不到30。这备注:TPS(吞吐量) 系统在单...原创 2019-03-15 15:54:51 · 14578 阅读 · 0 评论 -
spring cloud总览和架构图
本节主要是根据微服务的技术架构图,介绍下spring cloud微服务体系中的核心组件。下面是spring官网的spring cloud微服务架构图:核心组件说明:分享2张微服务的架构图:之后的文章中,会针对各组件和底层原理调优,以及工作中遇到的一些坑,进行一些记录和说明。1、各组件的原理和使用2、服务划分和数据库拆分思路3、微服务的部署方案4、微服务中的一些优化...原创 2019-03-05 13:10:18 · 28155 阅读 · 2 评论 -
Spring Cloud Zuul性能调整
Spring Cloud Zuul性能调整Spring Cloud 版本:Dalston.SR5这两天通过JMeter测了一下Spring Cloud Zuul的性能,用的是两台虚机8核8G和4核8G,宿主机是10核逻辑20核,代理的服务简单的返回字符串hello,vm堆内存1G够用先说一下测试情况,值得一提的是测试并不严谨,因为用的是虚机,并且虚机上还跑了一些其它的东西,所以不能作为最终...转载 2019-03-05 11:38:59 · 1628 阅读 · 0 评论 -
Spring定时任务的简单例子(转载)
这几天因为工作的需要,用到了spring的定时任务的功能,网上查资料,并且实际运用了一下,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,下面的这篇文章我觉得还是很好的,摘录下来,供以后参考用 package util;import org.apache.log4j.*;public class TaskJob { public static Log转载 2015-05-12 17:09:15 · 559 阅读 · 0 评论 -
Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的。现在核心业务抽取出来,作为独立的服务,使前端应用能更快速和稳定的响应。第一:介绍Dubbo背景 大规模服务化之前,应用可能只是通过RMI或Hessian等转载 2015-05-13 11:13:35 · 447 阅读 · 0 评论 -
Spring AOP 实现原理
什么是AOPAOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定义从转载 2015-10-27 18:15:08 · 421 阅读 · 0 评论 -
Spring之——quartz集群的问题及解决方案(基于Spring4.0+quartz2.2.1的集群架构)
转载请注明出处:http://blog.youkuaiyun.com/l1028386804/article/details/49150267特别注意一点,与Spring3.1以下版本整合必须使用Quartz1,最初我拿2.2.1的,怎么搞都报错:Caused by: org.springframework.beans.factory.CannotLoadBeanClassException:转载 2016-02-25 14:22:14 · 1462 阅读 · 1 评论 -
Spring分布式事务实现
分布式事务是指操作多个数据库之间的事务,spring的org.springframework.transaction.jta.JtaTransactionManager,提供了分布式事务支持。如果使用WAS的JTA支持,把它的属性改为WebSphere对应的TransactionManager。 在tomcat下,是没有分布式事务的,不过可以借助于第三方软件jotm(Java Open转载 2016-04-11 17:59:00 · 370 阅读 · 0 评论 -
Spring和Mybatis整合时无法读取properties的处理方案
版本:Spring:3.1.4、Mybatis:3.1.1、Mybatis-Spring:1.1.1;背景:config.properties配置文件信息Properties代码 ##数据库(mysql|mssql|oracle...) environment=mysql jdbc.driver=com.mysql.jdbc.Driver jdbc转载 2016-08-17 12:59:56 · 4417 阅读 · 0 评论 -
Maven搭建SpringMVC+Mybatis项目详解
原文地址:Maven搭建SpringMVC+Mybatis项目详解转载 2016-09-12 10:54:49 · 528 阅读 · 0 评论 -
springmvc+mybatis多数据源配置
原文地址:点击打开链接此篇文章是基于Spring3.0和mybatis3.2的总体大概流程:1. 拷贝所需jar2.写一个数据库切换的工具类:DataSourceContextHolder,用来切换数据库3.写一个DynamicDataSource类来继承AbstractRoutingDataSource,并重写determineCurrentLookupKey()方法转载 2016-10-13 14:12:55 · 1227 阅读 · 0 评论 -
springmvc+mybatis主从数据库的配置
原理说明:每个数据源都有自己对应的mapper包,当服务调用mapper接口中的方法时,会先根据配置找到对应的数据源,然后执行方法。核心的配置文件如下: classpath:application.properties原创 2016-10-13 14:24:56 · 3046 阅读 · 0 评论 -
使用@ResponseBody后返回500错误
在springmvc+mybatis的项目中,利用mybatis分页插件mybatis-paginator进行分页查询,结果出现了500异常,后端又没有明显的报错。原来的写法,返回Map对象,由springmvc里面的机制转为json对象,这样就会导致,在转json过程中的报错,都隐藏了,无法抛出,前端获取不到正确的数据,最后就出现了500的异常。 @RequestMapping(va原创 2017-01-03 21:12:26 · 13804 阅读 · 0 评论 -
关于Spring boot中读取属性配置文件出现中文乱码的问题的解决
在eclipse下如何解决Spring boot读取配置文件出现中文乱码的问题呢?原创 2017-05-04 11:54:27 · 38734 阅读 · 9 评论 -
Alibaba Cloud Toolkit使用:在 Intellij IDEA 中部署 Spring Boot / Spring Cloud 应用到远程服务器
本文主要是安利一款Alibaba的开发小插件给大家,合理使用能提高日常工作效率。说明插件名称:Alibaba Cloud Toolkit作用:集成到开发工具IDEA和Eclipse中,一键发布项目到云服务器或者本地远程私有服务器上。下面说一下实际操作步骤:安装插件1、在线安装:https://yq.aliyun.com/articles/674021?spm=a2c4e.111539...原创 2019-02-15 15:34:03 · 7599 阅读 · 8 评论 -
Spring 整合 Redis
pom构建:[html] view plaincopyprint?modelVersion>4.0.0modelVersion> groupId>com.x.redisgroupId> artifactId>springredisartifactId> version>0.0.1-SNAPSHOTversion>转载 2015-04-19 15:39:09 · 647 阅读 · 0 评论