一、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内存分配与回收

    前言 之前在实习时,听了 OOM 的分享之后,就对 Linux 内核内存管理充满兴趣,但是这块知识非常庞大,没有一定积累,不敢写下,担心误人子弟,所以经过一个一段时间的积累,对内核内存有一定了解之后, ...

  2. mxgraph浅入

    mxgraph浅入 参考文献:https://www.cnblogs.com/xuxg/articles/3246206.html 1.了解 (1)如何判断需要引入mxgraph产品:过程图.工作流和 ...

  3. PyCharm专业版编辑器安装(含破解步骤)

    一.首先下载好安装包: 二.安装步骤: 1.双击安装包,打开安装界面,点击"next": 2.选择安装路径,点击"next": 3.电脑是64位的就勾选64-b ...

  4. BTRsys1~2系列靶机渗透

    BTRsys系列靶机渗透 BTRsys1 端口发现加目录扫描. 发现目录:http://192.168.114.161/login.php 尝试弱密码失败,查看源代码. <script type ...

  5. tf.split函数的用法(tensorflow1.13.0)

    tf.split(input, num_split, dimension): dimension指输入张量的哪一个维度,如果是0就表示对第0维度进行切割:num_split就是切割的数量,如果是2就表 ...

  6. 普转提Day1

    T1 给定一个长度为N的序列,去掉其中连续的一部分使得剩下的部分没有重复元素. 很显然可以发现去掉的一部分只有三种情况:开头.中间.最后. 那么我们只需要枚举Hash就可以了.复杂度O(N^2). 不 ...

  7. 消息队列MQ面试专题(rabbitmq)

    正文: 1.什么是 rabbitmq 采用 AMQP 高级消息队列协议的一种消息队列技术,最大的特点就是消费并不需要确保提供方存在,实现了服务之间的高度解耦 2.为什么要使用 rabbitmq 在分布 ...

  8. Devops实战(一)Docker的部署安装以及Docker-Compose的使用

    Docker的部署安装以及Docker-Compose的使用 1.docker和docker-Compose简介 Docker是一组平台即服务(PaaS)产品,它们使用操作系统级虚拟化以称为容器的软件 ...

  9. Istio 运维实战系列(3):让人头大的『无头服务』-下

    本系列文章将介绍用户从 Spring Cloud,Dubbo 等传统微服务框架迁移到 Istio 服务网格时的一些经验,以及在使用 Istio 过程中可能遇到的一些常见问题的解决方法. 失败的 Eur ...

  10. python 给IDLE添加行号

    [LineNumbers] enable=1 enable_editor=1 enable_shell=1 visible=1 [LineNumbers_cfgBindings] linenumber ...