一、SpringMVC重点注解

@Controller

1.@Controller 与 @Component 实际应用中作用等价。

    2.和Struct一样,也是单例,意味着被多个请求线程共享,因此我们将控制器设计成无状态类。
@RequestMapping
    1.在类前面定义,则将url和类绑定。
    2.在方法前面定义,则将url和类的方法绑定。
@RequestParam
    1.写法@RequestParam("参数"),写在参数前面。
@SessionAttributes
    操作Session,将ModelMap中指定的属性放到session中。
    放在类前面,@SessionAttributes({"u","a"}) //将ModelMap中属性名字为u、a的再放入session中,使得request和session中都有了。
    ModelMap是map的实现,可在其中存放属性,作用域同request,可以在modelMap中放入数据。然后在forward的页面上显示这些数据,同过el表达式,JSTL,java代码均可。
@ModelAttributes
    。。。
 
Controller 类中方法返回值的处理
    1.常用返回String(建议)
        根据返回值找对应的显示页面,路径规则为:prefix前缀+返回值+suffix后缀组成
        
@RequestMapping(params="method=reg4")
public String reg4(ModelMap map) {
System.out.println("HelloController.handleRequest()");
return "index";
}
前缀为:/WEB-INF/jsp/   后缀为:.jsp
再转发到:/WEB-INF/jsp/index.jsp
    2.也可以返回ModelMap、ModelAndView、map、List、Set、Object、无返回值。 一般建议返回字符串!
 
转发和重定向:return "forward:user.do?method=reg5"; //转发

// return "redirect:user.do?method=reg5";  //重定向

return "redirect:http://www.baidu.com";  //重定向

3.spring MVC 传参数都是经过 ModelMap 或者 ModelAndView
 
二、Spring全家桶概念
核心原理:

1.用户发送请求给服务器:url;
2.服务器收到请求。发现DispatchServlet 可以处理,于是调用DispatchServlet。
3.DispatchServlet 内部,通过HandleMapping检查这个url 有没有相对应的Controller。有则调用Controller。
4.Controller 开始执行。
5.Controller 执行完毕,如果返回字符串,则ViewResolver 将字符串转化成相应的视图对象,如果返回ModelAndView对象,该对象本身就包含视图对象信息。
6.DispatchServlet  将执行视图对象中的数据,输出给服务器。
7.服务器将数据输出给客户端。

Spring3.0 相关jar包的含义:
org.springframework.aop-3.0.3.RELEASE.jar ---Spring的aop面向切面编程。
org.springframework.asm-3.0.3.RELEASE.jar ---Spring独立的asm字节码生成程序。
org.springframework.beans-3.0.3.RELEASE.jar ---IOC的基础实现。
org.springframework.context-3.0.3.RELEASE.jar --IOC基础上的扩展服务。
org.springframework.core-3.0.3.RELEASE.jar ---spring的核心包。
org.springframework.expression-3.0.3.RELEASE.jar ---spring的表达式语言。如:ognl 
org.springframework.web-3.0.3.RELEASE.jar ---web工具包。
org.springframework.web.servlet-3.0.3.RELEASE.jar ---mvc工具包。

三、SpringJDBC概念

Spring JDBC抽象框架所带来的价值将在以下几个方面得以体现:(注:使用了Spring JDBC抽象框架之后,应用开发人员只需要完成斜体字部分的编码工作。)

  1. 定义数据库连接参数

  2. 打开数据库连接

  3. 声明SQL语句

  4. 预编译并执行SQL语句

  5. 遍历查询结果(如果需要的话)

  6. 处理每一次遍历操作

  7. 处理抛出的任何异常

  8. 处理事务

  9. 关闭数据库连接

Spring将替我们完成所有使用JDBC API进行开发的单调乏味的、底层细节处理工作。

四、Spring 中的 Bean的作用域

作用域 描述

singleton

在每个Spring IoC容器中一个bean定义对应一个对象实例。

prototype

一个bean定义对应多个对象实例。

request

在一次HTTP请求中,一个bean定义对应一个实例;即每次HTTP请求将会有各自的bean实例, 它们依据某个bean定义创建而成。该作用域仅在基于web的SpringApplicationContext情形下有效。

session

在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。

global session

在一个全局的HTTP Session中,一个bean定义对应一个实例。典型情况下,仅在使用portlet context的时候有效。该作用域仅在基于web的Spring ApplicationContext情形下有效。

spring3.X版本知识点的更多相关文章

  1. ECMAScript版本知识点汇总

    ECMAScript版本知识点汇总 ES5 btoa.atob 对参数进行base64格式编码.解码 /** * btoa() * base64编码 * @param {string} str * @ ...

  2. Spring3.x 版本和 JDK1.8 不兼容导致 java.lang.IllegalStateException: Failed to load ApplicationContext

    由于安装了 JDK1.8 的版本,最近在进行整合 Struts2+Spring+Hibernate 框架的时候,不小心导入了之前下载的 Spring 3.2.0 版本的 jar 包. 结果在运行测试用 ...

  3. [转]Spring3核心技术之事务管理机制

    原文地址:http://chouyi.iteye.com/blog/1675199 Spring对事务的解决办法其实分为2种:编程式实现事务,AOP配置声明式解决方案. http://jinnians ...

  4. SSH项目整合教学Eclipse搭建SSH(Struts2+Spring3+Hibernate3)

    这篇博文的目的 尝试搭建一个完整的SSH框架项目. 给以后的自己,也给别人一个参考. 读博文前应该注意: 本文提纲:本文通过一个用户注册的实例讲解SSH的整合.创建Struts项目,整合Hiberna ...

  5. 开涛spring3(9.2) - Spring的事务 之 9.2 数据库事务概述

    9.2.1  概述 Spring框架支持事务管理的核心是事务管理器抽象,对于不同的数据访问框架(如Hibernate)通过实现策略接口 PlatformTransactionManager,从而能支持 ...

  6. jersey2+freemarker+spring3的集成

    由于即将开始的新项目,是一个对外网开放访问权限的web应用.所以,公司技术管理层不允许使用struts以及spring mvc这一套.所以,我们开始转战曾经用作REST API的框架jersey及其周 ...

  7. Spring3数据库事务管理机制

    Spring对事务的解决办法其实分为2种:编程式实现事务,AOP配置声明式解决方案. http://jinnianshilongnian.iteye.com/blog/1496953 Spring提供 ...

  8. 跟我学Spring3(9.2):Spring的事务之事务管理器

    原文出处: 张开涛9.2.1 概述 Spring框架支持事务管理的核心是事务管理器抽象,对于不同的数据访问框架(如Hibernate)通过实现策略接口PlatformTransactionManage ...

  9. @Cacheable注解在spring3中的使用-实现缓存

    转:  http://blog.csdn.net/chenleixing/article/details/44815443 在软件开发中使用缓存已经有一个非常久的历史了.缓存是一种很好的设计思想,一旦 ...

随机推荐

  1. linux学习(二)认识Linux

    一.Linux系统的组成 linux内核(linus 团队管理) shell:用户与内核交互的接口 文件系统:ext3.ext4等.windows 有 fat32 .ntfs 第三方应用软件 二.Li ...

  2. Java源码赏析(一)Object 类

    写这个系列的原因,其实网上已经有无数源码分析的文章了,多一篇不多,少一篇不少,但为什么还要写这部分文章呢?于私,其一,上班族已经很久没有打过完整的一整段有意义的话,算是锻炼个人的书写.总结能力,其二, ...

  3. 和低效 IO 说再见,回头补一波 Java 7 的 NIO.2 特性

    其实在这之前已经写过一篇关于 Java 7 的新特性文章了,那篇文章主要介绍了 Java 7 的资源自动关闭.Switch String 实现原理.异常捕获 try-catch.新的二进制书写方式等, ...

  4. 《SpringCloudDubbo开发日记》(一)Nacos连官方文档都没写好

    背景 现在的微服务框架一般分dubbo和springcloud两套服务治理体系,dubbo是基于zookeeper为注册中心,springcloud是基于eureka作为注册中心. 但是现在eurek ...

  5. Python-在不在判断 in 和 in判断协议- in __contains__

    in 判断元素是否在序列中, 可以查看 in == is 区别 __contians__ 如果是对象则调用对象中的 __contains__方法 class BeiMenChuiXue: def __ ...

  6. 依赖注入在 dotnet core 中实现与使用:4. 集成 Autofac

    本示例使用 .net core 5 rc-1 实现. 1. 添加 Nuget 包引用 使用 Autofac 当然要添加 Autofac 的 Nuget 包,主要涉及到两个: Autofac.Exten ...

  7. 1.变量:var,let,const

    var在ECMAScript的所有版本中都可以使用,而const和let只能在ES6及更晚的版本中使用. var,let,const三个关键字的区别 var: 1)声明作用域:在函数内部,使用var定 ...

  8. SetDlgItemInt(函数详解)

    参考:https://blog.csdn.net/for_cxc/article/details/51799194 SetDlgItemInt(hwnd, IDC_TEXT, FREQ_INIT, F ...

  9. Linux系统编程 —共享内存之mmap

    共享内存概念 共享内存是通信效率最高的IPC方式,因为进程可以直接读写内存,而无需进行数据的拷备.但是它没有自带同步机制,需要配合信号量等方式来进行同步. 共享内存被创建以后,同一块物理内存被映射到了 ...

  10. 【数量技术宅|金融数据分析系列分享】为什么中证500(IC)是最适合长期做多的指数

    更多精彩内容,欢迎关注公众号:数量技术宅.探讨数据分析.量化投资问题,请加技术宅微信:sljsz01 投资股票指数相比个股的优势 我们在投资股票的时候,如果持仓集中在一只或者有限几只股票上,恰好不幸遇 ...