SpringCloud01-微服务简介
简单的介绍了SpringCloud中的微服务技术栈。
微服务技术栈
微服务拆分,形成微服务集群
注册中心:拉取活注册服务信息(记录微服务的ip端口等,微服务调用关系访问注册中心获得对方信息)
配置中心:拉取配置信息(统一的管理所有微服务的配置,实现配置的热更新)
服务网关组件:身份校验,将请求路由到服务,可以进行负载均衡
分布式缓存:实现高并发
分布式搜索:进行复杂的搜索
消息队列:异步通信,提高服务并发
分布式日志服务:统计整个集群的日志,统一存储,统计进行分析
系统监控链路追踪:实时监控整个集群中每个节点的运行状态,一旦出现问题可以快速定位异常所在
自动化部署(Jenkins)
打包(Docker) kuebernetes RANCHER
微服务简介单体架构将业务的所有功能集中在一个项目中开发,打成一个包部署。
优点:
架构简单
部署成本低
缺点:
耦合度高
分布式架构根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。
优点:
降低服务耦合
有利于服务升级拓展
缺点:
服务治理
服务拆分粒度?
服务集群地址如何维护 ...
SpringCloud00-总览
SpringCloud01-微服务简介SpringCloud01-微服务简介
SpringCloud02-服务拆分SpringCloud02-服务拆分
SpringCloud03-EurekaSpringCloud03-Eureka
SpringCloud04-Ribbon负载均衡SpringCloud04-Ribbon负载均衡
SpringCloud05-NacosSpringCloud05-Nacos
SpringCloud06-FeignSpringCloud06-Feign
SpringCloud07-GatewaySpringCloud07-Gateway
SpringCloud08-DockerSpringCloud08-Docker
SpringCloud09MQSpringCloud09-MQ
SSM12-MybatisPlus
基础案例==极其精简化了dao层的书写==
==先引入mp起步依赖==
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>3.0.2</version></dependency>
==导入实体类和表==
==定义数据接口继承BaseMapper<泛型>即可==
@Mapperpublic interface UserDao extends BaseMapper<User> {}
CURD和分页
功能
自定义接口
MP接口
新增
boolean save(T t)
int insert(T t)
删除
boolean delete(int id)
int deleteById(Serializable id)
修改
boolea ...
SSM10-SSM整合深入
详细的描述了Spring中的SSM整合深入
SSM整合深入表现层与前端数据协议
前端接收数据格式—创建结果模型类,封装数据到data属性中(操作的结果)
前端接收数据格式—封装操作结果到code属性中(操作的结果:true还是false)
前端接收数据格式—封装特殊消息到message(msg)属性中(给用户看的)
综上,设计一个统一数据返回结果类
public class Result { private Object data; private Integer code; private String msg;}
Result类中的字段并不是固定的,可以根据需要自行增减提供若干个构造方法,方便操作
针对Code也可以设计一个返回结果编码类
package com.wang.controller;public class Code { public static final Integer SAVE_OK = 20011; public static final Integer DELETE_OK = 20021; ...
SSM09-SSM整合
详细的描述了Spring中的SSM整合
SSM整合流程1.创建工程2.SSM整合
Spring
SpringConfig
MyBatis
MybatisConfig
JdbcConfig
Jdbc.properties
SpringMVC
ServletConfig
SpringMVCConfig
3.功能模块
表与实体类
dao(接口+自动代理)
service(接口+实现类)
业务层接口测试(整合JUnit)
mapper
设计一个简单的图书管理系统总体思路分析Spring整合MyBatis
配置
SpringConfig
JDBCConfig、jdbc.properties
MyBatisconfig
模型
Book
数据层标准开发
BookDao
业务层标准开发
BookService
BookServiceImpl
测试接口BookServiceTest
事务处理
在SpringConfig中开启注解式事务驱动@EnableTransactionManagement
在JdbcConfig中添加事务管理器PlatformTransaction ...
JUC
Java.util.concurrent进程:指在系统中正在运行的一个应用程序﹔程序一旦运行就是进程﹔进程——资源分配的最小单位。。线程:系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行流。线程——程序执行的最小单位。
线程的状态(可以通过Thread.State枚举类查看)
NEW (新建态)
RUNNABLE(准备就绪)
BLOCKED(阻塞)
WAITING(不见不散)
TIMED WAITING(过时不候)
TERMINATED(终止)
Wait和Sleep的区别
sleep是Thread的静态方法,wait是 Object的方法,任何对象实例都能调用
sleep不会释放锁,它也不需要占用锁。wait会释放锁,但调用它的前提是当前线程占有锁(即代码要在synchronized中)
它们都可以被interrupted方法中断
项目重构
环境搭建
准备数据库表(dept,emp)
创建SpringBoot工程
引入web开发起步依赖,mybatis依赖(mybatis依赖和mysql驱动),lombok依赖
在application.properties中引入mybatis的配置信息
准备对应的实体类
准备对应的Mapper、Service(接口、实现类)、Controller基础结构
部门管理开发:根据接口文档阅读开发Restful风格
明确三层架构的功能
Controller
1.接收请求
2.调用service层功能
3.响应
Service
调用mapper接口功能
Mapper
执行对应的SQL语句与数据库进行互动
简化开发:二者效果相同
@RequestNapping(value = "/depts", method = RequestNethod.GET)@GetMapping("/ depts")
注意在接口中注入Bean对象,例如Controller中注入Service对象,Service中注入Mapper对象,达到解耦的效果
==接口测 ...
JavaSE02-Java中的文件与方法递归与IO流
详细的描述了Java中 File类的使用,一步一步剖析了IO流如何创建、如何使用以及其中的注意事项。
File类使用:详细的描述了使用File的对象操作文件,如:删除、获取文件信息、创建文件夹等方法递归:详细的描述了递归算法思想并能完成常见递归题目,以及文件搜索字符集:程序中经常要读取文件中的数据,知道数据的底层形式才能够去学习如何读写数据IO流的作用:使用IO流完成文件数据的读写等操作字节流与字符流:数据的类型很多,要学会选择不同的流进行读写操作
FileFile类在包java.io.File下、代表操作系统的文件对象(文件、文件夹)。File类提供了诸如∶定位文件,获取文件本身的信息、删除文件、创建文件(文件夹)等功能但是不能读写文件内容。
File类创建对象API
方法名称
说明
public File(String pathname)
根据文件路径创建文件对象
public File(String parent, String child)
从父路径名字符串和子路径名字符串创建文件对象
public File(File parent, String c ...
SSM08-REST风格
详细的描述了Spring中的REST开发风格
REST简介REST (Representational state Transfer),表现形式状态转换
传统风格资源描述形式
http://localhost/user/getById?id=1
http://localhost/user/saveUser
REST风格描述形式
http://localhost/user/1
http://localhost/user
优点:
隐藏资源的访问行为,无法通过地址得知对资源是何种操作
书写简化
按照REST风格访问资源时使用行为动作区分对资源进行了何种操作
http://localhost/users 查询全部用户信息 GET(查询)
http://localhost/users/1 查询指定用户信息 GET(查询)
http://localhost/users 添加用户信息 POST(新增/保存)
http://localhost/users 修改用户信息 PUT(修改/更新)
http://localhost/u ...