一般情况下,我们都是使用webProject开发网站之类的web项目,一般在applicationContext.xml文件中配置的bean实体都由spring负责注入,我们只需在web.xml中加载applicatinContext.xml文件并在需要使用的地方写个此bean的getter/setter方法即可。例如:
web.xml文件中加载application.xml:
contextConfigLocation
/WEB-INF/classes/applicationContext.xml,
/WEB-INF/classes/applicationContext-alarm.xml,
/WEB-INF/classes/applicationContext-demo.xml
applicationContext.xml中注入了:
class="pas.dao.comparechart.CompareChartDaoImpl">
...
...
那么在需要使用以上两个bean的类中,则需要:
private CompareChartDao compareChartdao;
private LayoutDao layoutDao;
public CompareChartDao getCompareChartdao() {
return compareChartdao;
}
public void setCompareChartdao(CompareChartDao compareChartdao) {
this.compareChartdao = compareChartdao;
}
public LayoutDao getLayoutDao() {
return layoutDao;
}
public void setLayoutDao(LayoutDao layoutDao) {
this.layoutDao = layoutDao;
}
public useTwoBean()
{
//直接使用compareChartdao和layoutDao变量即可。
String configurationId=21;
String widgetId=32;
compareChartdao.deleteCompareChart(configurationId);
Widget widget = layoutDao.getWidget(widgetId);
}
以上是开发webProject项目时获取spring的applicationContext.xml内的Bean实体的方法;由于公司最近要开发一个非web项目,非web项目没有web.xml启动时加载applicationContext.xml,那么怎么样来获取applicationContext.xml中注册的实体呢?
例如我的applicationContext.xml内容如下:
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
scope="singleton">
org.hibernate.dialect.Oracle10gDialect
false
proxool.xml
demo
org.hibernate.connection.ProxoolConnectionProvider
20
8
20
true
org.hibernate.cache.EhCacheProvider
true
class="org.springframework.orm.hibernate3.HibernateTransactionManager"
scope="singleton">
class="org.springframework.orm.hibernate3.HibernateTemplate"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
我本人采取的方式为:
ApplicationContext act = new FileSystemXmlApplicationContext("src\\applicationContext.xml");//加载applicationContext内容
//获取并使用applicationContext.xml中的实体bean
HibernateTemplate htemplate=(HibernateTemplate)act.getBean("hibernateTemplate");
Rule rule=(Rule)htemplate.get(Rule.class, "1");
System.out.println("id: "+rule.getID());
以上仅为本人自己的一点研究,如有不对请大家纠正,特写在此,以备后用。
阅读(6391) | 评论(0) | 转发(0) |