Ioc容器是总称,XML配置文件指的就是ApplicationContext.xml文件;IOC容器的的依赖注入有三种方式,Setter,构造方法,这两种使用的是配置文件,还有一种是基于注解的注入,只需要在ApplicationContext.xml文件开始注解的扫描就可以使用注解了
官网:https://github.com/java-decompiler
下载:https://github.com/java-decompiler/jd-gui/releases
离线版本:(链接: https://pan.baidu.com/s/1slK94QT 密码: jd6a)
这个一百度就有了
据说,慕课网的ppt是不能发给学员的
直接下载
字面是xml文档解析,应该xml文档有问题
我也不知道,网上找找吧。老师没有细讲
异常不合法,查看异常是否捕获,再看jdk的 版本
默认的是包名.类名,可以重写
你好问题解决了吗?同样是这个问题,代码什么的都没问题就是报错
这个是spring约定的规则,使用了classpath*:就会扫描所有的文件,其中扫描文件的协议是使用了Apache Ant的路径规则(spring、mybatis等都使用这个协议)
相信楼主已经解决了,我也遇到相同问题也解决了,发出来给后人看。
xmlns:context="http://www.springframework.org/schema/context"
问题出在这一行,楼主图片里的多出了个空格。
好好看,视频的右下角不是有吗
jdk动态代理和cglib代理
右边有源码可以下载
应该是对一个store子类@scope(value)吧
自动扫描这个包下的所有Class
..................................
默认是单利模式
getBean方法是Spring工厂用来获取对象用的。将applicationContext.xml文件中的<bean>标签的id值作为参数,传给该方法。它会返回给你一个该标签对应的对象。返回的是一个Object类型的对象,需要强转。
例如:
applicationContext.xml中
<bean id="userDAO" class="包名.UserDAOImpl"></bean>
使用spring工厂时先获取一个spring工厂
ApplicationContext ac = new ClassPathXmlApplicationContext("/applicationContext.xml");
UserDAO ud = (UserDAO)ac.getBean("userDAO");
然后在后面的代码中可以通过获取到的UserDAO接口的实现类的对象,调用接口中的方法。比如:登录,注册等方法。
class不一样
下载源码包,或者是有IDEA,IDEA会进行反编译查看源码并且在编写spring配置文件时,会根据下面使用的属性自动导入schema
容器在接到该类型对象的请求的时候,会每次都重新生成一个新的对象实例给请求方。虽然这种类型的对象的实例化以及属性设置等工作都是由容器负责的,但是只要准备完毕,并且对象实例返回给请求方之后,容器就不再拥有当前返回对象的引用,请求方需要自己负责当前返回对象的后继生命周期的管理工作,包括该对象的销毁。也就是说,容器每次返回给请求方一个新的对象实例之后,就任由这个对象实例"自生自灭"了
你贴上你的源代码啊,让大家帮你找一找错误。
classpath*:spring-*.xml,
这是加载所有的匹配的文件,
就是src一级目录下,所有spring-开头的xml文件。
xml文件名 和getBean (classpath:的路径)
你如果有spring的源码的话就可以查看,如果没有的话就不能
●谁控制谁,控制什么:传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC是有专门一个容器来创建这些对象,即由Ioc容器来控制对 象的创建;谁控制谁?当然是IoC 容器控制了对象;控制什么?那就是主要控制了外部资源获取(不只是对象包括比如文件等)。
●为何是反转,哪些方面反转了:有反转就有正转,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;为何是反转?因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转;哪些方面反转了?依赖对象的获取被反转了。