Dubbo详解
一、Dubbo概述1.1 什么是分布式系统?
《分布式系统原理与范型》定义:
“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”
分布式系统(distributed system)是建立在网络之上的软件系统。
简单来说:多个(不同职责)人共同来完成一件事!
任何一台服务器都无法满足淘宝的双十一的数据吞吐量,一定是很多台服务器公共来完成的。
歇后语:“三个臭皮匠赛过诸葛亮”,就是分布式系统的真实写照
1.1.1 单一应用架构
当网站流量很小时,只需要一个应用,将所有的功能部署到一起(所有业务都放在一个tomcat里),从而减少部署节点和成本;
此时,用于简化 增删改查 工作量的数据访问框架 (ORM)是关键;
例如:某个超市的收银系统,某个公司的员工管理系统
ORM:对象关系映射(Object Relational Mapping)
优点
小项目开发快 成本低
架构简单 
易于测试
易于部署
缺点
大项目模块耦合严重 不易开发 维护 沟通成本高 
新增业务困难
核心业务与边缘业务混合在一块,出现问题互相影响
1.1.2 垂直应用架构
当访问 ...
LeetCode初级算法之数学问题:412.Fizz Buzz
题目信息
题目地址:https://leetcode-cn.com/problems/fizz-buzz/
写一个程序,输出从 1 到 n 数字的字符串表示。
如果 n 是3的倍数,输出“Fizz”;
如果 n 是5的倍数,输出“Buzz”;
如果 n 同时是3和5的倍数,输出 “FizzBuzz”。
示例:
1234567891011121314151617181920n = 15,返回:[    "1",    "2",    "Fizz",    "4",    "Buzz",    "Fizz",    "7",    "8",    "Fizz",    "Buzz",    "11",    "Fizz",    "13",    "14",    "FizzBuzz"]
 ...
SSM整合
1. 需求和步骤分析需求
	使用ssm框架完成对 account 表的增删改查操作。
步骤分析
准备数据库和表记录 
创建web项目 
编写mybatis在ssm环境中可以单独使用 
编写spring在ssm环境中可以单独使用 
spring整合mybatis 
编写springMVC在ssm环境中可以单独使用 
spring整合springMVC
2. 环境搭建2.1 准备数据库和表记录123456789CREATE TABLE `account` (     `id` int(11) NOT NULL AUTO_INCREMENT,         `name` varchar(32) DEFAULT NULL,    `money` double DEFAULT NULL,     PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; insert into `account`(`id`,`name`,`money`) values (1,'tom',1 ...
SpringMVC 进阶
1. ajax异步交互Springmvc默认用MappingJackson2HttpMessageConverter对json数据进行转换,需要加入jackson的包;同时使用 <mvc:annotation-driven />
123456789101112131415<dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-databind</artifactId>    <version>2.9.8</version></dependency><dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-core</artifactId>    <version>2.9.8</ve ...
SpringMVC 入门
1. SpringMVC简介1.1 MVC模式MVC是软件工程中的一种软件架构模式,它是一种分离业务逻辑与显示界面的开发思想。
M(model)模型:处理业务逻辑,封装实体
V(view) 视图:展示内容
C(controller)控制器:负责调度分发(1.接收请求、2.调用模型、3.转发到视图)
1.2 SpringMVC概述SpringMVC 是一种基于 Java 的实现 MVC 设计模式的轻量级 Web 框架,属于SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 中。
SpringMVC 已经成为目前最主流的MVC框架之一,并且随着Spring3.0 的发布,全面超越 Struts2,成为最优秀的 MVC 框架。它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持 RESTful 编程风格的请求。
总结
SpringMVC的框架就是封装了原来Servlet中的共有行为;例如:参数封装,视图转发等。
1.3 SpringMVC快速入门需求客户端发起请求,服务器接收请求,执行逻辑并进行视图跳 ...
Spring JDBCtemplate&声明式事务
1. Spring的JdbcTemplate主要是学习声明是事务,顺便用下Spring的JdbcTemplate来做演示
1.1 JdbcTemplate是什么?JdbcTemplate是spring框架中提供的一个模板对象,是对原始繁琐的Jdbc API对象的简单封装。
核心对象
1JdbcTemplate jdbcTemplate = new JdbcTemplate(DataSource dataSource);
核心方法
12345int update(); //执行增、删、改语句 List<T> query(); //查询多个 T queryForObject(); //查询一个 new BeanPropertyRowMapper<>(); //实现ORM映射封装
举个栗子
查询数据库所有账户信息到Account实体中
1234567891011public class JdbcTemplateTest {	@Test 	public void testFindAll() throws Exception {		// 创建核 ...
AOP面向切面
1. 转账案例
先通过一个转账案例在没有AOP的情况下,体验是如何通过基本的代理去实现这样的场景,最后在了解AOP,通过AOP再次实现一次
需求
使用spring框架整合DBUtils技术,实现用户转账功能
1.1 基础功能步骤分析
创建java项目,导入坐标
编写Account实体类
编写AccountDao接口和实现类
编写AccountService接口和实现类
编写spring核心配置文件
编写测试代码
1)创建java项目,导入坐标
1234567891011121314151617181920212223242526272829303132<dependencies>    <dependency>        <groupId>mysql</groupId>        <artifactId>mysql-connector-java</artifactId>        <version>5.1.47</version>    </depen ...
LeetCode初级算法之设计问题:155.最小栈
题目信息
题目地址:https://leetcode-cn.com/problems/min-stack/
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。
push(x) —— 将元素 x 推入栈中。
pop() —— 删除栈顶的元素。
top() —— 获取栈顶元素。
getMin() —— 检索栈中的最小元素。
示例:
12345678910111213141516输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,null,-3,null,0,-2]解释:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minSt ...

