Spring学习笔记——第一天

Spring学习打卡

  • Spring学习笔记---第一天
  • Spring笔记 第一天
  • Spring框架
      • 引言
          • 概念: 是**轻量级**的**javaEE**解决方案,众多优秀**设计模式**的组合
          • 核心体系:
      • Spring工厂
          • 开发流程:
          • spring工厂创建对象的原理
      • Spring注入
      • IOC(Inversion of Control) 反转控制
      • DI(Dependency Injection) 依赖注入
      • FactoryBean技术
      • 控制简单对象创建的次数
      • Spring工厂创建对象的生命周期

Spring学习笔记—第一天

Spring笔记 第一天

Spring框架

引言

概念: 是轻量级javaEE解决方案,众多优秀设计模式的组合
核心体系:

Spring学习笔记——第一天_第1张图片

Spring工厂

回顾:工厂设计模式
作用:创建对象
好处:解耦合
Spring学习笔记——第一天_第2张图片

开发流程:

环境搭建

1.引入相关依赖

<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-coreartifactId>
<version>4.3.2.RELEASEversion>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-beansartifactId>
<version>4.3.2.RELEASEversion>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webartifactId>
<version>4.3.2.RELEASEversion>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-expressionartifactId>
<version>4.3.2.RELEASEversion>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-aopartifactId>
<version>4.3.2.RELEASEversion>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-contextartifactId>
<version>4.3.2.RELEASEversion>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-context-supportartifactId>
<version>4.3.2.RELEASEversion>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-aspectsartifactId>
<version>4.3.2.RELEASEversion>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-jdbcartifactId>
<version>4.3.2.RELEASEversion>
dependency>

2.引入Spring的配置文件

命名:随意 建议:applicationContext.xml

​ 放置位置:随意 建议:放置在根目录下

3.相关API

ApplicationContext 接口
实现类: ClassPathXMLApplicationContext
特点: 重量级资源 内存占用大 只创建一次 功能多 线程安全

开发步骤:
1.创建类
2.在Spring的配置文件中 配置该类的相关信息
Spring学习笔记——第一天_第3张图片
3.Spring工厂创建对象

Spring学习笔记——第一天_第4张图片

spring工厂创建对象的原理

Spring学习笔记——第一天_第5张图片

Spring注入

​ 概念: 在Spring工厂创建对象的同时,为该对象的属性赋值

​ 分类:

​ 1.Set注入
原理:底层通过调用该属性的set方法做属性赋值
前提:给该属性提供Set方法

属性注入分类:
   1.JDK类型
   i.8中基本数据类型+String

Spring学习笔记——第一天_第6张图片

  ii.数组

Spring学习笔记——第一天_第7张图片

​ iii. List

Spring学习笔记——第一天_第8张图片
iv. Set
Spring学习笔记——第一天_第9张图片

v. Map

Spring学习笔记——第一天_第10张图片

​ properties 特殊的Map 键为String 值 String
Spring学习笔记——第一天_第11张图片

​ 2.自定义类型(自建类型)
Spring学习笔记——第一天_第12张图片

​ 2.构造注入(了解)

​ 原理:调用类中的有参构造为属性做对应的注入

​ 前提:提供有参构造

Spring学习笔记——第一天_第13张图片
Spring学习笔记——第一天_第14张图片

Spring学习笔记——第一天_第15张图片

3.自动注入 autowire

​ 使用场景: 应用在自定义类型注入
autowire=“byName” 扫描Spring配置文件 通过所要注入的属性名进行匹配对应的类型 自动进行注入
Spring学习笔记——第一天_第16张图片

autowire=“byType” 扫描Spring配置文件 匹配合适的类型 自动进行注入

Spring学习笔记——第一天_第17张图片

IOC(Inversion of Control) 反转控制

​ 控制:给属性赋值的权利

​ 反转: 把给属性赋值的权利由代码反转到了配置文件中
Spring学习笔记——第一天_第18张图片

DI(Dependency Injection) 依赖注入

​ 概念: 当一个类型,需要另一个类型时,就可以把另一个类型作为该类型属性,进行对应的注入
Spring学习笔记——第一天_第19张图片

FactoryBean技术

​ 作用:创建复杂对象

Spring学习笔记——第一天_第20张图片

​ 开发步骤:

​ 1.implements FactoryBean接口

package com.baizhi.factorybean;

import org.springframework.beans.factory.FactoryBean;

import java.sql.Connection;
import java.sql.DriverManager;

//创建的复杂对象的类型
public class ConnectionFactory  implements FactoryBean<Connection> {
    /*
     *
     * 书写创建复杂对象的步骤
     *
     * */
    @Override
    public Connection getObject() throws Exception {
        Class.forName("oracle.jdbc.OracleDriver");
        Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe");
        return  connection;
    }

    /*
    *
    * 返回创建的复杂对象的类型
    *
    * */
    @Override
    public Class<?> getObjectType() {
        return  Connection.class;
    }

    /*
    *
    * 控制创建对象的次数
    * 返回值:
    *         false: 每一次都会创建新的对象
    *         true:  只会创建一次对象
    * */
    @Override
    public boolean isSingleton() {
        return false;
    }
}

2.Spring配置文件配置该类的信息

Spring学习笔记——第一天_第21张图片

控制简单对象创建的次数

       scope="singleton"  默认值   对象只创建一次
            ="prototype"           对象创建多次
            
       哪些对象只创建一次?
            ApplicationContext(Spring工厂)  SqlSessionFactory(创建一次)  DAO   Service  
       哪些对象需要创建多次?
            Connection   SqlSession    Action(struts2)  ShoppingCart  
            
            

Spring工厂创建对象的生命周期

        对象什么时候被创建?
               工厂被创建则对象被创建    (饿汉式创建)  提高效率
        对象什么时候被销毁?
               工厂关闭则对象销毁
        init-method属性:指定初始化(创建对象)时 调用的方法
        destory-method属性:对象销毁时,调用的方法

你可能感兴趣的:(spring)