发表于: 2018-03-21 23:38:23
5 601
小白学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是空的没有东西)
收获:(对框架大致的概念一点点皮毛的了解,对注入的简单理解)
评论