spring基础学习(day01)

没想到学习第一天就踩到坑,而且不知道怎么解决。。。。(已解决)

直接上坑:

工程结构:

MainTest测试代码

public class MainTest {
    public static void main(String[] args) {
        /*AnnotationConfigApplicationContext applicationContext =
                new AnnotationConfigApplicationContext(Day01BeanConfiguration.class);*/
        ClassPathXmlApplicationContext applicationContext=
                new ClassPathXmlApplicationContext("com/spring/day02/day02-beans.xml");

        AccountService accountService =
                applicationContext.getBean("accountService",AccountService.class);

        System.out.println("Befor money transfer");
        System.out.println("Account 1 balance:"+accountService.getAccount(1).getBalance());
        System.out.println("Account 2 balance:"+accountService.getAccount(2).getBalance());

        accountService.transferMoney(1,2,0.9);

        System.out.println("After money transfer");
        System.out.println("Account 1 balance:"+accountService.getAccount(1).getBalance());
        System.out.println("Account 2 balance:"+accountService.getAccount(2).getBalance());

    }
}

bean配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="accountService" class="com.spring.day02.AccountServiceImpl">
        <property name="accountDao" ref="accountDao"/>
    </bean>

    <bean id="accountDao" class="com.spring.day02.AccountDaoImpl"/>

</beans>

测试结果:

Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [com/spring/day02/day02-beans.xml]; nested exception is java.io.FileNotFoundException: class path resource [com/spring/day02/day02-beans.xml] cannot be opened because it does not exist
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:343)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:216)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:187)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:251)
	at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
	at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
	at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
	at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:540)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:454)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
	at com.spring.day02.MainTest.main(MainTest.java:9)
Caused by: java.io.FileNotFoundException: class path resource [com/spring/day02/day02-beans.xml] cannot be opened because it does not exist
	at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:329)
	... 13 more

将.xml文件放过很多位置,src下面,java下面等,也尝试使用过相对路径和绝对路径都提示这个错误。

Loading XML bean definitions from class path resource [com/spring/day02/day02-beans.xml]

但是使用

/*AnnotationConfigApplicationContext applicationContext =
                new AnnotationConfigApplicationContext(Day01BeanConfiguration.class);*/

这个方法又是ok的。很懵逼。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

以上问题解决:

最后发现报错一直提示:Loading XML bean definitions from class path resource。

决定将xml文件放入工程生成时就有的resources包中。路径配相对当前包路径:“/day01-beans.xml”,运行代码:

结果完美运行。

猜你喜欢

转载自blog.csdn.net/weixin_38328865/article/details/81047215