论坛首页 Java企业应用论坛

Spring中管理XML配置文件的问题

浏览 29219 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-12-20  
我希望Spring的ApplicationContext.xml文件分成三个部分:
resource,dao,Service。

也就是说,一个文件变成三个文件:
ApplicationContext-resource.xml
ApplicationContext-dao.xml
ApplicationContext-Service.xml

请问这样做是否可以?

如果可以的话,我应该怎样象以前读一个文件那样同时读三个文件信息?
   发表时间:2004-12-20  
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[] {
                "com/javaeye/example/ApplicationContext-resource.xml", 
                "com/javaeye/example/ApplicationContext-dao.xml", 
                "com/javaeye/example/ApplicationContext-Service.xml" 
                });;
0 请登录后投票
   发表时间:2004-12-20  
无法读取。。。

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(new String[] {
                "/WEB-INF/ApplicationContext-resource.xml",
                "/WEB-INF/ApplicationContext-dao.xml",
                "/WEB-INF/ApplicationContext-Service.xml"
                });;


org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [WEB-INF/ApplicationContext-resource.xml]; nested exception is java.io.FileNotFoundException: Could not open class path resource [WEB-INF/ApplicationContext-resource.xml]

java.io.FileNotFoundException: Could not open class path resource [WEB-INF/ApplicationContext-resource.xml]

0 请登录后投票
   发表时间:2004-12-20  
web-inf又不是classpath的路径,放在那边干什么?
0 请登录后投票
   发表时间:2004-12-20  
我希望把这些配置文件放置在WEB-INF中受到保护,不能直接被外界读取。

应该怎么做呢?
0 请登录后投票
   发表时间:2004-12-20  
放在你的classpath下面,打成jar放在web-inf\lib或者直接放在web-inf\classes,也是受保护滴
0 请登录后投票
   发表时间:2004-12-20  
org.springframework.beans.factory.BeanDefinitionStoreException: Line 45 in XML document from class path resource [ApplicationContext-dao.xml] is invalid; nested exception is org.xml.sax.SAXParseException: 没有组件含有值为“dataSource”的 ID 属性。

org.xml.sax.SAXParseException: 没有组件含有值为“dataSource”的 ID 属性。

我要同时导入三个包,但是dataSource的申明不是在dao中进行的,这怎么解决?
0 请登录后投票
   发表时间:2004-12-20  
查文档,关于bean ref type的说明。

多个配置文件bean之间的reference,不要使用local
0 请登录后投票
   发表时间:2004-12-20  
不知道我前面说的是否准确,问题如下:

dataSource在ApplicationContext-resource中申明

<bean id="dataSource"
       class="org.apache.commons.dbcp.BasicDataSource"
       destroy-method="close">
       <property name="driverClassName">
         <value>oracle.jdbc.driver.OracleDriver</value>
       </property>
       <property name="url">
         <value></value>
       </property>
       <property name="username">
         <value></value>
       </property>
       <property name="password">
         <value></value>
       </property>
 </bean>


但引用dataSource的却是在ApplicationContext-dao.xml中
<bean id="sessionFactory"
       class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
       <property name="dataSource">
         <ref local="dataSource" />
       </property>
       <property name="mappingResources">
         <list>
           <value>test/model/PersonModel.hbm.xml</value>
		 </list>
       </property>
       <property name="hibernateProperties">
         <props>
           <prop key="hibernate.dialect">
             net.sf.hibernate.dialect.Oracle9Dialect
           </prop>
           <prop key="hibernate.show_sql">
             true
           </prop>
         </props>
       </property>
 </bean>


当xml文件依次读入时,报告如下错误:
org.springframework.beans.factory.BeanDefinitionStoreException: Line 45 in XML document from class path resource [ApplicationContext-dao.xml] is invalid; nested exception is org.xml.sax.SAXParseException: 没有组件含有值为“dataSource”的 ID 属性。

org.xml.sax.SAXParseException: 没有组件含有值为“dataSource”的 ID 属性。



请问这该如何解决?
0 请登录后投票
   发表时间:2004-12-20  
Readonly 写道

多个配置文件bean之间的reference,不要使用local


谢谢你的回复。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics