当前位置:文档之家› springMVC配置文件详解

springMVC配置文件详解

springMVC配置文件详解
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容器:

contextConfigLocation

WEB-INF/classes/spring/applicationContext-*.xml

其中applicationContext-*.xml包含3个配置文件,是springIoC容器的具体配置。后面会提到。

配置一个监听器:

org.springframework.web.context.ContextLoaderListener

web.xml的完整配置是这样的:

xmlns="https://www.doczj.com/doc/da10186.html,/xml/ns/javaee"

xmlns:xsi="https://www.doczj.com/doc/da10186.html,/2001/XMLSchema-instance"

xsi:schemaLocation="https://www.doczj.com/doc/da10186.html,/xml/ns/javaee

https://www.doczj.com/doc/da10186.html,/xml/ns/javaee/web-app_3_0.xsd">

404

/error404.jsp

500

/error500.jsp

contextConfigLocation

WEB-INF/classes/spring/applicationContext-*.xml

org.springframework.web.context.ContextLoaderListener

spring

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

WEB-INF/classes/spring/springmvc.xml

spring

/

CharacterEncodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

utf-8

CharacterEncodingFilter

/*

welcome.jsp

看到配置文件中多了两块内容,一个是error page是用来友好的处理错误的,可以使用错误代码来区别并跳转到相应的处理页面。这段配置代码最好放到最前面,在前端控制器拦截之前处理。

还有一块内容是一个解决post乱码问题的过滤器,拦截post请求并编码为utf8。

springmvc.xml的配置

视图解析器的配置:

在Controller中设置视图名的时候会自动加上前缀和后缀。

Controller的配置

自动扫描方式,扫描包下面所有的Controller,可以使用注解来指定访问路径。

也可以使用单个的配置方式,需要指定Controller的全限定名。

配置注解的处理器适配器和处理器映射器:

"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> 也可以使用下面的简化配置:

配置拦截器

可以直接定义拦截所有请求,也可以自定义拦截路径。

配置全局异常处理器

id="exceptionResolver" class="com.wxisme.ssm.exception.OverallExceptionResolver">

配置文件上传数据解析器

在上传文件时需要配置。

id="multipartResolver"

class="https://www.doczj.com/doc/da10186.html,monsMultipartResolver">

9242880

还可以配置一些自定义的参数类型,

以日期类型绑定为例。

id="conversionService"

class="org.springframework.format.support.FormattingConversionServiceFactoryBean">

上面提到过如果在配置前端控制器时拦截了所有的请求,不做特殊处理就会导致部分静态资源无法使用。如果是这种情况就可以

使用下面的配置来访问静态资源文件。

也可以使用默认,但是需要在web.xml中配置。

完全可以不拦截所有路径,大可避免这个问题的发生。

完整的配置大概是这样的:

需要注意xml文件的命名空间,有时候会有影响的。

xmlns:xsi="https://www.doczj.com/doc/da10186.html,/2001/XMLSchema-instance"

xmlns:context="https://www.doczj.com/doc/da10186.html,/schema/context"

xmlns:mvc="https://www.doczj.com/doc/da10186.html,/schema/mvc"

xmlns:jdbc="https://www.doczj.com/doc/da10186.html,/schema/jdbc"

xmlns:jee="https://www.doczj.com/doc/da10186.html,/schema/jee"

xmlns:aop="https://www.doczj.com/doc/da10186.html,/schema/aop"

xmlns:tx="https://www.doczj.com/doc/da10186.html,/schema/tx"

xsi:schemaLocation="https://www.doczj.com/doc/da10186.html,/schema/beans

https://www.doczj.com/doc/da10186.html,/schema/beans/spring-beans.xsd

https://www.doczj.com/doc/da10186.html,/schema/context

https://www.doczj.com/doc/da10186.html,/schema/context/spring-context.xsd

https://www.doczj.com/doc/da10186.html,/schema/mvc

https://www.doczj.com/doc/da10186.html,/schema/mvc/spring-mvc.xsd

https://www.doczj.com/doc/da10186.html,/schema/tx

https://www.doczj.com/doc/da10186.html,/schema/tx/spring-tx.xsd

https://www.doczj.com/doc/da10186.html,/schema/aop

https://www.doczj.com/doc/da10186.html,/schema/aop/spring-aop.xsd">

id="conversionService"

class="org.springframework.format.support.FormattingConversionServiceFactoryBean">

-->

id="multipartResolver"

class="https://www.doczj.com/doc/da10186.html,monsMultipartResolver">

9242880

id="exceptionResolver"

class="com.wxisme.ssm.exception.OverallExceptionResolver">

applicationContext-*.xml的配置

applicationContext-*.xml包括三个配置文件,分别对应数据层控制、业务逻辑service控制和事务的控制。

数据访问层的控制,applicationContext-dao.xml的配置:配置加载数据连接资源文件的配置,把数据库连接数据抽取到一个properties资源文件中方便管理。

配置为:

其中jdbc.properties文件的内容如下:

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/database

https://www.doczj.com/doc/da10186.html,ername=root

jdbc.password=1234

配置数据库连接池,

这里使用的是dbcp,别忘了添加jar包!

id="dataSource"

class="https://www.doczj.com/doc/da10186.html,mons.dbcp2.BasicDataSource" destroy-method="close">

Spring和MyBatis整合配置,

jar包由MyBatis提供。

配置sqlSessionFactory

SqlMapConfig.xml文件是MyBatis的配置文件,后面会提到。

配置Mapper扫描器,

扫描mapper包下的所有mapper文件和类,要求mapper配置文件和类名需要一致。

整个applicationContext-dao.xml配置文件应该是这样的:

xmlns:xsi="https://www.doczj.com/doc/da10186.html,/2001/XMLSchema-instance"

xmlns:context="https://www.doczj.com/doc/da10186.html,/schema/context"

xmlns:mvc="https://www.doczj.com/doc/da10186.html,/schema/mvc"

xmlns:jdbc="https://www.doczj.com/doc/da10186.html,/schema/jdbc"

xmlns:jee="https://www.doczj.com/doc/da10186.html,/schema/jee"

xmlns:aop="https://www.doczj.com/doc/da10186.html,/schema/aop"

xmlns:tx="https://www.doczj.com/doc/da10186.html,/schema/tx"

xsi:schemaLocation="https://www.doczj.com/doc/da10186.html,/schema/beans

https://www.doczj.com/doc/da10186.html,/schema/beans/spring-beans.xsd

https://www.doczj.com/doc/da10186.html,/schema/context

https://www.doczj.com/doc/da10186.html,/schema/context/spring-context.xsd

https://www.doczj.com/doc/da10186.html,/schema/mvc

https://www.doczj.com/doc/da10186.html,/schema/mvc/spring-mvc.xsd

https://www.doczj.com/doc/da10186.html,/schema/tx

https://www.doczj.com/doc/da10186.html,/schema/tx/spring-tx.xsd

https://www.doczj.com/doc/da10186.html,/schema/aop

https://www.doczj.com/doc/da10186.html,/schema/aop/spring-aop.xsd">

id="dataSource"

class="https://www.doczj.com/doc/da10186.html,mons.dbcp2.BasicDataSource" destroy-method="close">

业务逻辑控制,applicationContext-service.xml的配置:

这个文件里暂时只需要定义service的实现类即可。

事务控制,applicationContext-transaction.xml的配置

配置数据源,使用JDBC控制类。

id="transactionManager"

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

配置通知,事务控制。

配置AOP切面

advice-ref="txAdvice"

pointcut="execution(* com.wxisme.ssm.service.impl.*.*(..))"/>

整个事务控制的配置是这样的:

xmlns:xsi="https://www.doczj.com/doc/da10186.html,/2001/XMLSchema-instance"

xmlns:context="https://www.doczj.com/doc/da10186.html,/schema/context"

xmlns:mvc="https://www.doczj.com/doc/da10186.html,/schema/mvc"

xmlns:jdbc="https://www.doczj.com/doc/da10186.html,/schema/jdbc"

xmlns:jee="https://www.doczj.com/doc/da10186.html,/schema/jee"

xmlns:aop="https://www.doczj.com/doc/da10186.html,/schema/aop"

xmlns:tx="https://www.doczj.com/doc/da10186.html,/schema/tx"

xsi:schemaLocation="https://www.doczj.com/doc/da10186.html,/schema/beans

https://www.doczj.com/doc/da10186.html,/schema/beans/spring-beans.xsd

https://www.doczj.com/doc/da10186.html,/schema/context

https://www.doczj.com/doc/da10186.html,/schema/context/spring-context.xsd

https://www.doczj.com/doc/da10186.html,/schema/mvc

https://www.doczj.com/doc/da10186.html,/schema/mvc/spring-mvc.xsd

https://www.doczj.com/doc/da10186.html,/schema/tx

https://www.doczj.com/doc/da10186.html,/schema/tx/spring-tx.xsd

https://www.doczj.com/doc/da10186.html,/schema/aop

https://www.doczj.com/doc/da10186.html,/schema/aop/spring-aop.xsd">

id="transactionManager"

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

advice-ref="txAdvice"

pointcut="execution(* com.wxisme.ssm.service.impl.*.*(..))"/>

MyBatis的配置

SqlMapConfig.xml的配置

全局setting配置这里省略,数据库连接池在spring整合文件中已经配置,具体setting配置参考官方文档。

别名的定义:

mapper映射文件的配置:

整个文件的配置应该是这样的:

PUBLIC "-//https://www.doczj.com/doc/da10186.html,//DTD Config 3.0//EN"

"https://www.doczj.com/doc/da10186.html,/dtd/mybatis-3-config.dtd">

具体mapper文件的配置

在使用mapper代理的方法时,命名空间需要是对应的Mapper类。

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)主要配置如下:

黑马程序员springmvc教程第一天:controller方法的返回值和参数详解

controller方法的返回值 ?返回ModelAndView 需要方法结束时,定义ModelAndView,将model和view分别进行设置。 ?返回string 如果controller方法返回string, 1、表示返回逻辑视图名。 真正视图(jsp路径)=前缀+逻辑视图名+后缀 2、redirect重定向 商品修改提交后,重定向到商品查询列表。 redirect重定向特点:浏览器地址栏中的url会变化。修改提交的request数据无法传到重定向的地址。因为重定向后重新进行request(request无法共享) 3、forward页面转发 通过forward进行页面转发,浏览器地址栏url不变,request可以共享。 ?返回void 在controller方法形参上可以定义request和response,使用request或response指定响应结果: 1、使用request转向页面,如下: request.getRequestDispatcher("页面路径").forward(request, response); 2、也可以通过response页面重定向:

response.sendRedirect("url") 3、也可以通过response指定响应结果,例如响应json数据如下: response.setCharacterEncoding("utf-8"); response.setContentType("application/json;charset=utf-8"); response.getWriter().write("json串"); 参数绑定 spring参数绑定过程 从客户端请求key/value数据,经过参数绑定,将key/value数据绑定到controller方法的形参上。 springmvc中,接收页面提交的数据是通过方法形参来接收。而不是在controller 类定义成员变更接收!!!!

spring6种配置datasource的方法

在Spring3中,配置DataSource的方法有6种。 JDBCSpringXMLMicrosoftHTML 在Spring3中,配置DataSource的方法有五种。 第一种:beans.xml Xml代码 1. 3. 4. 6. 7. 8. 第二种:beans.xml 2. 3. 4. 6. 7. 8. 9. 10. 在src文件夹里新建一个jdbc.properties文件,里面的内容为如下: Xml代码 1.jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriv er

学习SpringMVC系列教程(一)Spring MVC入门

2.1、Spring Web MVC是什么 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。 另外还有一种基于组件的、事件驱动的Web框架在此就不介绍了,如Tapestry、JSF等。 Spring Web MVC也是服务到工作者模式的实现,但进行可优化。前端控制器是DispatcherServlet;应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法)的实现(也可以是任何的POJO类);支持本地化(Locale)解析、主题(Theme)解析及文件上传等;提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。 2.2、Spring Web MVC能帮我们做什么 √让我们能非常简单的设计出干净的Web层和薄薄的Web层; √进行更简洁的Web层的开发;

√天生与Spring框架集成(如IoC容器、AOP等); √提供强大的约定大于配置的契约式编程支持; √能简单的进行Web层的单元测试; √支持灵活的URL到页面控制器的映射; √非常容易与其他视图技术集成,如Velocity、FreeMarker等等,因为模型数据不放在特定的API里,而是放在一个Model里(Map数据结构实现,因此很容易被其他框架使用); √非常灵活的数据验证、格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架的API; √提供一套强大的JSP标签库,简化JSP开发; √支持灵活的本地化、主题等解析; √更加简单的异常处理; √对静态资源的支持; √支持Restful风格。 2.3、Spring Web MVC架构

最全最经典spring_mvc教程

spring mvc学习教程(一)-入门实例 引言 1.MVC:Model-View-Control 框架性质的C层要完成的主要工作:封装web请求为一个数据对象、调用业务逻辑层来处理数据对象、返回处理数据结果及相应的视图给用户。 2.简要概述springmvc Spring C 层框架的核心是DispatcherServlet,它的作用是将请求分发给不同的后端处理器,也即使用了一种被称为Front Controller 的模式(后面对此模式有简要说明)。Spring 的C 层框架使用了后端控制器来、映射处理器和视图解析器来共同完成C 层框架的主要工作。并且spring 的C 层框架还真正地把业务层处理的数据结果和相应的视图拼成一个对象,即我们后面会经常用到的ModelAndView 对象。 一、入门实例 1. 搭建环境 在spring的官方API文档中,给出所有包的作用概述,现列举常用的包及相关作用: org.springframework.aop-3.0.5.RELEASE.jar:与Aop编程相关的包 org.springframework.beans-3.0.5.RELEASE.jar:提供了简捷操作bean的接口org.springframework.context-3.0.5.RELEASE.jar:构建在beans包基础上,用来处理资源文件及国际化。 org.springframework.core-3.0.5.RELEASE.jar:spring核心包 org.springframework.web-3.0.5.RELEASE.jar:web核心包,提供了web层接口org.springframework.web.servlet-3.0.5.RELEASE.jar:web 层的一个具体实包,DispatcherServlet也位于此包中。 后文全部在spring3.0 版本中进行,为了方便,建议在搭建环境中导入spring3.0 的所有jar 包(所有jar 包位于dist 目录下)。 2.编写HelloWorld实例 步骤一、建立名为springMVC_01_helloword,并导入上面列出的jar 包。 步骤二、编写web.xml配置文件,代码如下: spring

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

黑马程序员springmvc教程第二天:包装类型pojo参数绑定和集合类型绑定

包装类型pojo参数绑定 需求 商品查询controller方法中实现商品查询条件传入。 实现方法 第一种方法:在形参中添加HttpServletRequest request参数,通过request接收查询条件参数。 第二种方法:在形参中让包装类型的pojo接收查询条件参数。 分析: 页面传参数的特点:复杂,多样性。条件包括:用户账号、商品编号、订单信息。。。 如果将用户账号、商品编号、订单信息等放在简单pojo(属性是简单类型)中,pojo类属性比较多,比较乱。 建议使用包装类型的pojo,pojo中属性是pojo。 页面参数和controller方法形参定义 页面参数: 商品名称: 注意:itemsCustom和包装pojo中的属性一致即可。 controller方法形参: public ModelAndView queryItems(HttpServletRequest request,ItemsQueryVo itemsQueryVo) throws Exception

集合类型绑定 数组绑定 需求 商品批量删除,用户在页面选择多个商品,批量删除。 表现层实现 关键:将页面选择(多选)的商品id,传到controller方法的形参,方法形参使用数组接收页面请求的多个商品id。 controller方法定义: 页面定义:

list绑定 需求 通常在需要批量提交数据时,将提交的数据绑定到list中,比如:成绩录入(录入多门课成绩,批量提交), 本例子需求:批量商品修改,在页面输入多个商品信息,将多个商品信息提交到controller方法中。 表现层实现 controller方法定义: 1、进入批量商品修改页面(页面样式参考商品列表实现) 2、批量修改商品提交 使用List接收页面提交的批量数据,通过包装pojo接收,在包装pojo中定义list属性 页面定义:

spring配置

作者简介: Craig Walls是Texas-based公司的软件开发人员,有着超过13年的开发经验,涉及的领域有通信,金融,零售,教育以及软件业等。他是Spring Framework的狂热拥护者,频繁的在当地local user groups讨论组和相关会议上演讲Spring,并且他的Blog上也有很多关于Spring的内容。出版的著作有: z Spring in Action, 2nd Edition, 2007 z XDoclet in Action, 2003 他的Blog是: z https://www.doczj.com/doc/da10186.html, 所参与的项目: z Committer to XDoclet project; z Originator of Portlet and Spring modules for XDoclet 本手册主要是将分布于文档中的那些零散的配置文件部分统一成一个比较系统的整体。结合Spring文档一起查阅也许能节省你一些时间。不过,并不推荐你全部掌握;很多陌生的元素或标签只应用于特定场合。本手册英文版本可以在:https://www.doczj.com/doc/da10186.html,下载。 Spring配置全书 作者Craig Walls 译者superleo 关于Spring的配置 Spring Framework总是不断的改变着Java企业开发的方向,它用一种松耦合的方式来配置和组装应用程序对象和业务对象,比以往的Java企业开发来的更加简洁。一旦你开发了基于Spring 的应用程序,在Spring上下文配置的那些资源简直就是唾手可得。 依赖注入是Spring容器的核心 尽管Spring Framework可以做很多事,但依赖注入却是Spring容器提供的最基本的功能。 任何稍微复杂一点的应用程序都至少由两个或两个以上的对象协作在一起,共同完成一些业务逻辑。以往的Java企业开发,每个对象都要自己去主动获得他们所引用(或依赖)的对象,才可正常运作。这将导致代码之间的紧耦合,难以测试。

Java Web高级教程SpringMVC的运用(提纲)

MBP上海第一事业部 Java Web高级教程 SpringMVC的运用 开发教育 邵华 2011/2/8 Version 0(教案) 本文是用来在MBP内部进行JAVA开发的培训教程。本文档属于社内密,请勿将本文档带离公司,请勿散播本文档。

目录 一、MVC框架的运用 (3) 二、Controller层 (3) 三、View层 (3) 四、Model层(form) (4) 五、REST应用、从url中接收数据 (4) 六、JSR-303 (4) 七、spring bean (4) 八、JPA (5)

一、MVC框架的运用 ?什么是MVC,为什么要用MVC ?spring MVC简介 \\172.16.64.101\share\referance\spring\spring-framework-reference.pdf ?开发环境配置 \\172.16.64.101\share\project_trans\develop.7z解压缩到c:\develop\ 切换workspace到C:\develop\project_sample\workspace ?Controller层:掌握Controller、RequestMapping的用法、会利用ModelMap来传递数据到View上 ?Service层:掌握Service、Autowired用法,学会从类抽出接口的办法,掌握Service注入的方法 ?View层:学会使用${}从ModelMap中读出数据,掌握标签用法 ?JPA层:学会利用ibatis保存sql信息,学会使用JpaNativeSqlRunner运行SQL。 如出现以下情况则判定为不及格: ?Controller中new了Service ?Service中new了JpaNativeSqlRunner或者EntityManager ?代码编译不通过 ?程序不能达到既定目标,表没有按照要求建立、缺少显示的字段、没有使用表格显示数据,一次运行就出错。 二、Controller层 ?掌握url的定义方法 ?用@Controller定义控制器 ?用@RequestMapping定义处理的url和请求的方法(method) ?用@RequestParam接受request参数(value) ?用ModelMap把数据传递到view上 ?用处理函数返回的字符串作为view的标识符 三、View层 ?用来输出数据,好处是防止html代码注入

Spring中加载xml配置文件的几种方式

项目中一个需求就是所有的功能都是插件的形式装入系统,这就需要利用Spring去动态加载某一位置下的配置文件,就总结了下Spring中加载xml配置文件的方式, xml是最常见的spring 应用系统配置源。Spring中的几种容器都支持使用xml装配bean,包括:XmlBeanFactory, ClassPathXmlApplicationContext, FileSystemXmlApplicationContext, XmlWebApplicationContext, ..... 一: XmlBeanFactory 引用资源 1.Resource cr = new ClassPathResource("applicationContext.xml"); BeanFactory bf=new XmlBeanFactory(cr); UserDao userDao = (UserDao)bf.getBean("userDao"); 二: ClassPathXmlApplicationContext 编译路径 使用ClassPathXmlApplicationContext对象获取,必须把applicationContext.xml放置到类的加载路径中,也就是Src下面 1.ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:appcontext.xml"); // src目录下的 2.ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); UserDao userDao = (UserDao)context.getBean("userDao"); 3.ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"applicationContext-oracle.xml","applicationContext.xml"}); UserDao userDao = (UserDao)context.getBean("userDao"); // src/conf 目录下的 4.ApplicationContext factory=new ClassPathXmlApplicationContext("conf/appcontext.xml"); 5.ApplicationContext factory=new ClassPathXmlApplicationContext("file:G:/Test/src/appcontext.xml"); 三: FileSystemXmlApplicationContext用文件系统

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.doczj.com/doc/da10186.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: 属性延迟初始化的配置方法:

黑马程序员springmvc教程第一天:程序小结

源码分析(了解) 通过前端控制器源码分析springmvc的执行过程。 第一步:前端控制器接收请求 调用doDiapatch 第二步:前端控制器调用处理器映射器查找 Handler 第三步:调用处理器适配器执行Handler,得到执行结果ModelAndView 第四步:视图渲染,将model数据填充到request域。 视图解析,得到view: 调用view的渲染方法,将model数据填充到request域

渲染方法: 入门程序小结 通过入门程序理解springmvc前端控制器、处理器映射器、处理器适配器、视图解析器用法。 前端控制器配置: 第一种:*.action,访问以.action结尾由DispatcherServlet进行解析 第二种:/,所以访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让DispatcherServlet进行解析 使用此种方式可以实现 RESTful风格的url 处理器映射器: 非注解处理器映射器(了解) 注解的处理器映射器(掌握) 对标记@Controller类中标识有@RequestMapping的方法进行映射。在 @RequestMapping里边定义映射的url。使用注解的映射器不用在xml中配置url和Handler的映射关系。 处理器适配器: 非注解处理器适配器(了解) 注解的处理器适配器(掌握) 注解处理器适配器和注解的处理器映射器是配对使用。理解为不能使用非注解映

射器进行映射。 可以代替下边的配置: 实际开发使用:mvc:annotation-driven 视图解析器配置前缀和后缀: 程序中不用指定前缀和后缀: 出师表 两汉:诸葛亮 先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。

Spring+SpringMVC+MyBatis的整合

SSM框架——详细整合教程(Spring+SpringMVC+MyBatis) 最近在学习Spring+SpringMVC+MyBatis的整合。以下是参考网上的资料自己实践操作的详细步骤。 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 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。 1.3、MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由 apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis 是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和 Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口 和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

spring配置文件说明

想必用过Spring的程序员们都有这样的感觉,Spring把逻辑层封装的太完美了(个人感觉View层封装的不是很好)。以至于有的初学者都不知道Spring配置文件的意思,就拿来用了。所以今天我给大家详细解释一下Spring的applicationContext.xml文件。Ok,还是通过代码加注释的方式为大家演示: 以下是详解Spring的applicationContext.xml文件代码: com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/tie?useUnicode=true&characterEncoding=utf-8 root 123 com/alonely/vo/User.hbm.xml

12种的有关Spring XML配置文件

Spring是一个强有力的java程序框架,其被广泛应用于java的程序中。它用POJO提供了企业级服务。 Spring利用依赖注入可以获得简单而有效的测试能力。Spring beans,依赖关系,以及服务所需要的bean都将在配置文件中予以描述,配置文件一般采用XML格式。然而XML配置文件冗长而不易使用,在你进行一个使用了大量bean的大项目中它将变得难以阅读和控制。 在这篇文章中我将给你展示12种的有关Spring XML配置文件的最佳技巧。它们中的一些具有更多的实际意义,而不仅是最好的技巧。请注意另外一些因素,例如域模型的设计,会影响到XML配置,但是这篇文章更关注于XML配置的可读性和可操控性。 1.避免使用自动装配 Spring 可以通过bean类的自省来实现自动装配依赖,这样的话你就不必明确地描述bean 的属性或者构造函数的参数。根据属性名称活匹配类型,bean属性可以自动进行装配。而构造函数可以根据匹配类型自动装配。你甚至可以设置自动装配进行自动侦测,这样Spring 替你就会选择一个合适的机制。请看下面的例子: Spring 可以通过bean类的自省来实现自动装配依赖,这样的话你就不必明确地描述bean 的属性或者构造函数的参数。根据属性名称活匹配类型,bean属性可以自动进行装配。而构造函数可以根据匹配类型自动装配。你甚至可以设置自动装配进行自动侦测,这样Spring 替你就会选择一个合适的机制。请看下面的例子: OrderService 类的属性名被用来和容器中的一个bean实例进行匹配。自动装配会默默的保存一些类型信息并降低混乱。然而,由于它会牺牲掉这种配置的直观性和可维护性,你在实际的项目中将不会用到它。许多指南和陈述材料都把它吹捧为Spring的一个非常cool的特性,而没有提到它的这个缺点。依我之见,就像Spring的对象池一样,它更多了一些商业味道。它看起来好像可以使XML配置文件更精简一些,但实际上却增加其复杂性,尤其是在你的较大规模的工程中已经定义了很多bean的时候更是如此。Spring允许你混合使用自动和手动装配,但是这种矛盾会使XML配置更加的令人费解。 2.使用命名规范 和Java 编码的理念一样,在项目中始终用清晰的,描述性的,一致的命名规范对开发人员理解XML配置非常有用。拿bean ID举例来说,你可以遵循Java类中属性的命名规范。比如说,OrderServiceDAO的bean ID应该是orderServiceDAO。对于大项目来说,在bean ID 前加包名来作为前缀。 3.使用简化格式 简化格式有利于减少冗余,因为它把属性值和引用作为属性,而不是子元素。看下面的例子: lizjason

《JavaEE企业级应用开发教程(Spring+SpringMVC+MyBatis)》_课后习题

第一章 【思考题】 1、请简述Spring框架的优点。 2、请简述什么是Spring的IoC和DI。。 【答案】 1、Spring框架的优点如下: (1)非侵入式设计:Spring是一种非侵入式(non-invasive)框架,它可以使应用程序代码对框架的依赖最小化。 (2)方便解耦、简化开发:Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器管理,大大的降低了组件之间的耦合性。 (3)支持AOP:Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事务、日志等进行集中式处理,从而提高了程序的复用性。 (4)支持声明式事务处理:只需要通过配置就可以完成对事务的管理,而无需手动编程。 (5)方便程序的测试:Spring提供了对Junit4的支持,可以通过注解方便的测试Spring程序。 (6)方便集成各种优秀框架:Spring不排斥各种优秀的开源框架,其部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持。 (7)降低了Java EE API的使用难度:Spring对Java EE开发中非常难用的一些API(如:JDBC、JavaMail等),都提供了封装,使这些API应用难度大大降低。。 2、IoC的全称是Inversion of Control,中文名称为控制反转。控制反转就是指在使用Spring框架之后,对象的实例不再由调用者来创建,而是由Spring容器来创建,Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。这样,控制权由应用代码转移到了Spring容器,控制权发生了反转。 DI的全称是Dependency Injection,中文称之为依赖注入。它与控制反转(IoC)的含义相同,只不过这两个称呼是从两个角度描述的同一个概念。从Spring容器的角度来看,Spring 容器负责将被依赖对象赋值给调用者的成员变量,这相当于为调用者注入了它依赖的实例,这就是Spring的依赖注入。

spring学习笔记.doc

spring 学习笔记 【篇一:spring 学习笔记】 4.主要内容: 从下向上看spring 的主要内容: test :spring 支持junit 单元测试 核心容器(ioc) :bean(bean 工厂,创建对象)、core( 一切的基础)、context( 上下文)、spel(spring 的表达式语言); aop :aop 、aspects 对数据访问的支持:jdbc 、orm 、transaction 、jms(java 邮件服务) 对web 的支持:spring mvc 5.ioc--inversion of control 控制反转: 首先引用一篇文章的内容,简单了解一下dao 和service 层,controller 层、view 层(),另一篇文章对spring ioc 设计思想的总 结比较全面和通俗易懂; 第一步:定义dao 接口userdao package cn.sxt.dao;// 降低耦合性public interface userdao { public void getuser();} 第二步:定义dao 接口的实现类userdaomysqlimpl 和userdaooracleimpl userdaomysqlimpl: package cn.sxt.dao.impl;import https://www.doczj.com/doc/da10186.html,erdao;public class userdaomysqlimpl implements userdao { @override public void getuser(){ system.out.println(mysql 获取用户数 据);}userdaooracleimpl: package cn.sxt.dao.impl;import https://www.doczj.com/doc/da10186.html,erdao;public class userdaomysqlimpl implements userdao { @override public void getuser(){ system.out.println(mysql 获取用户数据);} 第三步:定义service 层接口userservice ,实现具体的业务 package cn.sxt.service;public interface userservice { public void getuser();} 第四步: 定义service 接口的实现类 userserviceimpl,service 层的业务实现,具体要调用到已定义的 dao 层的接口 我们传统的javase 设计思想,代码是这样组织的:我们直接在对象内部(应用程序本身)通过new 进行创建对象,是程序主动去创建依赖对象

相关主题
文本预览
相关文档 最新文档