当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

Spring3 MVC 笔记(一)

发表于: 2010-07-20   作者:7454103   来源:转载   浏览:
摘要:          自从 MVC 这个概念提出来之后 struts1.X  struts2.X   jsf 。。。。。 这个view 层的技术一个接一个! 都用过!不敢说哪个绝对的强悍! 要看业务,和整体的设计!      最近公司要求开发个新系统!
   
     自从 MVC 这个概念提出来之后 struts1.X  struts2.X   jsf 。。。。。
这个view 层的技术一个接一个! 都用过!不敢说哪个绝对的强悍!
要看业务,和整体的设计!

     最近公司要求开发个新系统!
并且 不沿用以前的框架了!闲时 用了下Spring3 的 MVC
感觉还可以!大有前途! 尤其是加上3.0 以后的 加上annotation + rest 如虎添翼!
个人理解比较狭窄!不当之处!请绕过!
以下是 网上当的一些资料和 自己的一些总结:

前奏:
  导入相应的包
  
1.0 默认的mvc 配置文件:
      web.xml 中定义了一个名为 annomvc 的 Spring MVC 模块,按照 Spring MVC 的契约,
        需要在 WEB-INF/annomvc-servlet.xml 配置文件中定义 Spring MVC 模块的具体配置
       
2.0 包级别的扫描,和 注释的功能的开启:
    <context:component-scan base-package="com.***.web"/>
    <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
	<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
	<context:annotation-config/>

3.0 定义视图的前缀 ,后缀  
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>


@Controller     // 注释为controller
@Autowired      // 注入属性 去xml 找那个像对应的 bean 类型匹配

1.0  处理多个请求
     |:   在每个方法前面使用   @RequestMapping("/名称.do")   不同的名称 处理不同的请求  缺点:xxx.do 太多不利于 跟踪 ,复制程度增加
     ||:  在controller 类名前面定义  @RequestMapping("/名称.do")在方法前添加注解 
          @RequestMapping(params = "method=listAllBoard")  则处理 有此参数的请求 多一个参数思路清楚

2.0  处理不同的http 请求:
     |:   在方法前面增加注释:RequestMethod 有POST,get,put.... 如:@RequestMapping(params = "method=createTopic",method = RequestMethod.POST)
            
3.0  参数处理:(默认这样处理,也是  约定优于设计原则 自动转换类型) 自由选择
     |:   普通属性: 如果入参是基本数据类型(如 int、long、float 等),URL 请求参数中一定要有对应的参数,否则将抛出 TypeMismatchException 异常,提示无法将 null 转换为基本数据类型。
     ||:  对象及属性: Userbean 的 userId 属性的类型是基本数据类型,但如果 URL 中不存在 userId 参数,Spring 也不会报错,此时 Userbean.userId 值为 0。如果 Userbean 对象拥有一个 dept.deptId 的级联属性,那么它将和 dept.deptId参数绑定。 
 
4.0  参数处理:(明确指定参数 匹配 自动转换类型)
     |:   普通属性 和 对象及属性:  @RequestParam("id") 注解,所以它将和 id 的 URL 参数绑定

5.0  绑定域中的某个属性: 
     |:  request     ModelMap 类,它作为通用的模型数据承载对象,传递数据供视图所用 代替 request.setParam
     ||: Session     @SessionAttributes("currUser") //①将ModelMap中属性名为currUser的属性 放到Session属性列表中,以便这个属性可以跨请求访问 (类名前面写)
     |||:session     多个参数 !@SessionAttributes({“attr1”,”attr2”})。  
     ||||: 取值绑定到方法上   (@ModelAttribute("currUser") User user)          




一些常用的注解  及解释:
1.0  @Autowired 将分别寻找和它们类型匹配的 Bean 注入 ----------  ByType
      如果有多个匹配结果 或者没结果 BeanCreationException 异常
     @Autowired(required = false),这等于告诉 Spring:在找不到匹配 Bean 时也不报错。
     @Qualifier 注释指定注入 Bean 的名称             ----------  ByName
     
2.0  @Autowired 可以对成员变量、方法以及构造函数进行注释,
     @Qualifier 的标注对象是成员变量、方法入参、构造函数入参
     @Autowired 和 @Qualifier 结合使用时,自动注入的策略就从 byType 转变成 byName 

3.0  @Resource 默认按 byName 自动注入



spring3 缓存详解  http://yxif.com

Spring3 MVC 笔记(一)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
spring mvc原理图: *根据HTTP请求的URL,调用相应的DispatcherServlet控制器。 *提供一个视图是作
转载自 http://elf8848.iteye.com/blog/698217 你想建设一个能承受500万PV/每天的网站吗? 500万PV
vs2008下的mvc开发 1.首先安装SP1补丁http://www.microsoft.com/downloads/zh-cn/details.aspx?Fami
一、前言: 大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团
小弟新学spring3mvc,大虾请绕道。 开发环境如下: OS:windows IDE:Eclipse3.7.2 第一步,新建Web
Asp.net MVC项目默认会引用很多第三方插件,特别是现在的5.0,默认示例项目就几十M, 搞得 都不知道
Asp.net MVC项目默认会引用很多第三方插件,特别是现在的5.0,默认示例项目就几十M, 搞得 都不知道
ASP.NET MVC框架是既ASP.NET WebForms后的又一种开发方式。ASP.NET MVC 框架选项非常干净,而且容易
ASP.NET MVC的组件协作 (1)URL Routing 根据程序中制定的规则从URL中: 根据程序中制定的规则从UR
一、前言: 大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号