“Spring:IOC”的版本间差异
跳到导航
跳到搜索
第81行: | 第81行: | ||
=== BeanFactory === | === BeanFactory === | ||
[[File:Spring的工厂.jpg|700px]] | [[File:Spring的工厂.jpg|700px]] | ||
== Spring 的相关配置 == | |||
* '''id''':唯一确定一个Bean(唯一性约束),必须以字母开始,可以使用字母、数字、连字符、下划线、句点、冒号,不能出现特殊字符; | |||
* '''name''':Bean的名称(没有唯一性约束),name可以使用特殊字符;如果<bean>没有id 的话, name 可以当做id 使用; | |||
** 整合struts1 的时候:“<bean name=”/loginAction” >”; | |||
* '''scope''':Bean 的作用范围; | |||
** “singleton”:(默认)单例; | |||
** “prototype”:多例; | |||
** “request”:WEB 项目中,Spring 创建一个Bean 的对象,将对象存入到request 域中; | |||
** “session”:WEB 项目中,Spring 创建一个Bean 的对象,将对象存入到session 域中; | |||
** “globalSession”:WEB 项目中,应用在Porlet 环境.如果没有Porlet 环境那么globalSession 相当于session; | |||
* '''Bean 的生命周期'''的配置:通过配置<bean>标签上的“init-method”作为Bean 的初始化的时候执行的方法,配置“destroy-method”作为Bean 的销毁的时候执行的方法。 | |||
** 销毁方法想要执行,需要是单例创建的Bean;而且在工厂关闭的时候,Bean 才会被销毁. | |||
===(配置提示)=== | |||
# 复制约束(applicationContext.xml):“http://www.springframework.org/schema/beans/spring-beans.xsd” | |||
# 添加eclipse的“XML Catalog”: | |||
#: [[File:eclipse配置提示XML Catalog.jpg|400px]] | |||
#: [[File:eclipse配置提示XML Catalog添加.jpg|400px]] | |||
== Bean的管理:XML == | == Bean的管理:XML == |
2020年10月28日 (三) 14:02的版本
关于IOC
IOC:Inversion of Control 控制反转,指的是对象的创建权反转(交给)给Spring,作用是实现了程序的解耦合。
下载:
- 官网:“http://spring.io/”
- 下载地址:“http://repo.springsource.org/libs-release-local/org/springframework/spring”
Spring 目录结构:
- docs:API 和开发规范
- libs:jar 包和源码
- schema:约束
相关jar:
使用示例
- 创建web 项目
- 引入Spring 的开发包
- 相关配置文件:
- log4j.properties:日志配置
- applicationContext.xml:Spring配置文件:
- (配置说明,位于包的doc中:“spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html\xsd-configuration.html”)
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> </beans>
- 编写相关的类:
public interface UserDao { public void sayHello(); } public class UserDaoImpl implements UserDao { @Override public void sayHello() { System.out.println("Hello Spring..."); } }
- 完成配置:
<!-- Spring 的入门案例 --> <bean id="userDao" class="cn.itcast.spring.demo1.UserDaoImpl"></bean>
- 编写测试程序:
@Test // Spring 的方式: public void demo2(){ // 创建Spring 的工厂类: ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); // 通过工厂解析XML 获取Bean 的实例. UserDao userDao = (UserDao) applicationContext.getBean("userDao"); userDao.sayHello(); }
Spring 中的工厂
- BeanFactory :是在getBean 的时候才会生成类的实例.
- ApplicationContext :在加载applicationContext.xml 时候就会创建.
ApplicationContext
ApplicatioContext 接口有两个实现类:
- “ClassPathXmlApplicationContext”:加载类路径下Spring 的配置文件;
- “FileSystemXmlApplicationContext”:加载本地磁盘下Spring 的配置文件;
BeanFactory
Spring 的相关配置
- id:唯一确定一个Bean(唯一性约束),必须以字母开始,可以使用字母、数字、连字符、下划线、句点、冒号,不能出现特殊字符;
- name:Bean的名称(没有唯一性约束),name可以使用特殊字符;如果<bean>没有id 的话, name 可以当做id 使用;
- 整合struts1 的时候:“<bean name=”/loginAction” >”;
- scope:Bean 的作用范围;
- “singleton”:(默认)单例;
- “prototype”:多例;
- “request”:WEB 项目中,Spring 创建一个Bean 的对象,将对象存入到request 域中;
- “session”:WEB 项目中,Spring 创建一个Bean 的对象,将对象存入到session 域中;
- “globalSession”:WEB 项目中,应用在Porlet 环境.如果没有Porlet 环境那么globalSession 相当于session;
- Bean 的生命周期的配置:通过配置<bean>标签上的“init-method”作为Bean 的初始化的时候执行的方法,配置“destroy-method”作为Bean 的销毁的时候执行的方法。
- 销毁方法想要执行,需要是单例创建的Bean;而且在工厂关闭的时候,Bean 才会被销毁.
(配置提示)
- 复制约束(applicationContext.xml):“http://www.springframework.org/schema/beans/spring-beans.xsd”
- 添加eclipse的“XML Catalog”:
Bean的管理:XML
Bean的管理:注解
Bean的依赖注入(DI)
DI(Dependency Injection):依赖注入,使用IOC创建类的过程中,将类所依赖的属性设置进去。