2006-12-28

Spring读书记

1.
    classpath*: 作为前缀,可以将其后指定的所有资源暴露给ClassLoader及其父ClassLoader
    例:如果有一个程序被分成几个jar,都放在class-path上的。每一个jar都包含它自己的application context文件applicationContext.xml。我们可以简单的将所有jar的applicationContext.xml一起载入如下:

    ApplicationContext appContext = new ClassPathXmlApplicationContext("classpath*:ApplicationContext.xml");

2.从容器中取bean
一种方式:
    WeatherService ws = (WeatherService) ctx.getBean("weatherService");
另一种方式:
    Map allWeatherServices = ctx.getBeansOfType(WeatherService.class);
    从容器中读bean,将导致bean的创建和初始化,同时也包含了其相关依赖注入bean的创建和初始化。

3.
    bean可以有多个id,通过设定属性id或name,如下:
    //<bean id="component1-dataSource"
    //    name="component2-dataSource,component3-dataSource"
    //    class="ch02.sample5.TestBean"/>
    name属性中允许有逗号,有id,name时,name算作别名(aliase).

4.
    静态工厂方法的配置:
    //<bean id="testBeanObtainedViaStaticFactory"
    //  class="ch02.sample4.StaticFactory" factory-method="getTestBeanInstance"/>
    public class StaticFactory {
        public static TestBean getTestBeanInstance() {
            return new TestBean();
        }
    }
    非静态工厂方法的配置:
   // <bean id="nonStaticFactory"  class="ch02.sample4.NonStaticFactory"/>   
   // <bean id="testBeanObtainedViaNonStaticFactory"
   //   factory-bean="nonStaticFactory" factory-method="getTestBeanInstance"/>  
    public class NonStaticFactory {
        public TestBean getTestBeanInstance() {
            return new TestBean();
        }
    }
    注意testBeanObtainedViaNonStaticFactory这个bean未设置class属性.

 

评论
kingsword 2006-12-28
是不是bug啊? <bean...之后的内容被置空了
发表评论

您还没有登录,请登录后发表评论

kingsword
搜索本博客
最近加入圈子
最新评论
评论排行榜