IOC:Inverse of Control,就是将原本程序中手动创建的对象的过程交给Spring去创建
Spring的IOC
第一步:引入Spring的jar包
context,bean,expression和core
第二步:编写类,假设叫做Book.java
第三步:编写applicatonContext.xml文件
配置该文件,有三种方式
1. 使用构造函数(Book需要提供无参的构造函数)
<bean id="helloService" class="com.ywkj.service.HelloServiceImpl"></bean>
2. 使用静态工厂
新建一个工厂类,新建一个静态方法,在该方法里返回Book对象
public class BookFactory{
public static Book getBook(){
System.out.println("静态工厂实例化");
return new Book();
}
}
在applicationContext.xml中配置
<bean id="bean2" class="com.ywkj.service.BookFactory" factory-method="getBook"></bean>
3. 使用实例工厂
新建一个工厂类,新建一个实例方法,在该方法里返回Book对象
public class BookFactory2 {
public Bean3 getBook(){
System.out.println("实例化工厂初始化");
return new Book();
}
}
在appllication里配置
<bean id="bookFactory2" class="com.ywkj.service.BookFactory2"></bean>
<bean id="Book" factory-bean="bookFactory2" factory-method="getBook"></bean>
第四步:在java代码中使用Spring创建对象,使用ClassPathXmlApplication
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
"applicationContext.xml");
Book book = (Book) applicationContext
.getBean("book");