Spring心得

1.通过反射机制设置一个类中属性值:
 Class cls = Class.forName("net.xiaxin.beans.User");
 Method mtd = cls.getMethod("setName",new Class[]{String.class});
 Object obj = (Object)cls.newInstance();
 mtd.invoke(obj,new Object[]{"Erica"});
 return obj;
2.通过Spring Wrapper来操纵一个Bean:
 Object obj = Class.forName("net.xiaxin.beans.User").newInstance();
 BeanWrapper bw = new BeanWrapperImpl(obj);
 bw.setPropertyValue("name","Eria");
3.那么他和下面这样写有什么不一样呢?比下面这样写有什么好处呢?
 net.xiaxin.beans.User user = new net.xiaxin.beans.User();
 user.setName("Erica");
 
第一种和第二种写法可以把类名和方法名都写到配置文件当中去,在代码当中动态的加载设定某一个Bean的某一个属性,
而第三种写法就实现不了。而第二种方法由于引入了Spring Wrapper,写的更简洁,也更容易理解。

Bean Wrapper和Bean Factory是独立操作呢,还是一块操作呢?
Bean Factory是一个Bean的管理容器,将以前的po通过xml文件表示出来,然后在程序中动态的加载某一个Bean
例如:InputStream is = new FileInputStream("bean.xml");
   XmlBeanFactory factory = new XmlBeanFactory(is);
   Action action = (Action)factory.getBean("TheAction");
其中TheAction是在bean.xml定义好的bean,现在就通过BeanFactory得到了,如果和Bean Wrapper结合使用,
应不应该是这样呢:
   InputStream is = new FileInputStream("bean.xml");
   XmlBeanFactory factory = new XmlBeanFactory(is);
   Object obj = Class.forName(factory.getBean("TheAction"));//通过反射机制进行Bean加载
   BeanWrapper bw = new BeanWrapperImpl(obj);
   bw.setProertyValue("name","");//设置通过BeanFactory得到的TheAction这个Bean中的属性值
BeanWrapper是操作单个Bean的,而BeanFactory是一个Bean容器,这样就可以通过BeanFactory中得到某一个要
操作的Bean,在由BeanWrapper来通过反射机制加载这个Bean,和设置这个Bean中的属性。
不知道这样的理解对不对!

ApplicationContext:ApplicationContext覆盖了BeanFactory的所有功能,并提供了更多的特性:
 1:国际化支持 
 2:资源访问
 3:事件传播
 4:多实例加载
那这样说,是不是BeanFactory是不是完全可以不用了?  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值