面试专题-常见技术场景
常见技术场景1.单点登录这块怎么实现的1.1 概述单点登录的英文名叫做:Single Sign On(简称SSO),只需要登录一次,就可以访问所有信任的应用系统
在以前的时候,一般我们就单系统,所有的功能都在同一个系统上。
单体系统的session共享
登录:将用户信息保存在Session对象中
如果在Session对象中能查到,说明已经登录
如果在Session对象中查不到,说明没登录(或者已经退出了登录)
注销(退出登录):从Session中删除用户的信息
后来,我们为了合理利用资源和降低耦合性,于是把单系统拆分成多个子系统。
多系统即可能有多个Tomcat,而Session是依赖当前系统的Tomcat,所以系统A的Session和系统B的Session是不共享的。
解决系统之间Session不共享问题有一下几种方案:
Tomcat集群Session全局复制(最多支持5台tomcat,不推荐使用)
JWT(常见)
Oauth2
CAS
自己实现(redis+token)
1.2 JWT解决单点登录现在有一个微服务的简单架构,如图:
使用jwt解决单点登录的流 ...
面试专题-设计模式
面试专题-设计模式前言在平时的开发中,涉及到设计模式的有两块内容,第一个是我们平时使用的框架(比如spring、mybatis等),第二个是我们自己开发业务使用的设计模式。
面试官一般比较关心的是你在开发过程中,有没有使用过设计模式,或者你在简历上写了关于设计模式的描述,那么这样我们就需要重点关心自己开发中用过的设计模式。
在平时的业务开发中,其实真正使用设计模式的场景并不多,虽然设计号称有23种之多(不同的纬度可能会更多),但是在项目最常使用的也就几种而已,在面试的过程中,我们主要介绍一种或两种就可以,重点要说的是:在什么业务场景下使用了设计模式,什么设计模式?
这次面试部分,我们主要介绍三种设计模式:
工厂方法模式(简单工厂、工厂方法、抽象工厂)
策略模式
责任链模式
1 工厂方法模式1.1 概述需求:设计一个咖啡店点餐系统。
设计一个咖啡类(Coffee),并定义其两个子类(美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】);再设计一个咖啡店类(CoffeeStore),咖啡店具有点咖啡的功能。
具体类的设计如下:
1.类图中的符号
+ ...
Servlet-JSP
需要提前准备了哪些技术,接下来的课才能听懂?
JavaSE(Java语言的标准版,Java提供的最基本的类库)
Java的开发环境搭建
Java的基础语法
Java的面向对象
数组
常用类
异常
集合
多线程
IO流
反射机制
注解Annotation
…..
MySQL(数据库)
最基本的要求是:能够编写增删改查等简单的SQL语句即可。
JDBC(Java语言链接数据库)
这是一套Java语言链接数据库的接口。
WEB前端(会一些)
HTML(网页)
CSS(层叠样式表语言,修饰HTML)
JavaScript(一种脚本语言,运行在浏览器当中,让浏览器中的元素可以增删改。让网页产生更强的交互效果)
WEB后端
Servlet(Server Applet:服务器端的Java小程序)
JSP
AJAX
jQuery
MyBatis
Spring
SpringMVC
SpringBoot
SpringCloud
……
Typora软件介绍
Markdown文本编辑器(可以编辑xxx.md文件)
12345public class Test{ publi ...
AJAX
AJAX(Asynchronous Javascript And Xml)传统请求及缺点
传统的请求都有哪些?
直接在浏览器地址栏上输入URL。
点击超链接
提交form表单
使用JS代码发送请求
window.open(url)
document.location.href = url
window.location.href = url
….
传统请求存在的问题
页面全部刷新导致了用户的体验较差。
传统的请求导致用户的体验有空白期。(用户的体验是不连贯的)
AJAX概述
AJAX不能称为一种技术,它是多种技术的综合产物。
AJAX可以让浏览器发送一种特殊的请求,这种请求可以是:异步的。
什么是异步,什么是同步?
假设有t1和t2线程,t1和t2线程并发,就是异步。
假设有t1和t2线程,t2在执行的时候,必须等待t1线程执行到某个位置之后t2才能执行,那么t2在等t1,显然他们是排队的,排队的就是同步。
AJAX是可以发送异步请求的。也就是说,在同一个浏览器页面当中,可以发送多个ajax请求,这些ajax请求之间不需要等待,是并发的。
AJAX代码属于WEB前端 ...
Vue2
三. Vue 21. Vue 基础1) 环境准备安装脚手架1npm install -g @vue/cli
-g 参数表示全局安装,这样在任意目录都可以使用 vue 脚本创建项目
创建项目1vue ui
使用图形向导来创建 vue 项目,如下图,输入项目名
选择手动配置项目
添加 vue router 和 vuex
选择版本,创建项目
安装 devtools
devtools 插件网址:https://devtools.vuejs.org/guide/installation.html
运行项目进入项目目录,执行
1npm run serve
修改端口前端服务器默认占用了 8080 端口,需要修改一下
文档地址:DevServer | webpack
打开 vue.config.js 添加
12345678910const { defineConfig } = require('@vue/cli-service')module.exports = defineConfig({ // ... devSe ...
Butterfly配置项
1.前言 参考:分类: 魔改教程 | Fomalhaut🥝
2.语言修改站点配置文件_config.yml,默认语言是 en 。主题支持三种语言:
default(en)
zh-CN (简体中文)
zh-TW (繁体中文)
3.网站资料修改网站各种资料,例如标题、副标题和邮箱等个人资料,请修改站点配置文件_config.yml。部分参数如下,详细参数可参考官方的配置描述。
参数
描述
title
网站标题
subtitle
描述
description
网站描述
keywords
网站的关键词。支持多个关键词
author
您的名字
language
网站使用的语言。对于简体中文用户来说,使用不同的主题可能需要设置成不同的值,请参考你的主题的文档自行设置,常见的有 zh-Hans和 zh-CN。
timezone
网站时区。Hexo 默认使用您电脑的时区。请参考 时区列表 进行设置,如 America/New_York, Japan, 和 UTC 。一般的,对于中国大陆地区可以使用 Asia/Shanghai
4.导航菜单修改主题配 ...