那年我学过的SpringBoot笔记

maven



SpringBoot简介

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。

SpringBoot的特点(优点)

  • 内置Tomcat,可以直接部署,而不依赖外部Tomcat

  • 简化MAVEN配置,提供一系列工具包集合

      spring-boot-starter-web(包含内置tomcat、mvc、restful)
      spring-boot-starter-jdbc(包含tomcat-jdbc连接池、spring-jdbc功能、JdbcTemplate)
      spring-boot-starter-aop(包含Spring AOP)
      spring-boot-starter-test(包含Spring test测试框架)
      spring-boot-starter-parent(包含spring boot底层通用设置和功能)
      spring-boot-starter(包含ioc、自动配置、日志功能)
    
  • 自动配置Spring组件(重要特点)

  • 采用Java配置替代了XML配置(完全取消了XML配置形式)

SpringBoot数据库访问


SSO单点登录 基于Token

流程:

使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录。大概的流程是这样的:

  1. 客户端使用用户名跟密码请求登录
  2. 服务端收到请求,去验证用户名与密码
  3. 验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端。(服务器采用Redis存储)
  4. 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里
  5. 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
  6. 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据(基于拦截器)

存储方式

客户端采用localStorage存储;服务器采用Redis存储
HTML5新特性 localStrorage可以永久存储在客户端

令牌的校验与拦截

检测用户发送的令牌是否和服务器存储的一致,是否有效,
编写一个拦截器,拦截器调用/user/token进行令牌检测,检测正确后,拦截器放过继续执行请求处理,否则拦截。

分布式服务架构

目前主流实现:Dubbo+zookeeper和SpringBoot+Cloud
利用上述技术都可以将功能服务分散到不同服务器部署,然后实现服务间通信(调用)。
请求–>处理1–>处理2–>响应。意思可以将处理1和处理2做成独立服务分开部署,然后再进行RPC(Dubbo)或HTTP请求和响应模式(Cloud)交互。

	Dubbo和Cloud的区别如下:
	Dubbo和Cloud服务调用机制不同,一个RPC、一个HTTP请求响应
	Dubbo一般和zookeeper结合管理服务,Cloud内置集成Eureka管理服务
	Cloud提供一套服务管理的完整方案、Dubbo需要跟其他技术集成使用。
	Cloud仅用于Rest服务管理、Dubbo是将组件服务化管理

Spring Cloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。

  • Spring Cloud Netflix
    是对Netflix开发的一套分布式服务框架的封装,包括服务的发现和注册,负载均衡、断路器、REST客户端、请求路由等。
  • Spring Cloud Config
    将配置信息中央化保存, 配置Spring Cloud Bus可以实现动态修改配置文件
  • Spring Cloud Bus
    分布式消息队列,是对Kafka, MQ的封装
  • Spring Cloud Security
    对Spring Security的封装,并能配合Netflix使用
  • Spring Cloud Zookeeper
    对Zookeeper的封装,使之能配置其它Spring Cloud的子项目使用
  • Spring Cloud Eureka
  • Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件中的一部分,它基于Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能。

项目名称

易慕教育平台

应用技术

Spring、SpringBoot、Mybatis、Redis、Quartz、Bootstrap、js、JSP、AJAX、Nginx

项目工具

MyEclipse、Mysql57、Tomcat8、Jdk1.8、Linux

项目描述

本系统的主要作用是为广大用户提供一个在线学习的网络平台,系统主要分为主页展示、用户中心、课程中心、视频中心和在线考试模块!为用户提供了、学员注册登录、在线视频、笔记、问答、评论、收藏等众多功能!本系统主要采用分布式系统架构的方式,运用AJAX的局部请求,局部刷新,为在线用户提供更加高效,快速在线访问,以求提高用户体验!

个人职责:负责用户的登录注册、课程中心、视频中心

Java项目面试:

差异化体现个人能力

能力:

  • 你了解哪些部分,框架的整体(官方网站)
  • 纵向深入了解(了解的部分 底层渲染,连接)
  • 横向扩展了解
    潜力:
  • 你是怎么解决问题的
  • 你如何举一反三
  • 你怎么优化项目
  • 你如何快速学习

善于总结:

SpringBoot 项目:

SpringBoot

关于SpringBoot

快速搭建项目,使用注解的方式省去了大量XML配置
内置Tomcat

@RequestMapping
@PathVariable
@ResponseBody

Mybatis

关于Mybatis

是对象关系映射
配置文件
编写xml配置的 update delete等标签
在映射文件中编写 @update()注解的方式编写sql语句

git

关于git

分布式反版本控制器
数据是按照元数据的方式进行存储
git使用的是SHA-1 哈希算法

redis

关于redis
数据存储结构:key-value
数据类型:
应用场景:缓存 事务 日志 订阅 排序
使用:导入jar 开启redis,正常安装的电脑话默认开启,
配置redis连接信息

分布式系统 前后端分离的方式

什么是分布式系统
谈谈你对分布式的理解;
前后端分离的历史发展:

redis+session共享

如何实现的redis和session共享:
导入:两个jar包
实现的目的

SSO单点登录:

单点登录的原理
单点登录的优劣

密码加密:

使用MD5算法,对密码进行加盐

拦截器:

继承HandlerInterceptor接口
实现了三个方法,在boolean preHandle方法下验证用户是否登录!进行拦截未登录则跳转登录界面!

推荐查询优化:

推荐展示如何优化查询的!
用户点击课程进行学习,根据课程id获取到该课程类目的其他课程进行推荐展示

传参的三种方式:

谈谈传统session方式和使用token的区别?

你在搭建项目时候遇到的问题,以及你是如何解决的

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值