第11章 理解MVC1.ppt

第11章 理解MVC1

好了,让我们来测试一下 编写测试代码 测试事务特性 Spring与Struts的集成 修改web.xml 让Tomcat自动加载Spring,所以需要增加下面的配置 context-param param-namecontextConfigLocation/param-name param-value/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml/param-value /context-param listener listener-classorg.springframework.web.context.ContextLoaderListener/listener-class /listener Spring最常用的特性 利用Spring来创建对象(JavaBean工厂) 利用Spring构建业务逻辑层 管理依赖关系 适应需求变更 利用Spring创建数据访问对象(DAO) 利用Spring进行事务处理 Spring的安装 下载并解压 / 将相应的jar包加入类路径 spring.jar 配置Spring ApplicationContext.xml 体验Spring的最基本特性-BeanFactory 创建Sample类及其Spring配置文件 Sample.java public class Sample { public int compute(int i,int j){ return i + j; } } ApplicationContext.xml ?xml version=1.0 encoding=UTF-8? !DOCTYPE beans PUBLIC -//SPRING//DTD BEAN//EN /dtd/spring-beans.dtd beans bean id=“sample” class=“com.bjsxt.spring.Sample”/ /beans 创建测试程序ClientTest.java public class ClientTest { /** * @param args */ public static void main(String[] args) { //获取BeanFactory BeanFactory beanFactory = new ClassPathXmlApplicationContext(applicationContext.xml); //从容器中获取Sample对象 Sample sample = (Sample)beanFactory.getBean(sample); //调用Sample对象的方法 int result = pute(3,4); System.out.println(result); } } 针对接口编程的原则 重要的设计原则:针对接口编程,而不要针对实现编程 思考:compute方法功能需求变更 ? 针对接口编程的目的:降低耦合度,增强应用程序的稳定性 让Sample类变成接口 Sample接口及其实现 接口定义 public interface Sample{ public int compute(int i,int j); } 接口的实现一 public class SampleImpl1 implements Sample { public int compute(int i,int j){ return i + j; } } 接口的实现二 public class SampleImpl2 implements Sample { public int compute(int i,int j){ return i * j; } } ClientTest.java无需改动 只需改动ApplicationContext.xml的配置,即可实现实际功能的切换 第二个例子 我们已经确定,基于接口编程,是OOD中的重要原则 一个层次的实现代码,不应该依赖于另外一个层次的实现代码 下面是第二个例子:BookLister,这个例子包括如下几个类: 实体类:Book,有名称、作者等属性 BookFinder接口,定义了findAll()方法 BookLister接口,定义了findBooks(String name)方法,以书名作为参数,并返回Book[]数组作为查找的结果 以及一个测试客户端BookClient,调用BookLister,来获取所需要的数据 Book.java public cla

文档评论(0)

1亿VIP精品文档

相关文档