控制反转(IOC)
应用程序本身不负任依赖对象的创建,依赖对象的创建由应用程序内转移动应用程序外(spring容中创建象)这种创建对象权力的转移就是反转。
public class PersonDaoImpl implements PersonDao {
public PersonDaoImpl(){
System.out.println("PersonDaoImpl被初始化");
}
public void init(){
System.out.println("调用init方法,初始化资源");
}
@Override
public void savePerson(String name) {
System.out.println("jdbc:name为"+name+"的记录保存成功");
}
public void destroy(){
System.out.println("调用destroy方法,销毁资源");
}
}
如果在创建对象之后初始化资源,可以PersonDaoImpl类中定义一个方法(init),希望PersonDaoImpl类的对象被销毁之前释放一些资源,可以PersonDaoImpl类中定义一个销毁方法(destroy).
定义完上述方法之后,一定要在<bean>标签中进行配置。
bean的延迟加载
默认情况下,bean没有延时初始化。只spring容器被创建,核心配置文件所配的bean都会立即初始化,并把初始化的bean对象放到spring容器中。这样会浪费性能和存储空间。
为了提交性能和存储空间的浪费,可以延时初始化bean对象.就在bean标签中设置 lazy-init="true"
如果希望所有的bean都延时初始化,可以在beans标签中设置default-lazy-init="true"
如果beans标签中所有的bean都延时初始化,但有一部bean需要立即初始化,可以在具体的bean标签中设置lazy-init="false"