#新浪博客搬家#
(2017-03-27 21:22:04)
最近做基于Java Web的毕设,查了一些资料,学习了点东西,不找个地方记录下来的话很快就会忘记的。想了想还是决定用新浪博客。
之前网上看了关于Spring MVC框架的一些概念和注解等的用法,基本上能看懂代码了。但是总觉得知识体系没搭建好,很多概念还是比较模糊,有一些东西不好理解。考虑到Spring MVC是Spring框架的一部分,昨天就在图书馆找了本关于Spring的书(图书馆关于这方面的书真的是少的可以),希望能对Spring MVC的学习有帮助。
废话说太多,下面是笔记:
一、Spring的核心
spring用bean或javabean来表示应用组件,但不限于javabean规范。一个spring组件可以是任何形式的POJO。
POJO(Plain Old Java object):简单老式Java对象
DI(Dependency Injection):依赖注入
AOP:面向切面编程:将遍布应用各处的功能分离出来形成可重用的组件。
Spring框架专注于通过DI、AOP和消除样板式代码来全方位简化Java开发。
紧密耦合的代码难以测试、难以复用、难以理解。DI:让相互协作的组件保持松散耦合。依赖注入会将所依赖的关系自动交给目标对象,而不是让对象自己去获取依赖。
创建应用组件之间协作的行为通常称为装配(wiring).采用XML是一种常见的装配bean的方式。类被声明为spring中的bean.
Spring通过应用上下文(Application Context)装载bean的定义并把它们组装起来。Spring自带了多种应用上下文的实现,区别在于如何加载配置。
Spring容器(container):负责创建对象,装配它们,配置并管理它们的整个生命周期。
Spring容器分为两种类型:
1、bean工厂(由org.springframework.beans.factory.eanFactory定义)是最简单的容器,提供基本的DI支持。
2、 应用上下文:(由org.springframework.context.ApplicationContext定义)基于BeanFactory构建,并提供应用框架级别的服务,如从属性文件解析文本信息以及发布应用事件给感兴趣的事件监听者。
Spring自带多种类型的应用上下文。
Spring模块:Spring框架由六个定义良好的模块分类组成。
二、装配Bean
1、在XML中显示装配
2、在Java中显示装配
3、隐式的bean发现机制和自动装配(便利性最大)
1、自动化装配:
Spring从两个角度实现自动化装配:
组件扫描(component scanning):会自动发现应用上下文中所创建的bean
自动装配(autowiring):自动满足bean之间的依赖
两种装配方法组合使用,功能强大
定义接口和它的实现(interface implements)
是所有Spring配置文件的根元素
元素类似于JavaConfig中的@Bean注解
上述代码创建之后不再需要直接创建SqlSessionFactoryBean的实例。Spring发现元素时,它会调用SqlSessionFactoryBean的默认构造器来创建bean。
类使用构造器注入,有两种配置方案:
1、
2、c-命名空间
属性注入:
1、通过"value"将字面变量注入
2、通过"ref"将bean注入 ???
三、构建Spring Web应用程序
Spring的Web框架可解决Web应用程序中状态管理、工作流以及验证等重要特性。
Spring MVC基于模型-视图-控制器模式实现,可构建松耦合的Web应用程序。
这里主要讲
1、Spring MVC Web框架
2、使用Spring MVC注解来处理各种Web请求、参数和表单输入的控制器。
Spring将请求在调度Servlet、处理器映射(handler mapping)、控制器以及视图解析器(view resolver)之间移动。
Spring MVC请求的流程
图一:
图二:
DispatcherServlet启动时,会创建Spring应用上下文,并加载配置文件或配置类中所声明的bean。
在Spring Web应用中,通常还会创建另外一个应用上下文,由ContextLoaderListener创建。
DispatcherServlet:加载Web组件的bean,如控制器,视图解析器以及处理器映射
ContextLoaderListener:加载应用中的其它bean,通常是驱动应用后端的中间层和数据层组件。
@Controller声明一个控制器,控制器类带有该注解时,组件扫描会自动找到该类,并将其声明为Spring应用上下文中的一个bean.
SpringMVC允许以多种方式将客户端中的数据传送到控制器的处理器方法中,包括:
1、查询参数(Query Parameter)
2、表单参数(Form Parameter)
3、路径变量(Path Variable)
校验表单
暂时就看到这里吧,关于一些知识点的具体用法,写代码是时候再具体了解。
上文内容摘自:
人民邮电出版社《Spring实战第四版》 Craig Walls著 张为滨译