什么是框架?spring mvc框架

框架:

框指的是其是一个框子,有约束性;架是指的其支撑性。IT中的框架主要指的为解决特定的一个开放性问题而设计的具有一定约束性的支撑结构。在次结构上可以根据具体问题安插、扩展更多的组成部分,从而迅速和方便的构建完整的解决问题的方案

特点:

  • 不能完整的解决问题,但是可以帮助我们快速的解决问题
  • 天生为扩展而设计的,不针对特定问题,特定问题需要扩展、安插来实现
  • 框架时常配套了一些帮助解决某类问题的库或者工具,Java中就是一些列的jar包,其本质就是对jdk功能的扩展

SpringMVC框架的执行流程:

  • 用户发送请求,请求被dispatcherServlet 捕获对url进行解析,根据URL,调用handlermapping找到对应的handler进行处理,执行完成后返回给modelandview返回给前端;
  • dispatcherservlet根据modelandview对象调用视图解析器viewresolver进行结果渲染,返回到客户端

Struts2和springmvc的区别:

  • 核心控制器:用途是处理所有的请,Struts2核心控制器是filter,而springMVC核心控制器是servlet。
  • 控制器实例:springMVC是基于方法设计的,而Struts是基于对象,每次发送一个请求都实例化一个action,每个action都会注入。而springmvc只有一个实例,每次请求执行对应的方法即可
  • 管理方式:springMVc是spring中的一个模块,通过spring管理更加简单方便,而Struts采用很多xml参数进行管理
  • 参数传递:springmvc通过方法参数进行接收,Struts2则是自身提供
  • 学习难度:Struts的拦截器、值栈、ognl表达式学习成本高,而springmvc比较简单,较快上手
  • interceptor的实现机制:Struts有自己的拦截器机制,而springmvc则是用的独立的aop方式。导致Struts的配置文件比springmvc大,springmvc更加简洁,开发效率也比Struts高很多

spring的两大核心

IOC

核心原理:(容器map)+反射(工厂模式)+配置文件

AOP

核心原理:注解+动态代理(cglib+jdkproxy)在执行前后或者异常后做相关逻辑,主要用aop来做:事务处理,日志记录、权限判断

spring的事务传播特性

  • propagation——required :如果存在一个事务就支持当前事务,如果没有则开启事务
  • propagation——supports:如果存在一个事务支持当前事务,如果没有则以非事务的方式执行
  • propagation——mandatory:如果存在一个事务则支持事务,如果没有一个事务则抛出异常
  • propagation——requires-new:总是开启一个新的事务,如果一个事务已经存在则将这个存在的事务挂起
  • propagation——not-supported:总是非事务的执行,并挂起任何存在的事务
  • propagation——never:总是非事务的执行,如果存在一个活动的事务则抛出异常
  • propagation——nested:如果一个活动的事务存在,则运行在一个嵌套的事物中,如果没有活动事务,则按照propagation-required属性执行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql批量生成修改表和列注释语句

当我们在一个数据库修改完备注后,需要将其导致另一个服务器上的数据库中,需要生成批量执行语句,方便操作,注意用change 或modified 进行列的属性修改时,没有写全的话会造成其它属性的丢失,如 t_users 表中有…

14 | 排序优化:如何实现一个通用的、高性能的排序函数?

问题:平时的开发中,我们都是直接使用这些现成的函数来实现业务逻辑中的排序功能。这些排序函数是如何实现的吗?底层都利用了哪种排序算法呢?比如 C 语言中 qsort(),C STL 中的 sort()、stable_sort(),还有 …

15 | 二分查找(上):如何用最省内存的方式实现快速查找功能?

思考题:假设有 1000 万个整数数据,每个数据占 8 个字节,如何设计数据结构和算法,快速判断某个整数是否出现在这 1000 万数据中?希望不要占用太多的内存空间,最多不要超过 100MB 二分思想 查找算法 …

16 | 二分查找(下):如何快速定位IP对应的省份地址?

问题:假设我们有 12 万条这样的 IP 区间与归属地的对应关系,如何快速定位出一个 IP 地址的归属地呢? 二分查找的变形问题: 变体一:查找第一个值等于给定值的元素 public int bsearch(int[] a, int n, int value) {int…

UVA 11557 - Code Theft (KMP + HASH)

UVA 11557 - Code Theft 题目链接 题意:给定一些代码文本。然后在给定一个现有文本,找出这个现有文本和前面代码文本,反复连续行最多的这些文本 思路:把每一行hash成一个值。然后对于每个文本计算最大匹配值,枚举后缀。…

上传图片预览,支持IE6

//说明:图片上传预览插件 //上传的时候可以生成固定宽高范围内的等比例缩放图//参数设置: //width 存放图片固定大小容器的宽 //height 存放图片固定大小容器的高 //imgDiv 页面DIV的JQuery的…

17 | 跳表:为什么Redis一定要用跳表来实现有序集合?

问题:如果数据存储在链表中,就真的没法用二分查找算法了吗?可以对链表进行“改造”,就可以支持类似“二分”的查找算法。 跳表 定义:对链表经过改造之后的数据结构叫做跳表(Skip list)&#x…

亲和数 杭电2040

古希腊数学家毕达哥拉斯在自然数研究中发现,220的所有真约数(即不是自身的约数)之和为: 1245101120224455110=284。 而284的所有真约数为1、2、4、71、 142,加起来恰好为220。人们对这样的数感到很惊奇,并称之为亲和数…

18 | 散列表(上):Word文档中的单词拼写检查功能是如何实现的?

问题引入 在 Word 里输入一个错误的英文单词,它就会用标红的方式提示“拼写错误”,Word 文本编辑器的拼写检查功能是如何实现的呢?散列表(Hash Table) 散列表 散列表定义:散列表的英文叫“Hash Table”&…

19 | 散列表(中):如何打造一个工业级水平的散列表?

问题引入:如何实现一个工业级的散列表? 主要要求: 设计一个合适的散列函数;定义装载因子阈值,并且设计动态扩容策略;选择合适的散列冲突解决方法。 对于动态散列表来说,不管我们如何设计散列函…

RTTI: dynamic_cast typeid

dynamic_cast:将基类类型的指针向派生类指针安全转换。多用于下行转换。上行转换时,和static_cast是一样的。C类型转换看这里。而const_cast用来修改类型的const或volatile属性。。。下面主要说多态下的RTTI: 使用条件:  基类应有虚函数。 …

20 | 散列表(下):为什么散列表和链表经常会一起使用?

有两种数据结构,散列表和链表经常会被放在一起使用。常见的使用方式有: 用链表来实现 LRU 缓存淘汰算法,链表实现的 LRU 缓存淘汰算法的时间复杂度是 O(n),通过散列表可以将这个时间复杂度降低到 O(1)。Redis 的有序集合是使用跳…

“睡服”面试官系列第二十三篇之修饰器(建议收藏学习)

目录 1. 类的修饰 2. 方法的修饰 3. 为什么修饰器不能用于函数? 4. core-decorators.js 4.1autobind 4.2readonly 4.3override 4.4deprecate (别名deprecated) 4.5suppressWarnings 5. 使用修饰器实现自动发布事件 6. Mixin 7. Trait 8. Babel 转码器的…

21 | 哈希算法(上):如何防止数据库中的用户信息被脱库?

问题:对于用户信息中的密码,你会如何存储用户密码?仅仅 MD5 加密一下存储就够了吗?——哈希算法 什么是哈希算法 哈希算法的定义和原理:将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则…

冬季小学期 NIIT公司 web前端培训 CSS

外边距合并 http://www.w3school.com.cn/css/css_margin_collapsing.asp div、p、h1 块元素 span行元素 浮动:浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。 http://www.w3school.com.cn/css/css_positioning_floatin…

22 | 哈希算法(下):哈希算法在分布式系统中有哪些应用?

本节分析哈希算法的其他三个应用:负载均衡、数据分片、分布式存储。这三个应用都跟分布式系统有关。看下哈希算法是如何解决这些分布式问题的。 五:负载均衡 问题:那如何才能实现一个会话粘滞(session sticky)的负载…

BZOJ 1491: [NOI2007]社交网络( floyd )

floyd...求最短路时顺便求出路径数. 时间复杂度O(N^3) -------------------------------------------------------------------------------------------#include<cstdio>#include<algorithm>#include<cstring>using namespace std;typedef long long ll;con…