Spring/Struts2篇

Spring是一个开源框架,为了解决企业应用开发的复杂性而创建的,但现在已经不止应用于企业应用。
是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架:
  从大小与开销两方面而言Spring都是轻量的
  通过控制反转(IOC)的技术达到松耦合的目的
  提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发
  包含并管理应用对象的配置和生命周期,这个意义上是一种容器
  将简单的组件配置、组合成为复杂的应用,这个意义上是框架
Spring作用:
  容器
  提供了对多种技术的支持
    - JMS
    - MQ支持
    - UnitTest
    - ......
  AOP(事务管理、日志等)
  提供了众多方便应用的辅助类(JDBC Template等)
  对主流应用框架(Hibernate等)提供了良好的支持
适用范围:
  构建企业应用(SpringMVC + Spring + Hibernate/Mybatis)
  单独只用Bean容器(Bean管理)
  单独使用AOP进行切面管理
  其他的Spring功能,如:对消息的支持等
  在互联网中的应用......

框架(别人搭舞台,你来表演):
  特点:半成品
              封装了特定的处理流程和控制逻辑
              成熟的、不断升级改进的软件
  与类库的区别:
              框架一般是封装了逻辑、高内聚的,类库则是松散的工具组合
              框架专注于某一领域,类库则是更通用的

IOC:控制反转,控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器负责
是获得依赖对象的过程被反转了,控制被反转之后,获得依赖对象的过程由自身管理变为有IOC容器主动注入
IOC本质就是要抛弃new的方法取得对象,通过配置来取得对象。
DI(依赖注入)是其一种实现方式
目的:创建对象并且组装对象之间的关系

Struts2

Struts是流行和成熟的基于MVC设计模式的web应用程序框架。
Struts翻译:支柱,支杆,来源于建筑和旧式飞机使用的而金属支架。
Apache Struts2的环境需求:servlet API 2.4  JSP API 2.0  Java 1.5+
搭建Struts2环境步骤:
  1. 下载相关jar包
  2. 创建web项目
  3. 创建并完善相关配置文件
  4. 创建Action并测试启动
---------------------------------------------------
Struts2工作流程:
1、客户端(HttpServletRequest)发送请求
2、请求经过过滤器(ActionContextCleanUp-->StrutsPrepareAndExecuteFilter(核心过滤器 ) 
3、请求到达ActionMapper,通过它来决定调用哪个Action 
4、当决定调用某个Action后,请求又会通过核心过滤器,核心过滤器把请求的处理交给ActionProxy
5、ActionProxy通过ConfigurationManager询问配置文件(Struts.xml),找到要调用的Action类。

---------------------------------
Struts2核心文件:
  一. web.xml
  任何MVC框架都需要与web应用整合,这就不得不借助于web.xml文件,  
只有配置在web.xml文件中servlet才会被应用加载。
通常,所有的MVC框架都需要web应用加载一个核心控制器,对于Struts2框架而言,  
需要加载StrutsPrepareAndExecuteFilter,  
只要web应用负责加载StrutsPrepareAndExecuteFilter, 
StrutsPrepareAndExecuteFilter将会加载Struts2框架。
  二. struts.xml
  Struts2的核心配置文件,再开发过程中利用率最高,该文件主要负责管理应用中的Action映射,  
以及该Action包含的Result定义等。

struts.xml中包含的内容:
  1. 全局属性
  2. 用户请求和响应Action之间的对应关系
  3. Action可能用到的参数和返回结果
  4. 各种拦截器的配置

  三. struts.properties
  struts2框架的全局属性文件,自动加载。
  该文件包含很多key-value对。
  该文件完全可以配置在struts.xml文件中,使用constant元素。

传统是servlet+jdbc实现MVC模式。
动态方法调用就是为了解决一个Action对应多个请求的处理,以免Action太多。推荐使用通配符的方式。


struts2提供三种方式去访问Servlet API:
  1. ActionContext   2. 实现***Aware    3. ServletActionContext
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270