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属性.







评论排行榜