spring整合struts2
1.启动spring容器。
在web应用中创建spring容器:直接在文件中配置创建spring容器。spring提供了一个contextloaderlistener,该***类实现了servletcontextlistener接口。
该类可以作为listener使用,它在创建时会自动查找web-inf/下的文件。如果需要多个配置需要载入,则考虑使用元素来确定配置文件的文件名。contextloaderlistener加载时,会查找名为contextconfiglocation的初始化参数。
在应用中获取applicationcontext实例,可以通过以下**获得:
/获取当前web应用的spring容器。
webapplicationcontext ctx =
框架与spring整合的思考。
采用工厂模式,将控制器与业务逻辑组件的实现分离,从而提供更好的解耦。所有的业务逻辑组件的创建由工厂负责,业务逻辑组件的运行也由工厂负责,而控制器只需定位工厂实例即可。如果系统采用spring框架,则spring成为最大的工厂。
spring负责业务逻辑组件的创建和生成,并可管理业务逻辑组件的生命周期。
为了让action访问spring的业务逻辑组件,有两种策略:
spring容器负责管理控制器action,并利用依赖注入为控制器注入业务逻辑组件。
利用spring的自动装配,action将会自动从spring容器中获取所需的业务逻辑组件。
struts2整合spring的插件:struts2-spring-plugin-..jar
spring整合hibernate
1.spring提供的dao支持。
dao模式的核心思想是:所有数据库访问,都通过dao组件完成,dao组件封装了数据库的增、删、改等原子操作。业务逻辑组件依赖于dao组件提供的数据库原子操作,完成系统业务逻辑的实现。
j**a ee应用大致分三层:
表现层。业务逻辑层。
数据持久层。
轻量级j**a ee架构以spring ioc容器为核心,承上启下:其向上管理来自表现层的action,向下管理业务逻辑组件,同时负责管理业务逻辑层所需的dao对象。
spring dao体系中的异常,都继承dataaccessexception,它是runtime的,无须显示捕捉。
spring提供多种数据库访问技术的dao支持,包括hibernate、jdo、toplink、ibatis、ojb、jpa等。
对hibernate,spring提供了如下三个工具类(或接口)来支持dao组件的实现:
hibernatedaosupport
hibernatetemplate
hibernatecallback
2.管理hibernate的sessionfactory
当通过hibernate进行持久层访问时,必须先获得sessionfactory对象,它是单个数据库映射关系编译后的内存镜像。spring的ioc容器,它不仅能以声明式的方式配置sessionfactory实例,也可充分利用ioc容器的作用,为sessionfactory注入数据源引用。
3.使用hibernatetemplate
hibernatetemplate提供持久层访问模板化,它只需要提供一个sessionfactory的引用,就可以执行持久化操作。
企业应用开发的思考和策略。
一、企业应用面临的挑战。
企业级易用的开发面临的问题:大量的并发访问,复杂的环境,网络的不稳定,外部的crack行为。
可扩展性、可伸缩性。使用xml配置文件提高解耦的方式,依赖注入的方式提供了更高层次的解耦。
快捷、可控的开发、稳定性、高效性、花费最小化、利益最大化。
使用建模工具,采用统一建模语言:uml
利用优秀的框架:提高生产率、具有更稳定、更优秀的性能、更好的保值性。
选择性的扩展、使用**生成器。
二、常见设计模式讲解。
设计模式通常被分为三类:
创建型:创建对象时,不再由我们直接实例化对象;而是根据特定场景,由程序来创建对象的方式,从而保证更大的性能、更好的架构优势。主要有:
简单工厂模式、工厂方法、抽象工厂模式、单例模式、生成器模式和原型模式。
结构型:用于帮助将多个对象组织成更大的结构。主要有:适配器模式、桥接模式、组合器模式、装饰器模式、门面模式、享元模式和**模式。
行为型:用于帮助系统间各对象的通信,以及如何控制复杂系统中流程。主要有:
命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板模式和访问者模式。
单例模式。如果一个类始终只能创建一个实例,则这个类被称为单例类。这种模式就被称为单例模式。
spring推荐将所有业务逻辑组件、dao组件、数据源组件等配置成单例的行为方式,因为这些组件无须保存任何用户状态。
使用单例模式的优势是:减少创建j**a实例所带来的系统开销;便于系统跟踪单个j**a实例的生命周期、实例状态等。
简单工厂。a实例调用b实例的方法,则称为a依赖于b。
将多个类对象交给工厂类来生成的设计方式就被称为简单工厂模式。
场景介绍:假设程序中有个computer对象需要依赖一个输出设备,现在有两个选择:直接让computer对象依赖于一个printer(实现类)对象,或者让computer依赖一个output(接口)属性。
使用简单工厂模式的优势是:让对象的调用者和对象创建过程分离,当对象调用者需要对象时,直接向工厂请求即可。从而避免了对象的调用者与对象的实现类以硬编码方式耦合,以提高系统的可维护性、可扩展性。
工厂模式也有一个小小的缺陷:当产品修改时,工厂类也需要做相应的修改。
工厂方法和抽象工厂。
**模式。命令模式。
策略模式。门面模式。
桥接模式。观察者模式。
常见的架构设计策略。
贫血模型。领域对象模型。
ssh个人笔记
struts2简介 struts2是在webwork2基础发展而来的。和struts1一样,struts2也属于mvc框架。不过有一点大家需要注意的是 尽管struts2和struts1在名字上的差别不是很大,但struts2和struts1在 编写风格上几乎是不一样的。那么既然有了struts1,...
个人笔记复习
第一篇监理基础。第1章信息系统工程监理引论。1 信息化建设普遍存在的问题 1 系统质量不能满足应用的基本需求 2 工程进度拖后延期 3 项目资金使用不合理或严重超出预算 4 项目文档不全甚至严重缺失 5 在项目实施过程中系统业务需求一变再变 6 在项目实施过程中经常出现扯皮 推诿现象 7 系统存在着...
linuxcentos个人笔记
学习笔记 命令是shutdown,如下 重启 sudoshutdown rnow 关机 sudoshutdown hnow 重启也可以使用reboot命令 sudoreboot ctrl alt 退出光标。ctrl c 退出当前。alt ctrl f1 由 模式切换到桌面 少部分alt ctrl f...