
先说说Spring框架
Spring框架
- Spring框架的作用
- Spring 的核心(IOC功能)
- SpringAOP功能
原有的业务流程:请求—>servlet-->service-->多个dao—>jsp
Spring一般将【servlet-->service-->多个dao—>jsp】交给IOC和AOP管理
(管理组件对象,维护对象关系,降低组件耦合度)
4.Spring Web MVC功能:MVC设计 目的:架构一个MVC结构的web程序
注意:(2和3可选择)
5.Spring整合其他技术,例如JDBC,Hibernate,struts,Mybatis等
6.Spring—>整合API-à调用原有技术API()
结构图如下:
SpringIOC
IOC概念:Inversion of Control控制反转或反向控制
控制反转:改变对象的获取方式。之前编码方式采用new构造器方式获取对象;IOC中用由容器创建对象之后注入进来使用。只要修改配置就可以改变对象关系,实现组件间的解耦。(管理创建组件对象,依赖注入信息)
- 管理对象,创建,初始化,释放资源,销毁
2.维护对象关系
SpringIOC应用:
- 搭建SpringIOC开发环境
---引入相关jar包
---在src添加applicationContext.xml
举例:
1) 原始方法获得一个对象
1) SpringIOC创建对象的方法
SpringIOC容器-->管理组件及对象关系
- 创建ApplicationContext对象
- 向applicationContext.xml配置<bean>
- 利用ApplicationContext对象getBean()
1) 在applicationContext.xml中添加 创建对象--->构造方法
ApplicationContext容器对象-->applicationCotext.xml--><bean>
2)静态工厂方法---C2
3)对象工厂方法(封装了对象创建细节)
<bean id=”date” factory-bean=”c2” factory-method=”getTime”></bean>
SpringIOC创建Bean对象的控制
1.控制对象创建方式(使用范围)
在bean元素中使用scope属性控制
可以支持singleton或prototype,默认是singleton
<bean scope=”singleton”>该组件在Spring 中只有一个bean对象</bean>
<bean scope=”prototype”>该组件在Spring 中每次ac.getBean(“id”)都返回一个新的对象</bean>
2.指定对象初始化方法
Java(原始方式使用构造器)
Spring方式:先在org.tarena.bean.ExampleBean中添加init方法,然后用<bean>元素的init-method指定初始化 方法
3.指定对象销毁方法:destroy-method属性
利用<bean>元素的destroy-method指定
满足下面条件才有效:
-----1)组件对象为单利模式
-----2)调用AbstractApplicationContext容器对象的close()方法
4.控制单例对象创建时机
在默认情况下,单例对象是Spring容器创建时实例化;可以使用<bean>元素的lazy-init=true属性将创建的时机推迟到getBean()方法调用时。
IOC维护对象关系
采用注入方式创建对象关系Dependency Injection依赖注入(DI)
依赖注入:set方法注入;构造器注入;
A. set方法注入
1)创建computer类,添加set和get方法
2) 在容器中配置信息
B.构造器注入
C:注入对象