Spring单独使用 (二)面向接口 和 bean标签的灵活应用

1.根据之前的文章会有一个主方法调用配置文件和接口,随意调用各个类。
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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值