Spring Boot

看了 5种分布式事务方案,我司最终选择了 Seata,真香!

不问归期 提交于 2020-11-27 12:26:14
好长时间没发文了,最近着实是有点忙,当爹的第 43 天,身心疲惫。这又赶上年底,公司冲 KPI 强制技术部加班到十点,晚上孩子隔两三个小时一醒,基本没睡囫囵觉的机会,天天处于迷糊的状态,孩子还时不时起一些奇奇怪怪的疹子,总让人担惊受怕的。 本就不多的写文章时间又被无限分割,哎~ 打工人真是太难了。 本来不知道写点啥,正好手头有个新项目试着用阿里的 Seata 中间件做分布式事务,那就做一个实践分享吧! 介绍 Seata 之前在简单回顾一下分布式事务的基本概念。 分布式事务的产生 我们先看看百度上对于分布式事务的定义:分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。 额~ 有点抽象,简单的画个图好理解一下,拿下单减库存、扣余额来说举例: 当系统的体量很小时,单体架构完全可以满足现有业务需求,所有的业务共用一个数据库,整个下单流程或许只用在一个方法里同一个事务下操作数据库即可。此时做到所有操作要么全部提交 或 要么全部回滚很容易。 分库分表、SOA 可随着业务量的不断增长,单体架构渐渐扛不住巨大的流量,此时就需要对数据库、表做 分库分表 处理,将应用 SOA 服务化拆分。也就产生了订单中心、用户中心、库存中心等,由此带来的问题就是业务间相互隔离,每个业务都维护着自己的数据库,数据的交换只能进行 RPC 调用。

精品课程免费获取啦

最后都变了- 提交于 2020-11-27 04:51:56
点击 蓝色字 免费订阅, 每天收到这样的好信息 前言 : 最近有不少粉丝关注本公众号。并且我已经 成功开通了流量主同时会赚一点点广告费,我打算每个月把这部分钱拿出来给大家买点书刊,算是给大家一点福利吧。大家想买什么书扫描下方的二维码加群。最后,非常感谢大家的关注。 当下前端开发可以说是一个比较火的职业,所以学习的人比较多,不管是培训还是自学都是希望通过前端可以找到一份好的工作,但是很多自学的朋友在自学过程中有些盲目,不仅大大降低了学习的效率,而且也会打击自己的学习热情。 那么当我们学习了前端的一部分知识之后,对前端有了进一步的了解,我们就急需要一些项目去帮我们整理一下自己学习的知识点以及提高一下编程能力,这样更有助于我们的学习和工作实践,最重要的是提高自己的项目经验,对于找工作而言有着大大的帮助。 下面小编整理了几个我们的学员项目,在学习前端的新人可以拿去练练手。 实战项目之拉勾网 项目介绍:本项目是HTML+css pc端项目实战,通过讲解拉勾网得首页、登录页等。让你深入了解HTML+CSS,掌握页面布局和标签、属性等的使用。 视频教程+源码资料:https://pan.baidu.com/s/1RjAhAAUcPuHZfH1zAVc1XA 提取码: ize6 前端实战项目之幸福西饼 项目介绍:通过讲解这个pc端幸福西饼屋项目;能让我们加深对HTML和CSS的了解

「上海名媛群」文章发表后,小红书上的名媛全都遭殃了

夙愿已清 提交于 2020-11-27 02:30:57
点击 蓝色字 免费订阅, 每天收到这样的好信息 前言 : 最近有不少粉丝关注本公众号。并且我已经 成功开通了流量主同时会赚一点点广告费,我打算每个月把这部分钱拿出来给大家买点书刊,算是给大家一点福利吧。大家想买什么书扫描下方的加他拉你加群。最后,非常感谢大家的关注。 最近很火的「上海名媛群」文章中低价拼顶级下午茶、酒店、奢侈品的现象,现在小红书上的名媛全都遭殃了。快要乐死我了。大家可以点开小红书,关键词搜:宝格丽打卡。直接看评论区,十分精彩。 打油诗 我不在乎我的作品文章是被现在的人读还是由子孙后代来读。既然上帝花了六千年来等一位观察者,我可以花上一个世纪来等待读者。 永久激活方案~ 2020-07-29 spring 状态机 2020-05-12 mybatis用到的设计模式 2020-07-02 jvm高级面试题(必须看) 2020-07-23 MySQL索引实现原理分析 2020-05-19 Spring中的用到的设计模式 2020-04-23 Spring 和 SpringBoot 之间到底有啥区别? 2020-05-29 如何快速搭建一个免费的 鉴黄 平台 2020-08-15 美国也就那么回事吧 2020-08-15 5T的Java视频教程全部免费获取 2020-08-14 本文分享自微信公众号 - Java小白学心理(gh_9a909fa2fb55)。 如有侵权

Java注解详解

被刻印的时光 ゝ 提交于 2020-11-27 01:45:51
在使用SpringBoot作为Web敏捷开发的框架之后,SpringBoot除了自动装配配置的便捷之外,在很多时候需要基于注解来开发。注解不仅增加了代码的可读性,还增加了开发的速度。这篇文章主要讲述Java 注解。 元注解 元注解用于注解其他注解的。Java 5.0定义了4个标准的元注解,如下: @Target @Retention @Documented Inherited 现在来说说这四个元注解有什么作用。 @Target  @Target注解用于声明注解的作用范围,例如作用范围为类、接口、方法等。它的取值以及值所对应的范围如下: CONSTRUCTOR:用于描述构造器 FIELD:用于描述域 LOCAL_VARIABLE:用于描述局部变量 METHOD:用于描述方法 PACKAGE:用于描述包 PARAMETER:用于描述参数 TYPE:用于描述类、接口(包括注解类型) 或enum声明 @Retention 该注解声明了注解的生命周期,即注解在什么范围内有效。 SOURCE:在源文件中有效 CLASS:在class文件中有效 RUNTIME:在运行时有效(即运行时保留) 大多数注解都为RUNTIME @Documented 是一个标记注解,有该注解的注解会在生成 java 文档中保留。 @Inherited 该注解表明子类是有继承了父类的注解。比如一个注解被该元注解修饰

springboot @EnableAutoConfiguration自动配置超详解

旧巷老猫 提交于 2020-11-27 00:20:14
springboot相关逻辑 1. main启动类 首先就是springboot项目习以为常的main方法调用SpringApplication.run将标注有@SpringBootApplication注解的class对象作为参数传递。SpringBootApplication注解是个组合注解,主要组合了 @Configuration , @EnableAutoConfiguration , @Import(AutoConfigurationImportSelector.class) , @ComponentScan 等关键注解。 @SpringBootApplication public class SampleWebUiApplication { public static void main (String[] args) { SpringApplication.run(SampleWebUiApplication.class, args); } } 2. 调用SpringApplication构造函数 通过第一步调用静态方法run,内部转换为实例化SpringApplication并调用实例方法run。 public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySources) {

vue实现世界疫情地图(点击进入子地图)

 ̄綄美尐妖づ 提交于 2020-11-26 11:26:05
vue实现世界疫情地图,点击可以进入子地图 效果展示 寻找数据源 设置代理 发送请求提取数据 提取数据 踩坑 处理数据并绘图 国内疫情地图数据处理绘制 海外疫情地图数据处理绘制 完整代码 代码优化 点击进入子地图目前只实现了中国模块 数据来源, 腾讯实时疫情 , 中国疫情网 原本只想做中国模块,后来想了想,做个世界的吧 使用axios和echarts,elementui的加载模块还有按钮,本地代理,脚手架版本4.1.1 本次不封装,刚写完还没有优化,函数名和数据名也是随便起的,大佬勿喷 npm安装即可 效果展示 下载的照片如下 寻找数据源 找了几家后发现中国疫情网的国内疫情数据更新的快,腾讯海外疫情也不错 中国疫情网的数据: 这个是全国数据 这个是按照日期 设置代理 用axios请求这些数据如果出现跨域问题,就设置本地代理,在根目录下创建vue.config.js文件 module.exports = { devServer: { proxy: { "/api": { target: "https://www.ncovchina.com/data", changeOrigin: true, pathRewrite: { "^/api": "" } }, "/aki": { target: "http://api.fanyi.baidu.com/api/trans/vip",

Spring Boot 2.0系列文章(七):SpringApplication 深入探索

感情迁移 提交于 2020-11-26 04:00:18
关注我 转载请务必注明原创地址为: http://www.54tianzhisheng.cn/2018/04/30/springboot_SpringApplication/ 前言 在 Spring Boot 项目的启动类中常见代码如下: @SpringBootApplication public class SpringbotApplication { public static void main(String[] args) { SpringApplication.run(SpringbotApplication.class, args); } } 其中也就两个比较引人注意的地方: @SpringBootApplication SpringApplication.run() 对于第一个注解 @SpringBootApplication ,我已经在博客 Spring Boot 2.0系列文章(六):Spring Boot 2.0中SpringBootApplication注解详解 中详细的讲解了。接下来就是深入探究第二个了 SpringApplication.run() 。 换个姿势 上面的姿势太简单了,只一行代码就完事了。 SpringApplication.run(SpringbotApplication.class, args); 其实是支持做一些个性化的设置

Spring Boot 五种热部署方式

隐身守侯 提交于 2020-11-26 03:10:41
<div class="content" id="articleContent"> <div class="ad-wrap"> <p style="margin:0 0 10px 0;"><a data-traceid="blog_detail_above_text_link_1" data-tracepid="blog_detail_above_text_link" style="color:#A00;font-weight:bold;" href="https://my.oschina.net/u/2663968/blog/3135425" target="_blank">【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理)>>> </a> <img src="https://www.oschina.net/img/hot3.png" align="absmiddle" style="max-height: 32px; max-width: 32px;"></p> </div> <span id="OSC_h1_1"></span> <h1 id="h1_1">1、模板热部署</h1> <p>        在SpringBoot中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在application

分享27个阿里 Java 开源项目,值得收藏!

梦想的初衷 提交于 2020-11-26 02:53:30
点击上方 Java学习指南 关注公众号 每天阅读Java干货文章 来源:http://t.cn/E6hvQw5 大家好,这里为大家整理了阿里的Java开源项目,希望对大家有所帮助 1.分布式应用服务开发的一站式解决方案 Spring Cloud Alibaba Spring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。 地址:https://github.com/spring-cloud-incubator/spring-cloud-alibaba 2. JDBC 连接池、监控组件 Druid Druid是一个 JDBC 组件。 1.监控数据库访问性能。 2.提供了一个高效、功能强大、可扩展性好的数据库连接池。 3.数据库密码加密。 4.SQL执行日志。 地址:https://github.com/alibaba/druid 3. Java 的 JSON 处理器 fastjson fastjson 是一个性能很好的 Java 语言实现的

云服务器启动部署springboot的项目

时间秒杀一切 提交于 2020-11-26 02:14:05
本文采用的jar包是通过idea下maven打包的springboot项目。 在部署本博客上滴滴云服务器时,不但要指定端口,还需要配置容器与宿主机映射卷(我的滴滴云服务器的Java开发环境是用docker安装部署的),一大串的shell命令难免记不过来,写这个shell脚本是为了在linux下方便启动jar包时不用输入太多的shell命令,将启动脚本的一系列shell命令整理到一个xxx.sh中,每次启动此.sh文件就可以。 docker run -d -p 8443:8443 -v /usr/dblog/blog-web.jar:/usr/dblog/blog-web.jar --name blog-web java java -jar /usr/dblog/blog-web.jar 这是我启动项目的shell命令 1、首先,我们在一个合适的地方创建一个.sh文件 vi blog_web.sh 2、将shell命令写入文件,如果需要复制很多文字进去文件可以通过set paste方式. 3、创建.sh文件后,将刚刚那一大串的命令写在.sh脚本里,接下来就可以通过启动shell文件愉快的启动项目啦! ./blog_web.sh (注意需在.sh同级目录) 当当当!!问题来了! 启动居然报错了~报错信息如下: -bash: ./xxx.sh: Permission denied