SpringCloud2-微服务
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
微服务于微服务架构微服务强调服务的大小,他关注某一个点,一个模块只做一种事情微服务架构通常而言,他提倡将单一的程序划分为一组小的服务,每个服务运行在独立的进程中,采用轻量级的通信机制 doubbo是rpc,springcloud是restful
微服务的优点每个服务足够内聚,代码容易聚焦,开发简答,微服务可以被小团队单独开发,微服务松耦合,微服务可以使用不同的语言开发,易于第三方集成,微服务不会和html/css等组件混合
微服务的缺点开发人员要处理分布式系统的复杂性,多服务运维难度提高,系统部署依赖,服务间通信成本提高,数据一致性问题,系统集成测试问题
微服务技术栈
微服务条目
技术
服务开发
Spring,SpringBoot,SpringMVC
服务配置与管理
Archaius,Diamond
服务注册与发现
Eureka,Consul,Zookeeper ...
SpringBoot6-启动的源码分析
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
启动配置原理几个重要的事件回调机制
ApplicationContextInitializer
SpringApplicationRunListener
ApplicationRunner
CommandLineRunner
启动流程1return new SpringApplication(primarySources).run(args);
创建SpringApplication对象
运行run方法
创建对象现在左边的参数是null
123456789101112public SpringApplication(Class<?>... primarySources) { this(null, primarySources);}public SpringApplication(ResourceLoader resourceLoader, C ...
SpringBoot5-数据访问
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
创建项目选择MySQL+JDBC+Web
链接数据库123456spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/jdbc driver-class-name: com.mysql.jdbc.Driver
123456789101112131415161718192021222324package com.wsx.study.springboot.demo;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringB ...
SpringMVC6-Ajax
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
拦截器拦截器是SpringMVC框架自己的,只用SpringMVC才能使用拦截器只会拦截访问的控制方法,静态资源是不会拦截的
定义拦截器实现HandlerInterceptor其实只要使用preHandle就可以了,他返回true才执行,否则不执行比如我们就可以在这里实现登陆请求
123456789101112131415161718192021222324package com.onlineStore.interceptor;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpS ...
SpringMVC5-SSM
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
整合
创建数据库
导入依赖
建立基本结构和配置框架
编写MyBatis.xml
编写Spring-dao.xml
编写Spring-service.xml
编写web.xml
编写Spring-mvc.xml
编写applicationContext.xml
建立数据库1234567891011121314151617181920212223242526272829303132333435363738394041create database `onlineStore`;use `onlineStore`;create table `customer`( `id` int(10) not null, `name` varchar(10) not null, primary key `id` (`id`));create table `goods`( `id ...
MyBatis2-原理
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
JDBC的优化和封装
(1) 使用数据库连接池对连接进行管理(2) SQL语句统一存放到配置文件(3) SQL语句变量和传入参数的映射以及动态SQL(4) 动态SQL语句的处理(5) 对数据库操作结果的映射和结果缓存(6) SQL语句的重复
参考原理分析之一:从JDBC到MybatisMyBatis原理概括教你手写Mybatis框架
MyBatis1-入门
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
MyBatis是一个对JDBC的封装,是一个数据持久化框架
优点减少代码量,降低维护成本,讲SQL写到XML中,降低耦合度,支持动态SQL语句,支持标签映射,
缺点SQL编写工作量大,SQL语句依赖数据库,导致移植性较差
核心接口和类SqlSessionFactoryBuilder - SqlSessionFactory - SqlSession
开发方式使用原生接口或者用Mapper代理实现自定义接口
实际操作
导入依赖
12345<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version></dependency>
123456789 ...
SpringMVC4-JSON2
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
json用起来
导入json
配置json
新建对象
转化为json
12345<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.2</version></dependency>
123456789101112131415<!--解决json 乱码配置--> <mvc:annotation-driven> <mvc:message-converters register-defaults="true&quo ...
SpringMVC3-JSON
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
json这是一个字符串,他可以把JavaScript对象变成字符串,然后传给后端,实现前后端分离
bsonbson是由10gen开发的一个数据格式,目前主要用于mongoDB中
bson 的遍历更加迅速,因为他在头部存下了每个元素的长度
bson 的操作更加简单,9变成10对json来说要移动内容,但是bson不需要,他数字超范围会慢一些
bson 支持二进制数据的传输binary array
json 和javascirpt转化12JSON.parse();JSON.stringify();
解析json1234567<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --><dependency> <groupId>com.fast ...
SpringMVC2-注解
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
注解配置Controller这里的19行是spring中的注解扫描,21行是不去处理静态资源,23行是配置处理器的适配器
12345678910111213141516171819202122232425262728293031<?xml version="1.0" encoding="utf-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" ...