@TOC
1、SSM
- Spring:是一个ioc(控制反转)和aop(面向切面编程)的容器框架
- SpringMVC(model view control):是一种基于Java,实现了webMvc的web框架
- Mybatis:是基于Java的持久层框架,提供与数据库的映射
tomcat:应用服务器,是servlet容器用来处理动态页面
interceptor拦截器:浏览不需要登陆,如果浏览到一些涉及隐私的页面就会跳转到登陆界面
实现spring的HandlerInterceptor接口
继承HandleInterceptor类
前端控制器:DispatcherServlet,是 SpringMVC统一的入口,所有的请求都通过它,配置在web.xml文件中,初始化 DispatcherServlet时,该框架在web应用程序WEB-INF目录中寻找一个名为[servlet-名称]-servlet.xml的文件,并在那里定义相关的Beans
2、Spring Boot
是一个微服务开发框架,是启动spring项目的工具,目的是简化spring应用的搭建
nginx:集群是多台服务器部署在相同的应用上构成一个集群,通过负载均衡的策略提供服务
redis:现在resis中查询,没有数据再到SQL中查询,提高效率和并发量
缓存穿透:查询一个不存在的东西
缓存击穿:大量key周期失效
雪崩:大量key集中创建并失效
应用场景:验证码登录、热点数据(经常被查询)
3、Spring cloud
是一个基于Springboot实现的开发工具
核心功能:
- 请求通过网关zuul来访问内部服务(是介于客户端和服务端的中间层,所有外部请求都会通过网关)——优点:客户端需要调起多个请求才能完成一个业务需求,现在只需要和网关交互
- zuul接收到请求后,从eureka(server、client)获取服务
- 由ribbon进行负载均衡(轮询)后,分发到后端具体实例
- 微服务之间通过feign组件通信处理业务(包含了ribbon和hystrix)
- hystrix负责处理服务超时熔断
- MQ消息中间件(rabbitMQ,ActionMQ),用于流量削峰,异步通信
4、微服务、分布式
- 微服务springcloud:是将模块拆分成一个独立的服务单元(provider,consumer),通过接口来实现数据交互
- 分布式dubbo:将一个大的业务系统划分为多个业务模块,分别部署到不同的机器上,各个业务模块通过接口进行数据交互
差别:微服务不一定部署到不同的服务器上
拆分原则:先拆分公共部分,再根据业务拆分
5、其他
单例模式
系统运行期间,一个类只有一个实例
一般在频繁的对一个对象进行访问时使用,避免产生过多垃圾
- 懒汉模式:延迟加载,类加载时不创建实例化,运行时创建
- 饿汉模式:先实例化,不允许外部对象实例化(线程安全)
json是一种轻量级数据交换格式
Ajax是一种异步请求技术
json的数据传递是通过Ajax异步调用获取信息,控制器返回的bean对象转换成json格式输出
maven用于构建和管理项目的工具