使用Spring框架的好处是什么?
- 轻量:Spring 是轻量的,基本的版本大约2MB。
- 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。
- 依赖注入(DI):Spring使用java bean对象的set方法或带参数的构造方法为我们在创建所需要的对象是将其属性自动设置所需要的值的过程就是依赖注入的基本思想
- 面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。
- 容器:Spring包含并管理应用中对象的生命周期和配置。 MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。
- 事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。
- 异常处理:Spring提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。

SpringMVC执行原理:

1.用户向前端控制器(DispatherServlet)发起请求
2.前端控制器(DispatherServlet)解析URL,请求处理映射器(HandlerMapping)。
3.处理映射器(HandlerMapping)返回Handler配置的所有相关对象。补充:HandlerMapping找到具体的处理器,生成处理器对象及处理器拦截器(如果有的话)一并返回
4.前端控制器(DispatherServlet)根据获得的Handler,选择一个合适的HandlerAdapter。(附注:如果成功获得HandlerAdapter后,此时将开始执行拦截器的preHandler(…)方法)。
5.开始执行Handler(Controller),业务逻辑处理。
6.Handler处理完业务逻辑,返回ModelAndView对象给前端控制器(DispatherServlet)。
7.视图解析器(ViewResolver)返回真正的视图对象(View),前端控制器根据模型数据和视图对象,进行视图渲染。
8.最后将渲染的试图以(html/json/xml)的形式响应用户。

Struts2执行原理:

1.客户端初始化一个指向Servlet容器的请求(HttpServletRequest请求)
2.请求经过一系列过滤器(最先执行ActionContextCleanUp、最后执行FilterDispatcher)
3.FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个(HttpServlet Request)请求,如果ActionMapper决定需要调用某个Action,FilterDispatcher则把请求的处理交给ActionProxy。
4.ActionProxy通过Configuration Manager(struts.xml)询问框架的配置文件,找到需要调用的Action类。
5.ActionProxy创建一个ActionInvocation实例。ActionInvocation会根据配置加载相关的拦截器(Interceptor),并通过代理模式调用Action。
6.Action执行完毕后,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果result。

5个强大的Java分布式缓存框架
1、Ehcache – Java分布式缓存框架
Ehcache是一个Java实现的开源分布式缓存框架,EhCache可以有效地减轻数据库的负载,可以让数据保存在不同服务器的内存中,在需要数据的时候可以快速存取。同时EhCache扩展非常简单,官方提供的Cache配置方式有好几种。你可以通过声明配置、在xml中配置、在程序里配置或者调用构造方法时传入不同的参数。

2、Cacheonix – 高性能Java分布式缓存系统
Cacheonix同样也是一个基于Java的分布式集群缓存系统,它同样可以帮助你实现分布式缓存的部署。

3、ASimpleCache – 轻量级Android缓存框架
ASimpleCache是一款基于Android的轻量级缓存框架,它只有一个Java文件,ASimpleCache基本可以缓存常用的Android对象,包括普通字符串、JSON对象、经过序列化的Java对象、字节数组等。

4、JBoss Cache – 基于事物的Java缓存框架
JBoss Cache是一款基于Java的事务处理缓存系统,它的目标是构建一个以Java框架为基础的集群解决方案,可以是服务器应用,也可以是Java SE应用。

5、Voldemort – 基于键-值(key-value)的缓存框架
Voldemort是一款基于Java开发的分布式键-值缓存系统,像JBoss Cache一样,Voldemort同样支持多台服务器之间的缓存同步,以增强系统的可靠性和读取性能。

java mvc 及其缓存的更多相关文章

  1. 从零开始实现一个简易的Java MVC框架(三)--实现IOC

    Spring中的IOC IoC全称是Inversion of Control,就是控制反转,他其实不是spring独有的特性或者说也不是java的特性,他是一种设计思想.而DI(Dependency ...

  2. .NET MVC 和 JAVA MVC有什么区别?

    两者的主要区别是编程语言的不同. 最典型的JAVA MVC就是JSP + servlet + javabean的模式.比较好的MVC,老牌的有Struts.Webwork.新兴的MVC 框架有Spri ...

  3. 【转】理解Java Integer的缓存策略

    本文将介绍 Java 中 Integer 缓存的相关知识.这是 Java 5 中引入的一个有助于节省内存.提高性能的特性.首先看一个使用 Integer 的示例代码,展示了 Integer 的缓存行为 ...

  4. 理解Java Integer的缓存策略

    转载自http://www.importnew.com/18884.html 本文将介绍 Java 中 Integer 缓存的相关知识.这是 Java 5 中引入的一个有助于节省内存.提高性能的特性. ...

  5. [置顶] MVC输出缓存(OutputCache参数详解)

    1.学习之前你应该知道这些 几乎每个项目都会用到缓存,这是必然的.以前在学校时做的网站基本上的一个标准就是1.搞定增删改查2.页面做的不要太差3.能运行(ps真的有这种情况,答辩验收的时候几个人在讲台 ...

  6. 理解Java Integer的缓存策略【转】

    本文由 ImportNew - 挖坑的张师傅 翻译自 javapapers.欢迎加入翻译小组.转载请见文末要求. 本文将介绍 Java 中 Integer 缓存的相关知识.这是 Java 5 中引入的 ...

  7. Java高并发--缓存

    Java高并发--缓存 主要是学习慕课网实战视频<Java并发编程入门与高并发面试>的笔记 在下图中每一个部分都可以使用缓存的技术. 缓存的特征 缓存命中:直接通过缓存获取到数据 命中率: ...

  8. MVC输出缓存(OutputCache参数详解)

    版权声明:本文为博主原创文章,未经博主允许转载随意. https://blog.csdn.net/kebi007/article/details/59199115 1.学习之前你应该知道这些 几乎每个 ...

  9. 写了一个Java的简单缓存模型

    缓存操作接口 /** * 缓存操作接口 * * @author xiudong * * @param <T> */ public interface Cache<T> { /* ...

随机推荐

  1. Verilog hdl 实现单周期cpu

    参考计组实验测试指令 - 简书,添加了一些细节. 1.添加 bne指令 修改 ctrl.v       之后修改mipstestloopjal_sim.asm,mars dump 为 bnetest. ...

  2. codeforces 7D

    D. Palindrome Degree time limit per test 1 second memory limit per test 256 megabytes input standard ...

  3. C++ part9

    1.静态多态和动态多态 静态多态:函数重载,模板.编译期间完成. 动态多态:虚函数.运行期间实现. 2.模板的实现和优缺点 函数模板的代码并不能直接编译成二进制代码,而是要实例出一个模板实例.写了模板 ...

  4. Gym - 101981D Country Meow(模拟退火)题解

    题意: 给\(n\)个三维点,问最小覆盖球的半径. 思路: 模拟退火. 代码: #include<set> #include<map> #include<cmath> ...

  5. element-ui dialog loading

    element-ui dialog loading 指令方式 服务方式 v-loading 当使用指令方式时,全屏遮罩需要添加fullscreen修饰符(遮罩会插入至 body 上),此时若需要锁定屏 ...

  6. Prometheus Monitoring Solution

    Prometheus Monitoring Solution 普罗米修斯 https://prometheus.io/ 警报 监控 增强指标和警报 领先 开源监控解决方案 https://promet ...

  7. nasm astrcmp函数 x86

    xxx.asm: %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 section .text global dllmain export as ...

  8. TypeScript——02——TS基本数据类型介绍和使用

    一,TS的数据类型 ES6的数据类型: 6种基本数据类型 Boolean Number String Symbol undefined null 3种引用类型 Array Function Objec ...

  9. 「NGK每日快讯」11.18日NGK公链第15期官方快讯

  10. 20201228 买卖股票的最佳时机 IV(困难)

    给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 k 笔交易. 注意:你不能同时参 ...