spring boot
文章平均质量分 90
简单实用的SpringBoot系列学习文章
relax.cg
这个作者很懒,什么都没留下…
展开
-
RocketMQ事务消息的最佳实践
在分布式的场景下,我们经常能遇到事务一致性问题,如何去保证事务的一致性,是分布式场景下不可避免的一个重要话题。我们很难去做到事务的强一致性(有方案),因此会退一步去保证事务的最终一致性。如何去保证事务的最终一致性呢?我们可以利用RocketMQ的事务消息来保证事务的最终一致性。RocketMQ如何保证事务的一致性呢?原来,RocketMQ通过将应用本地事务和发送消息操作定义到全局事务中,要么同时成功,要么同时失败。这样就保证了本地事务和消息发送的一致性:事务消息的原理可以参考事务消息以及收发事.原创 2021-04-14 21:41:13 · 1621 阅读 · 0 评论 -
SpringBoot集成RocketMQ之模版方法模式
前言我们经常使用RocketMQ来进行业务逻辑的解藕,或者在分布式环境下,用来进行系统之间的通信。相比于Kafka、Rabitmq等其他消息中间件,RocketMQ有很多优势特性,这里就不一一介绍了。使用与封装RocketMQ使用起来十分简单与便捷,官网上也有很多示例,但是我们系统中往往不止一个生产者/消费者实例。这时候,就需要封装一下,一来可以统一逻辑、二来减少重复的代码,没必要去单独的配置每个生产者/消费者。基于模版方法的封装我们首先来看看,一个简单的消费者实例(生产者其实不需要特别的封装,不原创 2020-09-03 22:45:24 · 709 阅读 · 0 评论 -
SpringBoot实现WebMvcConfigurationSupport导致自定义的JSON时间返回格式不生效
给理想留点时间,熬过低谷,繁华自现。一、场景(ps:SpringBoot版本为2.0.3-RELEASE)1、提供出去的rest接口,请求入参带有时间类型参数@GetMapping("/date")public DateResponse get(@RequestParam(value = "localDate", defaultValue = "2020-12-12", required = false) LocalDate localDate, @RequestParam(value = ".原创 2020-06-21 11:49:09 · 2258 阅读 · 3 评论 -
Failed to convert value of type java.lang.String to required type java.time.LocalDate
花开从不是为了别人的欣赏,努力也是。一、提供出去的接口,请求入参带有时间类型参数@GetMapping("/date")public DateResponse get(@RequestParam(value = "localDate", defaultValue = "2020-12-12", required = false) LocalDate localDate, @RequestParam(value = "date", defaultValue = "2020-12-12 12:12:1.原创 2020-06-21 10:32:55 · 16251 阅读 · 2 评论 -
SpringBoot全局异常处理
前言:在我们开发项目过程中,经常会主动的抛出异常提示,又或者程序出现了未知的异常而抛出的堆栈异常,此时,我们调用方会收到下面的信息(以swagger为例):{ "timestamp": "2020-05-18T14:21:05.180+0000", "status": 500, "error": "Internal Server Error", "message": "参数错误", "path": "/err2"}这种方式很不优雅,那么有没有一种优雅点的方式,来统一处理程序抛出的原创 2020-05-18 22:31:52 · 419 阅读 · 0 评论 -
Spring动态注册Bean
一、前言一般而言,使用静态配置信息,即可由Spring容器生成我们需要的Bean。但是在一些场景下,我们需要Spring容器根据我们的配置信息动态的生成Bean,这时就需要将Bean动态的注册到Spring容器中去。一般而言,我们使用@Componment、@Service等注解,就可以向Spring容器注册Bean,下面介绍自动的动态注入Bean到Spring容器。具体的应用场景,可以参考我写的一个简单快捷的rocketmq-spring-boot-start里的实现。二、设计测试的Bean1、原创 2020-05-14 19:34:34 · 1043 阅读 · 0 评论 -
SpringBoot创建Bean之singtone模式与prototype模式
一、单例管理的对象spring创建的对象,默认都是单例模式。以BeanC为示例,创建对象过程中一些方法的调用属顺序如下:@Setter@Getterpublic class BeanC implements InitializingBean { public BeanC() { System.out.println("BeanC construct()"); ...原创 2020-01-18 17:56:11 · 1860 阅读 · 0 评论 -
SpringBoot内部方法调用事务方法事务不回滚
在开发中往往会遇到事务问题,当我们必须保证事务的时候,可以在进行具体的保存方法上面加上Spring的事务注解***@Transactional***,即如下的方式:public class SomeServiceImpl implement ISomeService { @Override @Transactional public void save() { do saving....原创 2019-04-02 10:34:50 · 5106 阅读 · 1 评论