1. spring核心构成+IOC

1.Spring 的核心构成
  IOC    Spring 最核心的模块
  DAO    Spring  对访问数据库的支持  主要封装的是JDBC
  MVC    Spring  对 MVC 设计模式的支持   (SSM)
  AOP    (Aspect Orientied Programing)面向切面编程
  ORM    对象关系映射   Spring 要和ORM框架结合 Mybatis  
2.什么是IOC
  Inversion  Of  Control  控制反转
     程序的开发 由原来的 需要某个对象时  由原来的new的方式去  变成了由 容器来提供对象
  就是把对象的控制权交给容器。 容器来负责对象的创建 和 注入。这样做可以降低对象之间的
  耦合度。  
  IOC的底层由Spring 容器来完成,容器的作用是 负责组件对象的创建  和 对象关系维护。
3.Spring 容器
  Spring 容器 是用来管理 java bean 组件
  Spring 容器 实现了 IOC 和 AOP
  Spring 容器 对应的类型 ApplicationContext  和  BeanFactory
4.Spring 容器使用的步骤
  4.1 建立一个项目    导入spring 的 ioc 相关 jar包 到项目
  4.2 拷贝Spring  容器对应的配置文件  到 src下
  4.3 在Spring 配置文件中 配置 java 类

      <bean  id="bean组件标识"   class="包名+类名"  />

  4.4 构建Spring 容器对象  加载上面的配置文件
               通过Spring容器获取对象
               
5.使用上面的spring 容器的使用步骤   获取一个Emp 类型的对象
  这个Emp 类型 需要自定义  字段有 name  age  salary  
 方法有 show  toString  构造 。
 通过容器 来获取Emp  类型的对象
   4.1 考虑 导入spring ioc 相关jar包   和  spring 的配置文件
   4.2 写一个Emp 类 提供成员变量   get set方法  构造   toString  show
   4.3 在Spring 配置文件  配置 Emp 类型
       <bean  id="bean组件标识"   class="包名+类名"  />
   4.4  构建Spring 容器对象  加载上面的配置文件   通过Spring容器获取对象   
   ApplicationContext  app  = new  ClassPathXmlApplicationContext("文件");
   app.getBean("配置文件中的标识",类型.class);    
6.Spring 容器创建bean对象的三种方式
  6.1 使用构造方法来创建对象    默认调用无参构造
     <bean  id=""  class="构建的对象对应的包名+类名"  > </bean>
  6.2 使用静态工厂方法
     <bean  id="对象标识"  class="工厂的包名+类名"   factory-method="静态方法名"> </bean>
  6.3 使用实例化工厂方法
     <bean  id="对象标识"  class="目标对象的包名+类名"  factory-bean="工厂对象的标识"
           factory-method="实例化方法名"> </bean>

     (使用日历对象 来获取日期对象 )

  <!-- 使用静态工厂方式 获取日历对象  -->
         <bean  id="cal" class="java.util.Calendar" factory-method="getInstance"></bean>
         <!-- 使用实例化工厂方式 使用 日历对象获取日期对象  -->
         <bean  id="date" class="java.util.Date"  factory-bean="cal"  factory-method="getTime"></bean>

7.Spring 容器中 bean 对象的作用域
  作用域的指定 使用 bean 标签中的  scope 来指定
  scope="singleton"   这是spring 容器 默认对一个组件进行的处理
  scope="prototype"   非单例的
  request  session  等这些作用域 在web中使用  
8.对象的初始化问题 (6)
  Spring 容器创建完对象之后 可以对对象进行初始化
  第一种手段 是 在beans 标签中  加 default-init-method 指定初始化方法的名字  这样
  针对所有的bean 对象 都起作用,影响的范围比较大 所有某个类型中没有对应的初始化方法
  时程序不会报错。
 第二种手段 在bean 标签中 加 init-method 指定的方法名  只针对加了init-method 的
 bean  影响范围比较小  所以没有对应的初始化的方法则会报错。
9.对象的销毁问题   (6)
第一种手段 是 在beans 标签中  加 default-destroy-method 指定销毁方法的名字  这样
  针对所有的bean 对象 都起作用,影响的范围比较大 所有某个类型中没有对应的初始化方法
  时程序不会报错。
 第二种手段 在bean 标签中 加 destroy-method 指定的方法名  只针对加了destroy-method 的
 bean  影响范围比较小  所以没有对应的销毁的方法则会报错。
 多例模式下 销毁方法的输出不再表现
10.bean 对象的延迟实例化
   bean对象 默认是单例的 在这种作用域下  在Spring 容器启动时就会创建对象,可以通过设置
   对对象进行延迟实例化。可以在 beans 标签中 加 default-lazy-init 这个使用比较少
  也可以在 bean标签中 加 lazy-init="true"

11.什么是DI
  Dependence  Injection   依赖注入   解决组件的装配问题
  DI 其实是对IOC (控制反转) 的一种具体实现手段
12.DI的实现方式
  12.1 setter 注入
             基于set方法的注入
      <bean id="player" class="com.xdl.bean.Player">
            <property name="name" value="小马哥"></property>
            <property name="age" value="38"></property>
            <property name="money" value="1000000000"></property>
            <property name="card" ref="card1"></property>
       </bean>
   12.2 构造器注入
        按照参数的位置 来指定对应的构造方法的参数值
    <!-- 创建一个玩家 名字是王诗龄  45  1  -->
       <bean  id="xiaohua"  class="com.xdl.bean.Player">
            <constructor-arg  index="0" value="王诗龄"></constructor-arg>
            <constructor-arg  index="1" value="8"></constructor-arg>
            <constructor-arg  index="2" value="111" ></constructor-arg>
            <constructor-arg  index="3" ref="card1"></constructor-arg>
       </bean>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值