1 / 42
文档名称:

SpringMVC框架.docx

格式:docx   大小:2,713KB   页数:42页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

SpringMVC框架.docx

上传人:mh900965 2018/1/5 文件大小:2.65 MB

下载得到文件列表

SpringMVC框架.docx

相关文档

文档介绍

文档介绍:Spring
Spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,Mybatis框架等组合使用。
Spring为企业级应用的开发提供了一个轻量级(耦合度低)的解决方案
包括:
依赖注入 IOC
面向切面编程 AOP,Spring对声明式事务处理
对Dao的支持,整合JDBC、MyBatis、Hibernate等
对Web的支持,SpringMVC
优点:
低侵入方案
IOC容器降低了业务对象替换的复杂性,解耦
AOP支持了一些事务、安全、日志等集中管理
对Dao的支持和第三方持久层框架的支持,简化底层数据库的访问
框架结构如图:
IOC
IOC 控制反转,传统情况下,创建对象通过new的方式,或者通过工厂获取。IOC将对象的创建交给容器去管理(类似于Servlet容器),容器可以去创建对象、初始化对象等,容器去管理对象的生命周期。
DI 依赖注入,一个类可以有若干个属性,可以通过IOC的方式获取对象,对象的属性都是默认初始化,可以通过set方法注入或者是构造方法注入对应的值
 . packages are the basis for Spring Framework's IoC container
ApplicationContext对应IOC container
创建IOC容器
引入相关jar文件
写配置文件
配置文件的文件头可以去文档中找。
测试
结果:在创建IOC容器时,User类中的无参的构造方法被调用。
延迟创建Bean
当配置文件中的bean比较多的时候,考虑性能问题,部分bean可以在使用时创建
通过容器去调用getBean方法时创建
配置:
如果对整个配置文件中的所有的bean都要延迟创建,在xml文件头中添加属性
Bean的单例
默认情况下,IOC容器创建Bean的方式按照单例的方式创建的。
在容器中多次调用getBean方法获取同一个bean,对应的地址是相同的。
默认不设置scope,就是单例的。
多次获取的时候,从缓存中获取bean的。
如果scope设置成prototype 代表是多例的方式获取bean,每次取getBean的时候去创建
LifeCycle 生命周期
在bean中配置init-method 和 destroy-method 指定初始化和销毁对应的要执行的方法的方法名。
DI
对应的User类中有相关的属性的定义
考虑,在容器实例化User时,对相关的属性进行赋值?
在javase阶段时通过new 无参的构造方法,再调用set方法进行赋值或者直接调用有参的构造方法处理。
可以通过DI的方式注入对应的值,注入的两种方式:set方法注入和构造方法注入
Set方法注入
User类中对应的属性提供set方法。否则有异常
配置:
在bean标签中添加<property>标签,
name属性指定属性名
value 属性指定属性值
ref 属性指定引用
当类的属性的内容是基本数据类型、String 等用value,如果是其他的引用类型,使用ref,指定其他的bean的id
构造方法注入
使用< constructor-arg>标签,指定构造方法参数
属性:index指定参数的位置,默认从0开始
type 指定参数的类型
value 指定参数的值
ref 指定参数的引用
其他属性的注入
比如 List、Set、Map、Properties

总结
两种注入方式
set方法注入,只需要属性提共set方法
构造方法注入,不够灵活,不能有效的控制指定的参数的值
p-namespace
在xml文件头中引入
原来通过set方法注入的内容,使用<property>标签
引入p的命名空间后可以改成
<bean name="classic" class="">
<property name="email" value="foo@"/>
</bean>
<bean name="p-namespace" class=""
p:email="foo@"/>
c-namespace
原来使用构造方法注入,<constructor-arg>
<--