spring基础环境搭建
1.添加Spring依赖
2.编写一个Spring的配置文件
3.通过Spring的应用程序应用上下文获取对象
优点:在修改方案时可以不用修改代码,只需修改配置文件的bean就可以。
spring的基本测试过程
1.获取上下文对象ctx
ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
2.通过上下文对象ctx获取自己创建的对象。
Girl girl= (Girl) ctx.getBean("girl2");
3.需要修改你的对象的时候,直接修改配置文件即可。
IOC概念的理解
IOC也称为依赖注入
1.控制反转:inverse of control 什么控制,谁反转了谁
 控制:创建对象,彼此关系的权利。
控制权是在开发人员在程序代码当中进行掌控。(new)
夺取控制权
反转给spring的容器
-  声明要什么 
-  spring容器来进行具体的控制 改变了编程的方式 
2.依赖注入(DI)
依赖:
注入:
3.值的注入
a.setter注入
-  必须对应字段有对应setter方法才能完成 
-  通过property子节点注入 注意使用lombok插件的时候需要导入依赖的。 
b.构造注入
必须有对应的set构造方法
无参的构造方法也必须有,框架一般依赖于无参
4.bean元素探讨
属性探讨
-  abstract 对象抽象化,无法形成实例 一般和parent同时使用,指定父类bean。 
-  destroy-method:指定这个bean被销毁时执行的方法 触发条件:bean确实被销毁 例如:ctx.close();(需要强制转换ctx,这里就不写了) //destroy也可以了,但有点过时了 refresh也会被触发 stop不会被触发 
-  init-method:指定bean的初始化方法,适合准备性的工作 
-  name: 别名,可以通过它一样获取。 可以采用多种f分隔符方式 (空格,逗号都可以) 
-  scope:指定范围 singleton:单例 spring上下文只有一个实例 prototype:原型 
-  lazy-init:延迟初始化 (spring一上来不会直接初始化bean,我们需要使用的时候才会初始化bean) 默认情况下所有的bean是容器初始化完毕就完成实例 延迟程序初始化可以让程序启动快一些,内存消耗更小一点。 
-  depends-on:依赖的bean,如果一个bean的使用严重依赖于另一个bean的准备的话,就可以配置depends-on。 
对于非字面值可以描述的值的注入问题,通过ref指向另一个bean的ID。
关于在spring的配置文件单独配置别名,通过alias即可。
spring多个配置文件的bean被扫描后是可以互相引用的。