Spring配置数据源的四种方式

Spring配置数据源的四种方式
Spring配置数据源的四种方式

Spring配置数据源的四种方式Spring框架支持四种数据源的配置:

1.自带数据源(DriverManagerDataSource)

2.DBCP数据源

3.C3P0数据源

4.JNDI数据源

准备:

2.Spring-config.xml中引入配置文件(注册JDBC属性配置文件)

方式二:(需要添加context约束)

第二种方式:DBCP数据源

便Spring容器关闭时,数据源能够正常关闭。除以上必须的数据源属性外,还有一些常用的属性:defaultAutoCommit:设置从数据源中返回的连接是否采用自动提交机制,默认值为true;

defaultReadOnly:设置数据源是否仅能执行只读操作,默认值为false;

maxActive:最大连接数据库连接数,设置为0时,表示没有限制;

maxIdle:最大等待连接中的数量,设置为0时,表示没有限制;

maxWait:最大等待秒数,单位为毫秒,超过时间会报出错误信息;

validationQuery:用于验证连接是否成功的查询SQL语句,SQL语句必须至少要返回一行数据,如你可以简单地设置为:“select count(*) from user”;

removeAbandoned:是否自我中断,默认是false ;

removeAbandonedTimeout:几秒后数据连接会自动断开,在removeAbandoned为true,提供该值;

logAbandoned:是否记录中断事件,默认为false;

第三种方式:C3P0数据源

们就可以保证Spring容器关闭时数据源能够成功释放。

acquireIncrement:当连接池中的连接用完时,C3P0一次性创建新连接的数目;

acquireRetryAttempts:定义在从数据库获取新连接失败后重复尝试获取的次数,默认为30;

acquireRetryDelay:两次连接中间隔时间,单位毫秒,默认为1000;

autoCommitOnClose:连接关闭时默认将所有未提交的操作回滚。默认为false;

automaticTestTable:C3P0将建一张名为Test的空表,并使用其自带的查询语句进行测试。如果定义了这个参数,那么属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将中为C3P0测试所用,默认为null;

breakAfterAcquireFailure:获取连接失败将会引起所有等待获取连接的线程抛出异常。但是数据源仍有效保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试获取连接失败后该数据源将申明已断开并永久关闭。默认为false;

checkoutTimeout:当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后

将抛出SQLException,如设为0则无限期等待。单位毫秒,默认为0;

connectionTesterClassName:通过实现ConnectionT ester或QueryConnectionT ester的类来测试连接,类名需设置为全限定名。默认为com.mchange.v2.C3P0.impl.DefaultConnectionTester;

idleConnectionTestPeriod:隔多少秒检查所有连接池中的空闲连接,默认为0表示不检查;

initialPoolSize:初始化时创建的连接数,应在minPoolSize与maxPoolSize之间取值。默认为3;

maxIdleTime:最大空闲时间,超过空闲时间的连接将被丢弃。为0或负数则永不丢弃。默认为0;

maxPoolSize:连接池中保留的最大连接数。默认为15;

maxStatements:JDBC的标准参数,用以控制数据源内加载的PreparedStatement数量。但由于预缓存的Statement属于单个Connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素,如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。默认为0;

maxStatementsPerConnection:连接池内单个连接所拥有的最大缓存Statement数。默认为0;

numHelperThreads:C3P0是异步操作的,缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能,通过多线程实现多个操作同时被执行。默认为3;

preferredT estQuery:定义所有连接测试都执行的测试语句。在使用连接测试的情况下这个参数能显著提高测试速度。测试的表必须在初始数据源的时候就存在。默认为null;

propertyCycle:用户修改系统配置参数执行前最多等待的秒数。默认为300;

testConnectionOnCheckout:因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的时候都将校验其有效性。建议使用idleConnectionT estPeriod或automaticTestTable 等方法来提升连接测试的性能。默认为false;

testConnectionOnCheckin:如果设为true那么在取得连接的同时将校验连接的有效性。默认为false。第四种方式:(JNDI数据源)

如果应用配置在高性能的应用服务器(如WebLogic或Websphere,tomcat等)上,我们可能更希望使用应用服务器本身提供的数据源。应用服务器的数据源使用JNDI开放调用者使用,Spring为此专门提供引用JNDI资源的JndiObjectFactoryBean类。

SpringMVC配置的基本步骤

Springmvc框架配置步骤 小弟是个新手,有不对的地方请tell me,一起研究探讨。谢谢。 1062140832@https://www.360docs.net/doc/5116462944.html, 配置springmvc框架其实不是很难,要现有一个总体的认识,确定要分几步,每一步主要是干什么,不要太盲目。 以为web.xml是项目的入口,所以所有的配置文件,都必须引入到wem.xml中,不然,配置了等于没用。所以,要先从入口入手。 配置web.xml 1、首先引入springmvc-servlet.xml文件 springMVC org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/mvc/springmvc-servlet.xml 1 2、将spring加载到web.xml中 org.springframework.web.context.ContextLoaderListener 3、配置上下文路径 contextConfigLocation /WEB-INF/spring/spring.xml,/WEB-INF/spring/spring-*.xml 说明:如果有很多的关于spring的配置文件,建议分开写,比如事务一个文件(spring-transaction.xml),springmvc-hibernate.xml一个配置文件,这样方便读写。

spring配置文件各个属性详解

spring配置文件各个属性详解 分类:spring 2012-08-09 11:25 9316人阅读评论(2) 收藏举报springaophibernateattributesxhtmlwebsphere 目录(?)[+]一、引用外部属性文件 classpath:mail.properties classpath:jdbc.properties 我们定义了一个PropertyPlaceholderConfigurer类的实例,并将其位置属性设置为我们的属性文件。该类被实现为Bean工厂的后处理器,并将使用定义在文件中的属性来代替所有的占位符(${...}value)。 注意: 而在spring2.5的版本中提供了一种更简便的方式,如: 1. 这样以后要使用属性文件中的资源时,可以使用${属性名}来获得。 二、常用数据源的配置 第一种是:DBCP数据源,(需要加入2个jar文件,在spring中的lib下 jakarta-commons/commons-dbcp.jar和commons-pools.jar)主要配置如下:

Spring简介

spring 年编著的《Expert one to one J2EE design and development

Spring Logo 书中,对Java EE正统框架臃肿、低效、脱离现实的种种现状提出了质疑,并积极寻求探索革新之道。以此书为指导思想,他编写了interface21框架,这是一个力图冲破Java EE传统开发的困境,从实际需求出发,着眼于轻便、灵巧,易于开发、测试和部署的轻量级开发框架。Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版。同年他又推出了一部堪称经典的力作《Expert one-to-one J2EE Development without EJB》,该书在Java世界掀起了轩然大波,不断改变着Java开发者程序设计和开发的思考方式。在该书中,作者根据自己多年丰富的实践经验,对EJB的各种笨重臃肿的结构进行了逐一的分析和否定,并分别以简洁实用的方式替换之。至此一战功成,Rod Johnson成为一个改变Java世界的大师级人物。 传统J2EE应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致J2EE的应用没有真正实现Write Once及Run Anywhere的承诺。Spring作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务等。 Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合。 编辑本段简介 Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 ◆目的:解决企业应用开发的复杂性 ◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 ◆范围:任何Java应用 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 ◆轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB 多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。 ◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC 与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 ◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 ◆容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

Spring考试

1. (单选题)下列关于Spring配置文件的说法不正确的是 o A. Spring默认是读取/WEB-INF/配置文件 o B. Spring的配置文件可以配置在类路径下,并可以重命名,但是需要在文件中指定 o C. 把文件放到src目录下,Spring也可以读到 o D. 可以通过在中的进行指定 Spring配置文件 正确答案:C 把文件放到src目录下,需要在web。xml里设置 contextConfigLocation /WEB-INF/classes/ 可以让spring读到 2. (单选题)下列关于Spring特性中IoC描述错误的是 o A. IoC就是指程序之间的关系由程序代码直接操控 o B. 所谓“控制反转”是指控制权由应用代码转到外部容器,即控制权的转移 o C. IoC将控制创建的职责搬进了框架中,从应用代码脱离开来 o D. 使用Spring的IoC容器时只需指出组件需要的对象,在运行时Spring的IoC 容器会根据XML配置数据提供给它

正确答案:A IOC是来完成相互依赖的对象的创建、协调工作。 3. (单选题)下列关于Spring的装配模式(default-autowire)描述不正确的是 o A. Spring中,至少有两种装配模式,按“类型”和“名字” o B. Spring中默认是按名字进行装配的 o C. 可以用default-autowire=”byType”配置按类型装配 o D. 一旦在一个Spring配置文件中配置了default-autowire=”byType”,其它的配置文件也是按此种装配方式进行装配 正确答案:D 在标签中指定default-autowire属性,那么对于子标签 如果没有单独的设置autowire属性,那么将采用父标签 的default-autowire属性的模式,如果单独设置了autowire 属性,则采用自己的模式 4. (单选题)下列选项关于Spring的核心机制——依赖注入的描述正确的是 o A. 所谓依赖注入就是明确地定义组件接口,独立开发各个组件,然后根据组件间的依赖关系组装运行的设计开发模式 o B. Spring不负责管理bean之间的关系 o C. 节点有可选的子节点,用于注入bean的属性 o D. 在Spring的配置文件中,使用来创建Bean的实例 正确答案:B Spring通过一个配置文件描述Bean及Bean之间的依赖关系,利用java语言的反射功能实例化Bean并建立Bean之间的依赖关系。spring的ioc容器在完成这些底层工作的基础上,还提供了bean实例缓存,生命周期管理,bean实例代理,事件发布,资源装载等高级服务 5.

Spring基础知识汇总

简介 框架由开发,2004年发布了框架的第一版。是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率。 总结起来优点如下: ?低侵入式设计,代码的污染极低。 ?独立于各种应用服务器,基于框架的应用,可以真正实现,的承诺。 ?的容器降低了业务对象替换的复杂性,提高了组件之间的解耦。 ?的支持允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用。 ?的和提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问。 ?的高度开放性,并不强制应用完全依赖于,开发者可自由选用框架的部分或全部。 框架的组成结构图如下所示: 的核心机制

管理 程序主要是通过容器来访问容器中的,是容器最常用的接口,该接口有如下两个实现类:?: 从类加载路径下搜索配置文件,并根据配置文件来创建容器。 ?: 从文件系统的相对路径或绝对路径下去搜索配置文件,并根据配置文件来创建容器。 使用 在等工具中,用户可以自建,然后把的包都放入其中,当然也可以将包直接放在项目的目录下,但是如果使用,在项目发布时,需要将用户库所引用的文件随应用一起发布,就是将所使用的复制到目录下,这是因为对于一个应用,部署应用时不会将用户库的文件复制到下,需要手动复制。 依赖注入 框架的核心功能有两个: ?容器作为超级大工厂,负责创建、管理所有的对象,这些对象被称为。 ?容器管理容器中之间的依赖关系,使用一种被称为"依赖注入"的方式来管理之间的依赖关系。 使用依赖注入,不仅可以为注入普通的属性值,还可以注入其他的引用。依赖注入是一种 优秀的解耦方式,其可以让以配置文件组织在一起,而不是以硬编码的方式耦合在一起。理解依赖注入 是第一个高度重视以配置文件来管理实例的协作关系的人,他给这种方式起了一个名字:控制反转(,)。后来为这种方式起了另一个名称:依赖注入(),因此不管是依赖注入,还是控制反转,其含义完全相同。当某个对象(调用者)需要调用另一个对象(被依赖对象)的方法时,在传统模式下通常有两种做法: 1.原始做法: 调用者主动创建被依赖对象,然后再调用被依赖对象的方法。 2.简单工厂模式: 调用者先找到被依赖对象的工厂,然后主动通过工厂去获取被依赖对象,最后再调 用被依赖对象的方法。

Spring基础知识汇总

Spring基础知识汇总简介年发布了框架的第一版。是一个从实际开发中抽取出来的框架,因此开发,2004框架由 它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率。总结起来优点如下:?低侵入式设计,代码的污染极低。?的承诺。,独立于各种应用服务器,基于框架的应用,可以真正实现 ?的容器降低了业务对象替换的复杂性,提高了组件之间的解耦。?的支持允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用。?的和提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问。?的高度开放性,并不强制应用完全依赖于,开发者可自由选用框架的部分或全部。框架的组成结构图如下所示: 的核心机制 1 / 10 Spring基础知识汇总管理程序主要是通过容器来访问容器中的,是容器最常用的接口,该接口有如下两个实现类:? : 从类加载路径下搜索配置文件,并根据配置文件来创建容器。? : 从文件系统的相对路径或绝对路径下去搜索配置文件,并根据配置文件来创建容器。 使用,然后把的包都放入其中,当然也可以将包直接放在项目的在等工具中,用户可以

自建,在项目发布时,需要将用户库所引用的文件随应用一起发布,目录下,但是如果使用所使用的复制到目录下,这是因为对于一个应用,部署应用时不会将用户库的文件就是将复制到 下,需要手动复制。依赖注入框架的核心功能有两个:?容器作为超级大工厂,负责创建、管理所有的对象,这些对象被称为。?的方式来管理之间的依赖关系。依赖注入容器管理容器中之间的依赖关系,使 用一种被称为使用依赖注入,不仅可以为注入普通的属性值,还可以注入其他的引用。依赖注入是一种优秀的解耦方式,其可以让以配置文件组织在一起,而不是以硬编码的方式耦合在一起。理解依赖注入是第一个高度重视以配置文件来管理实例的协作关系的人,他给这种方式起了一个名字:),因此不管是依赖注为这种方式起了另一个名称:依赖注入(,)。后来控制反转(入,还是控制反转,其含义完全相同。当某个对象(调用者)需要调用另一个对象(被依赖对象)的方法时,在传统模式下通常有两种做法:主动创建被依赖对象,然后再调用被依赖对象的方法。原始做法1. : 调用者通过工厂去获取被依赖对象,最后再调主动调用者先找到被依赖对象的工厂,然后简单工厂模式2. : 用被依赖对象的方法。2 / 10 基础知识汇总Spring二字,这必然会导致调用者与被依赖对象实现类的硬编码耦合,非常不利主动注意上面的接被动于项目升级的维护。使用框架之后,调用者无需主动获取被依赖对象,调用者只要受容器为调用者的成员变量赋值即可,由此可见,使用后,调用者获取被依赖对象的方式称之为控制反转。由原来的主动获取,变成了被动接受——所以 相当于为调另外从容器的角度来看,容器负责将被依赖对象赋值给调用者的成员变量——用者注入它依赖的实例,因此称之为依赖注入。 设值注入设值注入是指容器通过成员变量的方法来注入被依赖对象。这种注入方式简单、直观,因而在的依赖注入里大量使用。构造注入利用构造器来设置依赖关系的方式,被称为构造注入。通俗来说,就是驱动在底层以反射方式执行带指定参数的构造器,当执行带参数的构造器时,就可利用构造器参数对成员变这就是构造注入的本质。量执行初始化——两种注入方式的对比设值注入有如下优点:?与传统的的写法更相似,程序开发人员更容易理解、接受。通过方法设定依赖关系显得更加直观、自然。?对于复杂的依赖关系,如果采用构造注入,会导致构造器过于臃肿,难以阅读。在创建实例时,需要同时实例化其依赖的全部实例,因而导致性能下降。而使用设值注入,则能避免这些问题。?尤其在某些成员变量可选 的情况下,多参数的构造器更加笨重。构造注入优势如下:?构造注入可以在构造器中决定依赖关系的注入顺序,优先依赖的优先注入。?对于依赖关系无需变化的,构造注入更有用处。因为没有方法,所有的依赖关系全部在构造器内设定,无须担心后续的代码对依赖关系产生破坏。?依赖关系只能在构造器中设定,则只有组件的创建者才能 改变组件的依赖关系,对组件的调用者而言,组件内部的依赖关系完全透明,更符合高内聚的原则。注意: 建议采用设值注入为主,构造注入为辅的注入策略。对于依赖关系无须变化的注入,尽量采用构造注入;而其他依赖关系的注入,则考虑采用设值注入。3 / 10 Spring基础知识汇总容器中的对于开发者来说,开发者使用框架主要是做两件事:①开发;②配置。对于框架来说,它这就是所谓依赖注入——要做的就是根据配置文件来创建实例,并调用实例的方法完成的本质。容器中的作用域当通过容器创建一个实例时,不仅可以完成实例的实例化,还可以为指定特定的作用域。支持如下五种作用域:容器中,作用域的将只生成一个实例。1. : 单例模式,在整个方法获取作用域的时,都将产生一个新的实例。2.: 每次通过容器的()对于一次请求,作用域的将只生成一个实例,这意味着,在同一次请求内,程序每次请求该,得: 3. 到的总是同一个实例。只有在应用中使用时,该作用域才真正有效。对于一次会话,作用域的将只生成一个实例,这 意味着,在同一次会话内,程序每次请求该,得4. 到的总是同一个实例。只有在应用中使用时,该作用域才真正有效。 的时候有效,同样只在应用中有效。对应一个实例。在典型的情况下,仅在使用5. : 每个全局的 如果不指定的作用域,默认使用作用域。作用域的的创建、销毁代价比较大。而作用域的实例

spring配置文件头文件解读

xmlns:意思为域,为提供xml命名空间支持而添加的域。 首先,xml有格式,而为了spring的配置文件增加的节点能满足要求合法,所以必须引用校验该xml的格式文件。下面解释上面代码的每一行。 1. 第一行:初始化bean的格式文件地址 2. 第二行:辅助初始化bean 3. 第三行:Spring的p标签是基于xml Schema的配置方式, 目的是简化配置方式,如果不需要简化,可删除 4. 第四行:关于spring的上下文 5. 第五行:关于面向切面编程 6. 第六行:用来定义xmlschema的地址,也就是xml书写时需 要遵循的语法,两部分组成,前面是命名空间的名字,后面是 xsd(xmlschema)的地址。

Spring的XML配置文件的十二个最佳方法实践

spring是一个强大的Java应用框架,它广泛地应用于Java应用程序中,为Plain Old Java Objects(POJO)提供企业级服务。Spring利用依赖注入机制来简化工作,同时提高可测试性。其配置文件(通常是XML格式)中指定了 Spring bean、依赖性以及bean所需的服务。但是,这些XML配置文件既冗长又不实用。对于需要定义大量Spring bean的大型项目来说,它们难以阅读和管理。 在本文中,我将向您展示12种用于Spring XML配置的最佳实践。其中的一些实践与其说是最佳实践,倒不如说是必要实践。注意,其他因素(如域模型的设置)也可能影响XML的配置,但是本文重点研究XML配置的可读性和可管理性。 1。避免使用自动绑定(autowiring)功能 Spring 可以通过bean类的自省自动绑定依赖性,所以不必显式指明bean的属性和构造函数。Bean属性可以通过属性名称或类型匹配来实现自动绑定。构造函数通过类型匹配来实现自动绑定。甚至可以指定自动检测autowiring模式,它可以引导Spring选择一种适当的运行机制。先来看看下面的一个例子: Java代码 1. OrderService 类的属性名在容器中用于匹配bean实例。自动绑定可能会节省一些键入工作量并减少混乱。但是在现实项目中不应该使用这种方式,因为它牺牲了配置的可读性和可维护性。许多指南和介绍中大肆吹捧自动绑定是Spring的一项极好的特性,而没有提到这一特性所带来的牺牲。依我来看,这就像Spring 中的对象池(object-pooling),更大程度上只是宣传的噱头。对于精简XML 配置文件来说,它是一个好办法,但它实际上增加了复杂性,尤其是在运行包含大量类声明的项目时。虽然Spring允许混合使用自动绑定和显式绑定,但这会使XML配置更加晦涩难懂。 2.使用命名约定 该原则对于Java编码也一样适用。在项目中使用清晰的、描述性的、一致的命名约定将非常有利于开发人员理解XML配置。例如,对于bean ID,可以按照Java 类字段名约定来命名它。OrderServiceDAO实例的bean ID应该命名为orderServiceDAO。对于大型项目,可以在bean ID前面加上包名作为前缀。 3. 使用简洁形式 简洁形式避免了冗长,因为它将属性值和引用从子元素中移入属性中。例如下面的例子: Java代码 1.

spring在web.xml中的配置

把如下代码添加到web.xml即可完成spring的基本配置 SetCharacterEncoding org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true SetCharacterEncoding /* contextConfigLocation /WEB-INF/applicationContext.xml, /WEB-INF/action-servlet.xml org.springframework.web.context.ContextLoaderListener

spring+springmvc框架配置详解

1、基本概念 1.1、Spring spring是一个开源框架,Spring是于2003 年兴起的一个轻量级 的Java开发框架,由Rod Johnson 在其著作Expert One-On- One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途 不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。简单来说,Spring是一个轻量 级的控制反转(IoC)和面向切面(AOP)的容器框架。 1.2、SpringMVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派 器以及处理程序对象的角色,这种分离让它们更容易进行定制。 2.环境搭建详解 2.1引入相应的包 springMVC和spring包的结构发生了很大的变化,各个包都分开了,灵活,要求使用者更加深入的学习使用,当我们引入包的时候, 以少为原则,少的话可以根据报错来找到相应的包,如果过多的话, 包会报错异常的混乱,不容易分辨;sprinMVC和spring本身就是一家的,所以引入的包来说基本上和spring需要的架构包是一致的.

在WEB-INF文件夹下新建注解文件springMVC-servlet.xml文件 节点中注册这个类,如下所示:

注册了这个节点处理器后,配置文件中的节点才能起作用。例如:

springMVC配置文件详解要点

web.xml的配置 web.xml应该是整个项目最重要的配置文件了,不过servlet3.0中已经支持注解配置方式了。在servlet3.0以前每个servlet必须要在web.xml中配置servlet及其映射关系。但是在spring框架中就不用了,因为Spring中是依赖注入(Dependency Injection)的也叫控制反转(Inversion of Control)。但是也要配置一个重要的servlet,就是前端控制器(DispatcherServlet)。配置方式与普通的servlet基本相似。 配置内容如下: spring org.springframework.web.servlet.DispatcherServlet contextConfigLocation WEB-INF/classes/spring/springmvc.xml spring / 这里需要注意,springmvc.xml是spring配置文件,将在后面讨论。在中url如果是.action,前端控制器就只会拦截以.action结尾的请求,并不会理会静态的文件。对静态页面的控制就要通过其他的手段。以/作为url的话就会拦截所有的请求,包括静态页面的请求。这样的话就可以拦截任何想要处理的请求,但是有一个问题。如果拦截了所有的请求,如果不在拦截器中做出相应的处理那么所有静态的js、css以及页面中用到的图片就会访问不到造成页面无法正常显示。但这可以通过静态资源的配置来解决这个问题。后面会提到。

Spring基本配置及其常用方法

搭建spring的环境: 新建User Library:spring,引入spring的核心jar包: SPRING_HOME\dist\spring.jar spring核心jar包 SPRING_HOME \lib\log4j\log4j-1.2.14.jar 记录日志 SPRING_HOME \lib\jakarta-commons\commons-logging.jar 日志的抽象,日志的抽象,如果没有log4j则会借助commons-logging调用sun的记录日志的工具包,如果没有sun的和log4j的则它会调用自己的 在src目录下建立applicationContext.xml (可从SPRING_HOME\ samples\jpetstore\war\WEB-INF\目录下拷贝applicationContext.xml) 设置spring的xml标签的自动提示: Window-->Preferences-->MyEclipse Enterprise Workbench-->Files and Editors-->XML-->XML Catalog-->add-->location中添加Schema文件(SPRING_HOME\dist\resources\spring-beans-2.0.xsd)-->修改Key Type为Schema Location,将key的文件名设为:https://www.360docs.net/doc/5116462944.html,/schema/beans/spring-beans-2.0.xsd 提供log4j.properties配置文件: (G:\software_programming\Java\SSH\spring\spring-framework-2.0.8-with-dependencies\sp ring-framework-2.0.8\samples\jpetstore\war\WEB-INF\ log4j.properties) 定义bean标签的格式 DI方式从BeanFactory中获取对象: BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml"); //ApplicationContext factory = new ClassPathXmlApplicationContext("applicationContext.xml"); UserManager userManager = (UserManager)factory.getBean("userManager"); 定义公共配置为抽象bean: 其他bean继承抽象bean: 属性延迟初始化的配置方法:

Spring配置文件

Spring 配置文件命名空间 1.xml文档的命名空间 XML文档可以创建自定义的元素和属性来描述数据,这样就很容易产生名称相同而含义不同的元素。XML使用命名空间来加以区分。 命名空间使用统一资源定位符URI来识别。URI必须是XML文档中唯一的。 1.1 XML文档中加入命名空间 为了引用一个命名空间,可以将其以属性的形式加入任何包含了属于该命名空间中元素的节点中。 比如: 这决定了命名空间wq指向https://www.360docs.net/doc/5116462944.html,/ns/furniture 1.2 添加默认命名空间 https://www.360docs.net/doc/5116462944.html,/ Copyright?2010吴青版权所有

一个XML文档大部分通常属于一个XML词汇。在这种情况下,可以定义一个默认的命名空间,而不是为每一个元素重复地添加命名空间前缀。可以使用xmlns关键字来定义默认的命名空间。这样,就不用为默认的命名空间内的元素指定前缀了。 2.XML的约束模式 XML的约束模式定义了XML文档中允许出现的元素名,元素中的属性,内容类型,以及元素之间的嵌套关系和出现顺序。如果把一个XML文件看做数据库中的一个表,那么XML约束模式就相当于数据库表结构的定义。 约束模式通常都是在一个单独的文件中进行定义,这个文件被称为模式文档。模式文档采用某种约束模式语言编写,用于描述XML文档的结构。 模式语言应用最广泛的就是XML DTD和XML Schema。Spring的配置文件中这两种模式浴盐都支持 https://www.360docs.net/doc/5116462944.html,/ Copyright?2010吴青版权所有

相关主题
相关文档
最新文档