尝试使用spring 基本用法的时候,总是这样报错,试了好些办法还是不行,不知道有没有有经验的前辈来解答一下,我把相关的几个文件和xml都传上来,很简单的例子
接口HelloWorld
1 package cim.springNeed; 2 3 public interface HelloWorld { 4 public void sayHello(); 5 }
实例化类HelloWorldBean继承HelloWorld
package cim.springNeed; public class HelloWorldBean implements HelloWorld{ private String helloWorld; public void sethelloWorld(String helloWorld){ this.helloWorld=helloWorld; } public void sayHello(){ System.out.println(helloWorld); } }
xml配置web.xml
<bean id="helloWorldBean" class="cim.springNeed.HelloWorldBean"> <property name="helloWorld"> <value>Hello,Welcome To Spring World!</value> </property> </bean>
测试代码:
package cim.springNeed; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; public class FirstSpringDemo { public static void main(String[] args){ //-----------BeanFactory IoC容器---------------------// //从classpath路径上装载XML的配置信息 Resource r=new ClassPathResource("web.xml"); //实例化IOC容器,此时容器并未实例化beans-config.xml所定义的各个受管bean. BeanFactory factory=new XmlBeanFactory(r); //获取受管bean HelloWorld h=(HelloWorld)factory.getBean("helloWorldBean"); h.sayHello(); } }
先表示感谢了哈,应该不是太难,如果熟悉这些用法的话
貌似是你的web.xml有问题,我的web.xml文件定义为:
1 <?xml version= "1.0" encoding ="UTF-8" ?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans 5 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 6 "> 7 8 <bean id="helloWorldBean" class="cim.springNeed.HelloWorldBean"> 9 <property name="helloWorld"> 10 <value>Hello,Welcome To Spring World!</value> 11 </property> 12 </bean> 13 14 </beans>
这样就没啥问题,不过建议spring的配置文件定义为applicationContext.xml或spring.xml。
我将web.xml的<beans ...> </beans>去掉后报你上面的错误。
确实是有道理,<beans>未定义尝试着按照您说的,来修改了下;不过还是有些问题,其他的我也没动,不知道您那里调试着没有问题是因为什么,现在报这样的错误【
Line 1 in XML document from class path resource [applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 7; 不允许有匹配 "[xX][mM][lL]" 的处理指令目标。
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 7; 不允许有匹配 "[xX][mM][lL]" 的处理指令目标。】
查了一下,很多人说的是第一行的前边不要有空字符,不过这样做了还是不行;可以的话帮忙也看看好吧,谢谢你的回答哈~~~
将首行版本号与编码类别去掉后,可以正确输出结果了;不知道为什么会这样?
你的xml文件必须要放在src根目录下么?我额外建了文件夹config发现就不能正常访问,不知道是不是路径的问题,只有放在根目录下才能正常访问
@KarayLee: 这个应该跟你xml的编码格式有关,用noteapp++ 看看xml是不是UTF-8, 如果新建了config文件夹,可能路径要改为: /config/web.xml, 前面的/不能去掉