Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4141930
  • 博文数量: 70
  • 博客积分: 5010
  • 博客等级: 大校
  • 技术积分: 1400
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-27 15:06
文章存档

2011年(2)

2010年(23)

2009年(21)

2008年(24)

我的朋友

分类: Java

2010-08-02 15:53:22

一般情况下,我们都是使用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
    update
    true
    
     true
    

    
     org.hibernate.cache.EhCacheProvider
    

    true
   
   
  
  
   
    src/hbm/*.hbm.xml
   

  

 
   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) |
给主人留下些什么吧!~~