Spring第一天

 

框架部分:

Spring5

SpringMVC1

Mybatis2

 

Spring

第一天:学习IOCDI

第二天:简化配置

第三天:AOP面向切面编程

第四天:AOP重点练习

第五天:JDBC整合和声明式事务

 

SSH

Sturs2(替代Servlet) 、SpringHibernate(取代JDBC操作)

SpringMVC(替代Servlet)、SpringMybatis(取代JDBC操作)

Spring框架:

特点:1.轻量级低侵入性框架 降低耦合度

2.具有整合多种三方框架的能力

2. Spring框架的IOC(控制反转)

//原来对象的创建 是由 程序员控制

  Girl g = new Girl();

//控制反转 是由Spring容器来创建

Girl g2 = Spring框架.getBean(“美女”);

 

3. 创建Spring框架的Helloworld

  1. 导入jar包 (7个)
  2. 创建业务中的类
  3. 去配置文件中添加配置内容
  4. 创建Spring容器
  5. 通过容器获取对象

 

 

Pojoentitysbeans 一样

 

3.1导入jar

 

3.2创建类

3.3添加约束文件

 

 

 

3.4创建配置文件

3.4.1最简单最常用 从别的工程复制过来

3.4.2src下面创建xml文件

 

 

 

 

3.5.通过自定义模板代码添加约束

 

 

3.6 .在配置文件里面添加内容

 

3.7.创建Spring容器 进行测试

 

 

 

  1. Spring框架创建对象的过程:

创建Spring容器对象的时候 加载了 Spring的核心配置文件,在配置文件中加载了被Spring框架管理的对象的信息,当Spring容器创建时容器所管理的对象同时创建出来,当用户需要使用对象的时候通过容器的getBean()写进去对象的id 获取对象,实际上在Spring容器中存在一个map对象 用来保存所管理的对象 用户配置的beanid 就是 map对象中的key ,用户所以可通过key去获取spring中的对象

 

  1. Spring框架获取对象的方式有两种

a) 通过ID获取

b) 通过Class(类型获取)

在工作中通过id获取更常用,因为通过类型获取有可能在配置文件中出现多个同类型的bean 会报以下错

 

  1. Spring框架创建对象的方式

3+1种方式创建对象

6.1构造方法创建对象

必须包含无参的构造方法

 

如果需要有有参构造方法 必须自己添加无参构造方法

6.2 静态工厂创建对象

通常通过工厂创建抽象类对象或接口类的实现类

bean标签中 添加一个 factory-method =”创建对象的方法名称”

6.3 实例工厂创建对象

需要在配置文件中添加两个bean标签 见下图

 

6.4 Spring工厂创建对象

让工厂类实现 FactoryBean接口并实现接口中的三个方法:

  1. getObject   返回创建的对象
  2. getObjectType 返回对象的类型
  3. isSingleton 控制是否是单例

 

总结:四种创建对象的方式中 通过构造方法创建的对象的方式最常用

  1. 别名标签

可以给spring所管理的对象起多个别名 获取对象的时候可以起到id的作用

 

  1. 单例和多例

 

如果把对象设置为多例 Spring容器不再维护对象的生命周期 并且对象的创建变成了 懒加载模式

9.懒加载

 

 

  1. Spring框架中对象的生命周期方法

 

Init为初始化方法  destroy为销毁方法

对象的生命周期:

创建对象的时候会先调用构造方法  对象创建完之后调用init方法  执行对象的各种业务方法 最后容器销毁的时候执行对象的destroy方法

 

  1. SpringDI(属性注入/依赖注入)

有两种注入方式:

10.1 set方法注入

此注入方式 依赖于属性的set方法

 

 

10.2 构造方法注入

<bean id="person" class="cn.tedu.pojo.Person" >

 <property name="name" value="诸葛亮"></property>

  <property name="age" value="18"></property>

   <property name="friends">

    <list>

    <value>蔡文姬</value>

    <value>黄忠</value>

    <value>马可波罗</value>

    </list>

    </property>

     <property name="map">

      <map>

      <entry key="aaa" value="111"></entry>

      <entry key="bbb" value="222"></entry>

      </map>

     </property>

     

     <property name="set">

      <set>

      <value>大乔</value>

      <value>小乔</value>

      <value>貂蝉</value>

      </set>

     </property>

     <property name="properties">

      <props>

      <prop key="p1">pppp1</prop>

      <prop key="p2">pppp2</prop>

      </props>

     </property>

     

     <property name="strings">

      <array>

      <value>aaa</value>

      <value>bbb</value>

      </array>

     </property>

     <property name="myDog" ref="dog"></property>

   

 

</bean>

 

 

  1. 介绍Spring框架
  2. 创建了一个Helloworld
  3. 手动导入jar7
  4. 获取对象的2id  类型
  5. 创建对象的41.构造方法创建 2.静态工厂 3.实例工厂3.spring工厂
  6. 单例 scope=singleton/prototype
  7. 懒加载  单例默认是非懒加载  多例是懒加载 全局配置
  8. 生命周期方法 init  destroy
  9. DI注入

 

 

 

 

 

 

posted @ 2018-04-23 21:01  小哥爱美食  阅读(151)  评论(0编辑  收藏  举报