2.再增加一个主函数,来调用主函数内的主方法。简化主方法DaoCaller,增加主函数代码。
3.在主方法内增加:private IDAO dao;并增加set和get函数;
4.<bean id="dao" class="dao.StudentDao">dao系统底层实例化的dao.StudentDao的对象名
<!--将dao装配到DaoCaller内dao属性-->
<bean id="caller" class="caller.DaoCaller">
<property name="dao">是属性名称
<ref local="dao"/>依赖注入上面的dao为属性,还一种是bean="",代码环境下所有配置文件路径下寻找,local代码当前配置文件路径下寻找
</property>
</bean>
5.可以在主程序启动Applicationcontext
ApplicationContext context = new FileSystemXmlApplicationContext("配置文件路径");
DaoCaller reader = (DaoCaller)context.getBean("caller");
reader.callDao();调用主方法
Spring bean标签的灵活应用
初始化和消亡函数
public class Conf{
public Conf(){};
private String driverClassName;
private String url;
增加set和get函数
还可以定义初始化函数,但是不能带参数,命名是随意的
public void init(){
}
还可以定义消亡函数,但是不能带参数,命名是随意的
public void destroy(){
}
}
<!--需要配置初始化函数-->
<bean id="conf" class="dbconf.Conf" init-method="init" destroy-method="destroy">
<property name="driverClassName">
<value>sunDriver</value>
</property>
<property name="url">
<value>jdbc:odbc:School</value>
</property>
</bean>
ApplicationContext context = new FileSystemXmlApplicationContext("配置文件路径");
Conf fr = (Conf)context.getBean("conf");
fr.info();
=====================================================================================
public class Conf{
public Conf(){}加入空构造函数,保证可以反射!
public Conf(String driverClassName,String url){
this.driver=driver;
this.url=url;
};
<!--通过构造方法注入 index代表参数的个数,0代表第一个参数-->
<bean id="conf" class="dbconf.Conf" init-method="init" destroy-method="destroy">
<constructor-arg index="0" type="java.lang.String">
<value>sunDriver</value>
</constructor-arg>
<constructor-arg index="1" type="java.lang.String">
<value>jdbc:odbc:School</value>
</constructor-arg>
</bean>
=====================================================================================
单态转多态
<bean id="conf" class="dbconf.Conf" init-method="init" destroy-method="destroy"
singleton="false">
<constructor-arg index="0" type="java.lang.String">
<value>sunDriver</value>
</constructor-arg>
<constructor-arg index="1" type="java.lang.String">
<value>jdbc:odbc:School</value>
</constructor-arg>
</bean>
========================================================================================
增加延迟加载,只针对单态才能用
<bean id="conf" class="dbconf.Conf" init-method="init" destroy-method="destroy" lazy-
init="true">
<constructor-arg index="0" type="java.lang.String">
<value>sunDriver</value>
</constructor-arg>
<constructor-arg index="1" type="java.lang.String">
<value>jdbc:odbc:School</value>
</constructor-arg>
</bean>