【spring学习-day1】spring介绍-applicationContext和BeanFactory-第一个web
本文有3个知识点,先总结。
1.介绍spring
2.介绍applicationContext和BeanFactory
3.演示怎么在spring里创建对象和怎么问spring要一个对象
【spring介绍】
看过4-5次视频,查过好几次资料,总的来说,至今,我最认可,觉得最简单易懂的解释是------spring是个容器,对象的容器。
【spring在项目中的位置】
以前,jsp-springMVC-servlce-持久层,springMVC得在代码里new一个业务层对象,然后操作业务层;业务层又得自己new一个dao对象,然后操作数据库,这样就层层耦合,后来有了spring之后,Action只需要问spring要业务层service的对象,业务层只需要问spring要dao对象,就可以完成一次操作,这样,他们的关系最后就交给了spring来管理(我们只需要把对象创建在spring就可以了)。
所以我觉得,spring是连接应用层和持久层的桥梁,只要用到对象的地方就有spring,spring无处不在。
【applicationContext与BeanFactory】
1.BeanFactory是最顶层的接口,applicationContext继承了BeanFactory,并比BeanFactory更强大(顶层接口肯定没有之后发展的子接口功能丰富 )。这个可以通过看底层代码看出来(如下图关系,已经验证。)
2.Beanfactory是在获取对象的时候才去创建对象,而applicationContext是在容器启动的时候就创建对象了。
可能是从前电脑配置低,内存小,得省着用吧,BeanFactory才在设计之初,设计成是在获取对象的时候才去创建对象。
所以,用哪个,就看以后资源了,充足,就用applicationContext,资源紧缺就用BeanFactory,启动的时候,肯定就是BeanFactory启动更快了。
【演示怎么在spring里创建对象和怎么问spring要一个对象】
步骤1:先创建一个web项目
步骤2:导入核心包+日志包
步骤3:创建一个测试对象
步骤4:创建一个xml文件
步骤5:在xml文件中创建对象
步骤6:测试
2.核心包,看下面这张图,图中别人都指出了核心包有四个。
4.1 引入约束
4.2
4.3
4.4
4.5 添加完xsi后,继续右键添加xsd。记得填写Namespace Name
4.6 接着右键
4.7
4.8 name 为一个别名,到时候用这个别人去问spring要对应的对象。
测试
【验证BeanFactory】是在获取对象的时候才去创建对象
先把bean设置成lazy-init=true ,懒加载。
启动的时候是没有输出的。
启动,获取对象的时候,发现有输出,说明,的确是在获取对象的时候才去创建对象。