spring MVC
来源:互联网 发布:有关网络暴力的法律 编辑:程序博客网 时间:2024/06/05 17:32
一、核心开发步骤:
1、 前端控制器(DispatcherServlet)在web.xml中的部署描述,从而拦截请求到Spring Web MVC
2、 处理器映射(HandlerMapping)的配置,从而将请求映射到处理器
3、 处理器适配器(HandlerAdapter)的配置,从而支持多种类型的处理器
4、 视图解析器(ViewResolver)的配置,从而将逻辑视图名解析为具体视图技术
5、处理器(页面控制器)的配置,从而进行功能处理
二、IOC
1、控制反转:IOC容器控制对象,主要控制获取外部资源;反转,依赖对象的获取方式反转了
2、理解DI的关键“谁依赖谁,为什么需要依赖,谁注入了谁,注入了什么?”
依赖注入有两种方式:设值注入和构造注入; 如果依赖关系(或继承关系)较为复杂,使用设置注入好点,构造注入可以在构造期间即创造一个合法的对象
二者区别:创建实例时,属性的创建时机不同,设置注入是先通过无参数的构造器创建一个bean实例,然后调用setter方法注入依赖关系;而构造注入则直接调用有参数的构造器,当bean实例创建完成后,已经完成了依赖关系的注入。
三、Spring的自动装配(byName;byType) 好处:大幅度减少Spring配置;<bean>的autowire属性有如下六个取值,他们的说明如下:
1、 No:即不启用自动装配。Autowire默认的值。
2、 byName:通过属性的名字的方式查找JavaBean依赖的对象并为其注入。比如说类Computer有个属性printer,指定其autowire属性为byName后,Spring IoC容器会在配置文件中查找id/name属性为printer的bean,然后使用Seter方法为其注入。
3、 byType:通过属性的类型查找JavaBean依赖的对象并为其注入。比如类Computer有个属性printer,类型为Printer,那么,指定其autowire属性为byType后,Spring IoC容器会查找Class属性为Printer的bean,使用Seter方法为其注入。
4、 constructor:通byType一样,也是通过类型查找依赖对象。与byType的区别在于它不是使用Seter方法注入,而是使用构造子注入。
5、 autodetect:在byType和constructor之间自动的选择注入方式。
6、 default:由上级标签<beans>的default-autowire属性确定。
byName和byType区别:byName快,因为byName是直接反射,byType需要遍历applicationContext;对于后者,若类中包含有两个及以上相同的属性时,注入的时候就会出错
四、spring 在一个action中注入某种服务?
采用动态代理的方式即 AOP
五、Spring事务的优点:
◆为不同的事务API提供一致的编程模型,如JTA、JDBC、Hibernate、iBATIS数据库层JDO
◆提供比大多数事务API更简单的、易于使用的编程式事务管理API
◆整合Spring数据访问抽象
◆支持Spring声明式事务管理
六:MVC介绍?
视图:
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Adobe Flash和像XHTML,XML/XSL,WML等一些标识语言和Web services.
模型:
模型表示业务逻辑处理,进行与数据库处理有关的操作。
控制器:
控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
- spring mvc
- spring mvc
- spring mvc
- spring,MVC
- Spring MVC
- spring mvc
- Spring-MVC
- Spring MVC
- Spring MVC
- Spring MVC
- SPring MVC
- spring mvc
- Spring mvc
- spring MVC
- spring mvc
- spring mvc
- spring mvc
- Spring MVC
- PyQuery: 一个类似jQuery的Python库
- HTML5 学习笔记 (2)
- HttpClient工具类
- C语言中memset函数详解
- POJ_1787_多重背包方案记录
- spring MVC
- UVA10763
- 让系统找到java
- 2015华为校园招聘机试模拟题及解答
- 黑马程序员——io流2(其它流)
- 在ubuntu14.04下配置myeclipse 2014及svn插件
- 黑马程序员17——OC之Fundation(NSDictionary)
- [Android分享] Android 分辨率自适应
- 内核态与用户态的区别