发表于: 2018-03-21 23:38:23

5 602


小白学java第八点,学习时间6-7小时



今天完成的事情:(今天学习了框架,从一脸懵比到略懂大概了解spring可以跨四个层配置各个层的组件bean并维护之间的关系

了解了IOC依赖注入,是指程序运行过程中,如果需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部的注入。

然后准备动手实践一下,加深理解然后出现了很多状况

首先配置了spring的IDE

创建了java项目,lib文件夹添加的springfarmework的jar包,由于不懂每个包的对应意思,于是全部导入了进去

然后全部引用为库

创建java类,UserService代码如下

package service_服务;  

  

import org.springframework.context.ApplicationContext;  

import org.springframework.context.support.FileSystemXmlApplicationContext;  

   

interface Person {  

    void useAxe(); 

}  

  

interface Axe {  

    String chop(); 

}  

   

class Chinese implements Person {  

 

    private Axe axe;  

  

    public Chinese() { }  

  

    public void setAxe(Axe axe) { this.axe = axe; }  

   

    public void useAxe() { System.out.println(axe.chop()); }  

}  

  

class StoneAxe implements Axe {  

    

    StoneAxe() { }  

 

    public String chop() { return "石斧砍柴好慢"; }  

}  

  

class SteelAxe implements Axe{  

 

    public SteelAxe() { }  

   

    @Override  

    public String chop() {  

        return "钢斧砍柴真快";  

    }  

}  

class Cmt {  

 

    public static void main(String[] args) {  

        Chinese chinese = new Chinese();  

        StoneAxe stoneAxe = new StoneAxe();  

        chinese.setAxe(stoneAxe);  

   

        chinese.useAxe();  

        System.out.println("---------下面是配置文件实现设置注入------------");  

ApplicationContext ctx = new FileSystemXmlApplicationContext("applicationContext.xml");  

        Person p = (Person) ctx.getBean("chinese");  

        p.useAxe();  

    }  

}  

创建applicationContexr.xml

<?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="chinese" class="service_服务.Chinese">   

        <property name="axe" ref ="stoneAxe">  

        </property>  

    </bean>  

    <bean id="stoneAxe" class="service_服务.StoneAxe"/>  

  

    <bean id="steelAxe" class="service_服务.SteelAxe"/>  

</beans> 


) 
明天计划的事情:(继续学习框架试着用idea去写一个框架的程序,之后有时间的话就去了解JdbcTemplate和Mybatis) 
遇到的问题:(我不知道我代码问题还是什么,出现了以下问题

---------下面是配置文件实现设置注入------------

三月 21, 2018 10:31:53 下午 org.springframework.context.support.FileSystemXmlApplicationContext prepareRefresh

信息: Refreshing org.springframework.context.support.FileSystemXmlApplicationContext@1b8d17c: startup date [Wed Mar 21 22:31:53 CST 2018]; root of context hierarchy

三月 21, 2018 10:31:53 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions

信息: Loading XML bean definitions from file [F:\workspace\MySpring\ApplicationContext.xml]

Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from file [F:\workspace\MySpring\ApplicationContext.xml]; nested exception is java.io.FileNotFoundException: ApplicationContext.xml (系统找不到指定的文件。)

at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:344)

at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)

at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)

at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217)

at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)

at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:252)

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:614)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:515)

at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:140)

at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:84)

at service_服务.Cmt.main(UserService.java:53)

Caused by: java.io.FileNotFoundException: ApplicationContext.xml (系统找不到指定的文件。)

at java.io.FileInputStream.open0(Native Method)

at java.io.FileInputStream.open(FileInputStream.java:195)

at java.io.FileInputStream.<init>(FileInputStream.java:138)

at org.springframework.core.io.FileSystemResource.getInputStream(FileSystemResource.java:114)

at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:330)

... 13 more

然后一直在网上查找解决方法什么的无果。。求师兄解惑,有点说是jar包的问题,有的说是版本不兼容,我都试了,没有用

这是所有的src,test是空的没有东西) 

收获:(对框架大致的概念一点点皮毛的了解,对注入的简单理解)


返回列表 返回列表
评论

    分享到