 
      
      

xmlns:c="http://www.springframework.org/schema/c"
xmlns:p="http://www.springframework.org/schema/p"加入可以简化


 
      
      静态方法实例化bean,不用配置工厂bean,在工厂中实例化;实例方法实例化bean,需要配置工厂bean和实例对象bean,以factory-bean关联;别名alias只能一个别名,bean定义name可以定义多个

 
      
      1、创建一个xml格式的配置文件
2、在xml文件中定义一个bean,给每个bean设定一个id
3、通过ApplicationContext获取Spring上下文ApplicationContext context = new ClassPathXmlApplicatioinContext("文件名.xml");
4、获取beanBean bean = context.getBeal("第一步中给bean的id",Bean.class);

 
      
      
约定:
1.所有的bean的生命周期交给ioc容器管理
2.被依赖的bean通过构造方法注入
3.被依赖的bean需要优先创建

 
      
      IoC
控制对象的创建及销毁(生命周期)
将对象的控制权交给IoC容器
 
      
      Java Web发展史:
第一阶段:JavaBean+Servlet+Jsp逐步发展
第二阶段:面对EJB重量级框架带来的种种麻烦
第三阶段:SpringMVC/Struts+Spring+Hibernate/myBatis
第四阶段:享受SpringBoot"约定大于配置"的种种乐趣,很多繁琐的配置都变成了约定
第五阶段:以Dubbo为代表的SOA为服务架构体系(Dubbo是阿里创建的)
第六阶段:比较前沿的技术,SpringCloud微服务架构技术生态圈(基于SpringBoot,保证了开箱即用,需要什么SpringCloud保证都有。
 
      
      为什么使用IOC
 
      
      通过构造方法和set方法注入Bean

通过属性直接注入Bean

实例化和注入时指定Bean的ID

List/set注入

将多个泛型实例注入到List

Map注入

将多个泛型实例注入到set

String、Integer等类型直接赋值注入

Spring IoC容器内置接口实例注入
 
 
      
      使用spring实例化bean
通过构造方法
静态方法
实例方法
bean的别名

 
      
      spring ioc
创建一个xml配置文件
获取spring上下文
获取bean
 
      
      约定:
所有的bean的生命周期交给ioc容器管理
被依赖的bean通过构造方法注入
被依赖的bean需要优先创建
 
      
      ioc
控制: 控制对象的创建及销毁
反转:将对象的创建权交给IOC容器
 
      
      
     
      
      1-4 Spring IoC入门





 
      
      实现IoC





 
      
      xml配置spring

 
      
      使用场景1

使用场景2

 
      
      Bean属性继承xml文件写法

 
      
      类实现初始化和销毁接口

 
      
      配置文件两种写法

 
      
      Bean销毁

 
      
      Bean的初始化

 
      
      懒加载的适用场景

 
      
      配置文件配置默认懒加载
 
      
      Bean的懒加载

只对singleton作用域的Bean有效;其他作用域不需要懒加载,因为不知道Bean什么时候被需要。
 
      
      自定义作用域代码

自定义作用域配置

SimpleThreadScope

 
      
      相关作用域

 
      
      web.xml配置上下文

 
      
      SpringWeb上下文环境

如果不使用DispatcherServlet,那么需要增加listener或filter


 
      
      Bean1代码改造前和改造后的对比:

Spring配置文件中的改造:
