Spring的IOC(控制反转)---过程 (整理所有的jar包)
IOC:会将对象的创建、初始化和销毁的权利叫给Spring框架 (仅限单例,多例只负责创建不维护)
1.导包
2.创建实体类
3.写配置文件(1.1.写文件头 window--reference--xml catalog--add--system file--(schema --beans)--修改key值(http://www.springframework.org/schema/beans/spring-beans-3.2.xsd) 1.2.new xml(Basic Template )还可以将配置好的文件头放在模板中 选择window--reference--xm templates 保存在此取一个名字 2.在xml中写一个Bean<bean id="类名首字母小写" class=“类的全路径名称”/> )
4.启动Spring容器 ApplicationContext context=new ClassPathXMLApplicationContext(“applicationContext”);
5.获取对象,调用 两种方式1.Context.getBean("id")
2.context.getBean(类.class );
别名标签<alias name="取别名的类" alias="别名"/>
Xml文件头的两种约束形式分别为dtd 和schema
Spring创建对象的四种方式
1.通过默认的无参构造
2.通过静态工厂<bean id="" class="工厂类的全路径" factroy-method=“getXXX”></bean> 不会执行无参构造 此方法不带括号
3.实列工厂<bean id="实列工厂的" class=”工厂的全路径“ ></bean>
<bean id="具体的类" factroy-bean="实列工厂的id" factroy-method="具体的方法">
4.Spring的工厂:<bean id="" class=""></bean>
工厂需要实现FactoryBean接口
Bean标签的几个属性:
Scope=“”:prototype 指多例设计 singleton为单例 默认情况下为单例
init-method:初始化就执行某一个方法
destroy-method:单例时销毁创建的对象 框架的销毁
lazy-init=:
default:默认请款下为加载时创建对象 当有配置全局的懒加载时 default-lazy-init时,使用全局的加载模式
false:加载时创建对应的对象
true:使用懒加载
当全局的配置与局部的配置有冲突时,以局部的配置为准。
当当前的bean为多例时,因为框架不知道需要多少个对象,故只有在使用时才创建对应的类
<bean id="person3" class="domain.Person" scope="prototype" lazy-init="false"></bean>