spring框架

蚂蚁金服研发框架总览 | SOFABoot 框架剖析

前提是你 提交于 2020-02-27 07:02:16
SOFA Stack( S calable O pen F inancial A rchitecture Stack)是蚂蚁金服自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。 本文为《剖析 | SOFABoot 框架》第一篇,本篇作者纶珥,来自蚂蚁金服。《剖析 | SOFABoot 框架》系列由 SOFA 团队和源码爱好者们出品,项目代号: SOFA:BootLab/ ,文章尾部有参与方式,欢迎同样对源码热情的你加入。 SOFABoot 是蚂蚁金服开源的基于 SpringBoot 的研发框架,提供了诸如 Readiness Check、类隔离、日志空间隔离等能力,用于快速、敏捷地开发 Spring 应用程序,特别适合构建微服务系统。 SpringBoot 基于 Spring 的按条件配置(Conditional Configuration),结合 starter 依赖机制提供了快捷、方便开发 Spring 项目的体验,获得了极大的成功; SOFABoot 同样在这两个能力上基于 SpringBoot 扩展出适应于金融级应用开发框架。作为脱胎于蚂蚁金服内部对于 SpringBoot 的实践,SOFABoot 补充了 SpringBoot 在大规模金融级生产场景下一些不足的地方,例如 Readiness 检查

Spring中ioc的实现原理

五迷三道 提交于 2020-02-27 06:45:09
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。 一、分享Iteye的开涛对Ioc的精彩讲解   首先要分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文,原文地址:http://jinnianshilongnian.iteye.com/blog/1413846 1.1、IoC是什么    Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。 在Java开发中, Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。 如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下:   ● 谁控制谁,控制什么: 传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC是有专门一个容器来创建这些对象,即由Ioc容器来控制对 象的创建; 谁控制谁?当然是IoC 容器控制了对象;控制什么

国内最全的Spring Boot系列之三

久未见 提交于 2020-02-27 04:47:09
历史文章 《 国内最全的Spring Boot系列之一 》 《 国内最全的Spring Boot系列之二 》 马上要过年了,作者要回家好好休息一下了,吃饱喝足,明年继续。在此和大家拜个早年,祝大家:鼠年大吉、心想事成、万事如意、开心每一天。 「您可以在评论区留下你的脚步、留下你的祝福;因为你的祝福,所以我快乐!」 一、回首2019 转眼间2020到来了,回首2019,「Spring Boot」也经历了3年的风雨洗礼,在此感谢粉丝们给予的支持,让我能够一直坚持到现在。 2019不是结束,是2020新的起点,新的一年新的开始,在此也祝福大家新的一年能够有新的突破、新的成长、开心多多、喜事连连。 二、悟纤和师傅杂谈 Java序列化,色色谈 会是一种心动的感觉不? 《色谈Java序列化:女孩子慎入》带你找到初恋般的感觉。 https://mp.weixin.qq.com/s/8tcHFjY1VawAkzdArkSzJQ Memcached的时间复杂度是O(1),那么时间复杂度又是怎么计算来的呐? 《烦不烦,别再问我时间复杂度了:这次不色,女孩子进来吧》 https://mp.weixin.qq.com/s/F1HLfWkYok4D633OpcLjwA 你爱Memcached吗,爱它就要懂它,才能爱到骨子里去。 《爱我,就要懂我 – Memcached》 https://mp.weixin

2020年必备的十大技术

与世无争的帅哥 提交于 2020-02-27 04:24:55
1、DevOps (Docker and Jenkins) 过去的一年,越来越多的公司正在转型DevOps,DevOps非常庞大,需要学习很多工具和原理,但你不需要担心。有大神已经分享了DevOps路线图( github.com/kamranahmed…  如果你是一个有经验的Java程序员,愿意学习环境管理、自动化和整体改进,你也可以成为DevOps工程师。 2、Java 9 - Java 15 相信现在很多Java开发人员主要使用的Java版本还是以Java 8为主,虽然Java 9 - Java 13已经推出了有一段时间。 但是作为Java程序员,我们可能因为某些原因没办法在线上环境真正的进行JDK的升级,但是花一些时间学习Java 9、Java 10、Java 11、Java 12和 Java 13的新特性还是有必要的。 另外,大家可以重点关注一些关键特性,如GC相关的特性、对编码风格有改变的特性等。还有就是Java的LTS版本(Java 8、Java 11)要重点学习。 还要提醒大家一点,在2020年,Oracle还会推出Java 14 和 Java 15!!!如果你在使用Java 7的话,马上就要被"套圈"了! 3、Spring Framework 5 2017年我们见证了Spring和Java生态系统的许多重大升级,Spring 5.0就是其中之一。 Spring

spring boot+druid+mybatisPlus 动态切换数据源

放肆的年华 提交于 2020-02-27 04:19:27
前言 项目中经常会有集成其他数据库的情况,我们项目是使用spring Boot+Druid+Mybatis Plus开发,本文简述在项目通过AOP的方式动态的切换数据库。 版本号 框架 版本号 druid 1.1.10 spring boot 2.2.2.RELEASE mybatis plus 3.2.0 实现思路 配置文件中配置多个数据源 将多个数据源注入到AbstractRoutingDataSource类的一个Map结构中, 通过AOP的切面来动态的从Map中获取数据源 实现过程 1. application.yml中配置多数据源 spring : datasource : druid : xuyang : driver-class-name : com.mysql.cj.jdbc.Driver url : jdbc : mysql : //localhost : 3306/clouddb_xy ? useUnicode=true &characterEncoding =UTF - 8 &allowMultiQueries =true &serverTimezone =GMT%2B8 username : hebao - dev password : <your password > initialSize : 5 minIdle : 5 maxActive : 20

Spring Boot(五):Spring Boot Jpa 的使用

ⅰ亾dé卋堺 提交于 2020-02-27 02:13:27
一、Spring Boot Jpa简介 Jpa(Java Persistence API)是sun官方提出的java持久化规范。它为java开发人员提供了一种对象/关联映射工具,来管理java应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在hibernate、toplink、jdo等ORM框架各自为营的局面。 值得注意的是,Jpa是在充分吸收了现有ORM框架的基础上发展而来的,具有易于使用,伸缩性强等优点。从目前的开发社区的反应上看,Jpa受到了极大的支持和赞扬,其中就包括了spring和EJB的开发团队。 注意:Jpa 是一套规范,不是一套产品,那么像 Hibernate,TopLink,JDO 他们是一套产品,如果说这些产品实现了这个 Jpa 规范,那么我们就可以叫他们为 Jpa 的实现产品。 Spring Boot Jpa是Spring基于ORM框架、JPA规范的基础上封装的一套Jpa应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用Spring Boot Jpa可以极大提高开发效率。 二、基本查询 基本查询也分为两种,一种是 Spring Data 默认已经实现,一种是根据查询的方法来自动解析成 SQL。 1、预先生成方法 Spring Boot

Spring Data ElasticSearch 使用

谁说胖子不能爱 提交于 2020-02-27 01:34:46
什么是Spring Data   Spring Data是一个用于简化数据库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算数据服务。Spring Data可以极大的简化JPA的写法,可以在几乎不用写实现的情况下,实现对数据的访问和操作。除了CRUD外,还包括分页,排序等一些常用的功能; 什么是Spring Data ElasticSearch    Spring Data ElasticSearch基于spring data API简化ES操作,将原始操作ES的客户端API进行封装。Spring Data为ES项目提供集成搜索引擎。Spring Data ElasticSearch POJO的关键字功能区域为中心的模型与ES交互文档和轻松地编写一个存储库数据访问层; Spring Data ElasticSearch入门   1.导入Spring Data ElasticSearch相关依赖  <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>5.6.8</version> </dependency> <dependency> <groupId>org

spring cloud NETFLIX

感情迁移 提交于 2020-02-27 01:33:21
1.什么是微服务 ​ 微服务就是将一个单体应用的架构拆分为一个个独立运行的程序,他们之间通过http协议通信,这些独立运行的程序可以采用不同的编程语言,不同的存储技术 2.什么是springcloud springcloud是微服务放假的一种规范,它整合了许多市面上流行的框架,是一种一站式的解决方案,微服务将要面对的许多问题 1.服务注册与发现 2.负载均衡 3.服务熔断和限流 4.路由 。。。。 刚好springcloud Netflix就能解决这些方案: 1.springcloud eureka(服务注册与发现) 2.springcloud ribbon ,springcloud feign(负载均衡) 3.springcloud hystrix(服务熔断和限流) 4.springcloud zuul (路由网管) 5.springcloud config(配置统一管理) 3.springcloud eureka (单机) springcloud eureka是Netflix卡原组织提供的一个服务高可用的解决方案 1.eureka服务端 1.导入依赖 <!--springcloud--> <dependency> ​ <groupId>org.springframework.cloud</groupId> ​ <artifactId>spring-cloud

SpringBoot图文教程「概念+案例 思维导图」「基础篇上」

巧了我就是萌 提交于 2020-02-27 01:19:09
有天上飞的概念,就要有落地的实现 概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例 每个知识点配套自测面试题,学完技术自我测试 本文初学向,所以希望文中所有的代码案例都能敲一遍 大哥大姐新年好,点赞转发不要少 **文本已收录至GitHub开源仓库 Lu_JavaNodes 码云仓库地址 Lu_JavaNodes ,**包含教程涉及所有思维导图,案例代码和后续讲解视频,欢迎Star增砖添瓦。 前言 庚子鼠年,封村儿,在试过了睡觉,打麻将,做凉皮,做蛋糕之后, 我不由的陷入了对人生和社会的大思考 两年的开发经验和三年的大数据讲师经验告诉我 ,是时候写些什么了,我也早觉得有写些东西的必要了。我向来是不惮以最多的无聊揣测这个假期的,但我没想到……(不能再往下了,再往下真就算抄袭了) 于是决定将自己的的毕生功力汇聚整理成册, 写出《图文教程》系列Java技术学习秘籍 ,本功法力求 『图文并茂』 『简单易懂』,概念和代码实践相结合,每个知识点辅助以自测面试题,希望大家通过本系列教程能够快乐学Java,从练气到飞升。 本期选择的技术是SpringBoot ,SpringBoot 现如今已是Java程序员的必备修炼功法,具备SpringBoot大成的开发功力,才能行走江湖,纵横大厂小派而不惧需求。 在正式开始学习之前,先通过思维导图了解本教程的功法纲要 简单说明,教程分为基础篇

SSM整合

不羁的心 提交于 2020-02-26 22:23:22
目录 一. 项目准备 01-需求 02-数据库脚本 03-项目结构 04-Maven依赖 二.Java源代码 01-domain-实体类 02-dao-持久层 03-Service-服务层 04-controller-控制器 三.Resources配置资源 01-MySQL连接信息配置 02-日志记录配置 03-SpringMVC配置 04-SSM整合配置 05-Mybatis操作Sql配置 四.Web 01-目录结构 02-服务器启动后相关配置 03-首页操作JSP页面 04-展示账户列表页面 五.SSM基本架构代码下载 一. 项目准备 01-需求 02-数据库脚本 create database ssm; create table account( id int primary key auto_increment, name varchar(100), money double(7,2), ); INSERT INTO account(NAME,money)VALUES("小雪",1000); INSERT INTO account(NAME,money)VALUES("丽丽",1000); 03-项目结构 04-Maven依赖 pom.xml文件中添加依赖 <properties> <project.build.sourceEncoding>UTF-8</project