springMVC和spring的概念有哪些

蜗牛 互联网技术资讯 2022-04-07 232 0

这篇“springMVC和spring的概念有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“springMVC和spring的概念有哪些”文章吧。

什么是springMVC

springMVC是一个基于MVC架构的,用来简化WEB应用程序的框架;属于表现层的框架。

springMVC的工作原理

用户发送请求到前端控制器,前端控制器接受到请求调用处理器映射器,处理器映射器根据请求的URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有则一并生成)返回给前端控制器,前端控制器通过处理器 适配器调用处理器,然后执行控制器,执行完成后返回视图和模型,处理器适配器将控制器执行结果视图和模型返回给前端控制器;前端控制器将视图和模型传给视图解析器,解析后返回具体视图,前端控制器对视图进行渲染视图(即将模型数据填充到视图中),前端控制器响应给用户。

springMVC的理解

springMVC的入口是一个servlet即前端控制器。
springMVC是基于方法开发(一个URL对于一个方法),请求参数传递到方法的形参,可以设计为单例模式或多例;建议用单例,默认是单例的。
为什么建议用单例?
	1、性能(不用每次请求都New对象)。
	2、不需要多例(不要在控制器中定义成员变量)。

什么是spring框架

	它是一个轻量级的开源的框架,创建性能好,易于测试,可重用代码;它基于IOC(反向控制)和AOP(面向切面)的架构多层Jzee(企业级应用)系统的框架。
	优点:
		1、能有效地组织中间层对象,不管是否使用了EJB(企业级JavaBean)。
		2、消除了在工作中对单例模式的过多使用,降低了系统的可测试性和面向对象。
		3、消除各种自定义格式的属性文件的需要,易于单元测试。
		4、把对接口编程而不是对类编程的代码减少,养成好的编程习惯。
		5、使用它创建的应用尽可能少的依赖于它的(APIS)编程接口。

spring的理解

它的两大核心:IOC(控制反转)和AOP(面向切面)。
1、IOC:降低了程序的耦合度,使项目成为可插拔的组件式工程。
2、AOP:使开发过程精力得到释放,更专注去解决客户需求,可维护性高。
3、它提供的事务管理机制,采用声明的方式来配置事务,从而维护时无需改动源代码,解决了程序硬编码的问题。
4、它提供的DAO(数据存取对象)模板使持久层多了一种用途。
5、它可以整合当前任何一种框架,使在管理项目时更清晰明确。
spring管理事务有2种方式。
	1、编程式事务,在代码中硬编码。
	2、声明式事务,在配置文件中配置;(推荐)
声明式事务分为2种:
	1、基于XML的声明式事务。
	2、基于注解的声明式事务。

什么是依赖注入

依赖注入是实现控制反转的一种思想(另一种是依赖查找)。
在开发的过程中,我们需要某个类的实例时,是由使用者为我们提供该类的实例,而不是自己去获取。
实现依赖注入的两种方式:
	1、使用构造方法注入。
	2、set方法注入。

什么是控制反转

IOC是spring的核心之一。
控制反转是指,我们在获取对象的时候,由之前的主动变成了被动接收;也就是说在编程某个类时,只需要提供一个接口类型的类成员,并不需要关系具体的实现类,而由使用者在使用时提供,降低了类与类之间的耦合度。

MyBatis

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久框架。
消除了几乎所有的JDBC(Java数据库连接)代码和参数的手工设置以及对结果集的检索封装。可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(普通的Java对象)映射成数据库中的记录。

MyBatis工作原理

springMVC和spring的概念有哪些  springmvc 第1张

什么是springBoot

由pivotal团队提供的全新框架,目的是用来简化新spring应用的初始化搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不需要定义样板化的配置。
springBoot组件
	1、springBoot自动配置:spring启动能够检测某些框架的可用性,一旦检测到框架,它就自动配置它。
	2、springBoot Core:是其他spring模型基础,它提供了某些功能,可以通过验证自行完成。
	3、springBoot starters:帮助启动项目,它会自动添加启动  项目和依赖项。
springBoot 特点
	1、用来实现微服务
	2、自动配置
	3、自定义配置
	4、模块化
	5、独立打包,直接运行
	6、内嵌服务器(如:Tomcat服务器)
	7、spring Cloud的基础

spring Security安全框架

spring Security是一个强大的和高度可制定的身份验证和访问控制框架。它是保证基于spring的应用程序安全的实际标准。
主要功能:
	1、认证:验证用户名和密码是否合法(是否系统中用户)
	2、授权:是系统用户不代表你能使用某些功能,因为你没有对于的权限
	3、防御会话固定,点击劫持,跨站点请求伪造等攻击
	4、servlet API集成
	5、与springWebMVC的可选集成

Java多线程、集合、乐/悲观锁

什么是多线程
	一个进程中可以开启多条线程,每条线程可以并行(同时)执行不同的任务。
	如:进程A车间,线程A车间的工人;
	多线程技术可以提高程序的执行效率,多线程是属于一种并发手段,是多任务的一种特别的形式,但多线程使用了更少的资源开销。
三种创建线程的方法:
	1、实现Runnable接口
	2、继承Thread类本身
	3、通过Callable和Fature创建线程
多线程的原理
	1、同一时间,CPU只能处理一条线程,只有一条线程在工作(执行)
	2、多线程并发(同时)执行,其实是CPU快速地在多条线程直接切换
	3、如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象
如果线程非常多,会发生什么情况?
	1、CPU会在N多线程之间切换,CPU会累死,消耗大量的CPU资源
	2、线程的执行效率降低
线程的生命周期
	1、新建状态
	2、就绪状态
	3、运行状态
	4、阻塞状态:
			1、等待阻塞
			2、同步阻塞
			3、其他阻塞
	5、死亡状态
线程的几个主要概念:
	1、线程同步
	2、线程间通信
	3、线程死锁
	4、线程控制:挂起,停止和恢复
乐观锁和悲观锁
	1、乐观锁持乐观状态,就是假设我的数据不会被意外修改,如果修改了就放弃从头再来。
	2、悲观锁持悲观状态,就是假设我的数据一定会被修改,那干脆直接加锁得了。

Java集合简介
collection接口的三个子接口:
1、set
2、list
3、Queue
集合大致可分为以下四种体系:
1、set:无序,不可重复的集合
2、list:有序,可重复的集合
实现list接口常用的类有:LinkedList ArrayList Vector和Stack.
3、Map:则代表具有映射关系的集合
4、Queue:Java5中新增加了,代表一种队列集合实现
集合与数组的区别
1、数组长度初始化指定,只能保存定长的数据,集合可以保存数量不确定的数据,还可以保存具有映射关系的数据。
2、数组元素即可以基本类型的值,也可以是对象,集合只能是对象,实际保存对象的引用变量,基本类型的变量要转成对于的包装类才能放入集合中。

map和collection是Java集合框架的根接口。map里的key是不可重复的,用于保存具有映射关系的数据。

Redis

什么是缓存穿透
在正常情况下,查询的数据都存在,如果请求一个不存在的数据,也就是缓存和数据库都查不到这个数据,每次都会去数据库查询,机会造成数据库压力增大。
解决:
1、缓存空值,即就是将缓存中没有的key设置为对应只null。
2、布隆过滤器(BloomFilter),它类似于一个Hbase set用来判断某个元素(key)是否存在于集合中。我们把数据的key放在布隆过滤器中,每次查询都会进行判断,如果没有就直接返回null,它没有删除操作,可以结合缓存空值。
什么是缓存雪崩
当某一时刻发送大规模的缓存失效情况,比如缓存服务器宕机了。
解决:
1、利用集群,降低服务宕机的概率。
2、ehcache本地缓存+Hystrix限流和降级。
二级缓存本地考虑redis Cluster完全不可以的时候,可以支持一阵。
使用Hystrix进行限流或降级,如1秒5000请求,设置为2000请求,其余走逻辑流。
什么是缓存击穿
在高并发的情况下,大量的请求同时查询同一个key时,此时这个key正好失效了,就会导致同一时间这些请求都会去查询数据库,会造成某一时刻数据库请求量过大。
解决方法:
1、采用分布式锁
只有拿到锁的第一个请求(线程)去请求数据库,然后插入缓存,当然每次拿到锁的时候都要去查询一下缓存有没有。

解决热点数据集中失效问题

对于热点数据,当缓存失效以后会存在大量的请求过来,然后打到数据库去,从而导致数据库奔溃的情况。
解决方法:
	1、设置不通失效时间
	2、采用缓存击穿办法,加锁
	3、设置缓存永不失效,就是采用定时任务对快要失效的缓存进行更新缓存和失效时间。

以上就是关于“springMVC和spring的概念有哪些”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注蜗牛博客行业资讯频道。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram