Spring学习笔记(1)

Spring框架介绍

  1. Spring是轻量级的开源的JavaEE框架

  2. Spring可以解决企业应用开发的复杂性

  3. Spring有两个核心部分:

    • IOC:控制反转,把创建对象过程交给Spring管理
    • Aop:面向切面,不修改源代码进行功能增强
  4. Spring特点

    • 方便解耦,简化开发
    • Aop编程支持
    • 方便程序测试(junit4)
    • 方便和其他框架及进行整合
    • 方便进行事务操作
    • 降低API开发

入门案例

  1. 导入Spring5相关jar包

    <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>5.2.8.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>5.2.8.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>5.2.8.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-expression</artifactId>
                <version>5.2.8.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.2</version>
            </dependency>
        </dependencies>
    
  2. 创建Spring配置文件,在配置文件配置创建的对象

    • Spring配置文件使用xml格式

      <?xml version="1.0" encoding="UTF-8"?>
      <beans
              xmlns="http://www.springframework.org/schema/beans"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans.xsd">
          <!--
          bean标签:让spring创建一个对象并放置在IOC容器内
          属性:
              id : 标签该bean对象的唯一标识符,bean的名称,不能重复的
              class : 需要创建对象的类型的全限定名,spring通过反射机制创建该类的对象(要求:该类必须拥有无参构造方法)
          -->
          <bean id="user" class="com.lxk.User"></bean>
      </beans>
      
      
  3. 编写测试代码

    public class TestDemo {
        @Test
        public void test(){
            //1.加载spring配置文件
            ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
            //2.获得配置创建的对象
            User user = context.getBean("user", User.class);
            System.out.println(user);//com.lxk.User@9a7504c
            user.add();//执行力User类的add方法
        }
    }
    

IOC容器

  1. IOC概念和原理

    • 控制反转,把对象创建和对象之间的调用过程交给Spring进行管理
    • 使用IOC目的:为了耦合度降低
    • 入门案例就是IOC实现
  2. IOC底层原理

    • xml解析,工厂模式,反射

    原始方式:

    image-20220419205813296

    工厂模式:

    image-20220419210012954

    IOC:

    image-20220419210626733

    IOC接口:

    • IOC思想基于IOC容器完成,IOC容器底层就是对象工厂

    • Spring提供IOC容器实现两种方式:(两个接口)

      ​ 都可以创建对象

      • BeanFactory:IOC容器的基本实现,是Spring内部的使用接口,不提供给开发人员使用

        *加载配置文件时候不会创建对象,获取(使用)对象时才去创建对象(getBean())

      • ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员进行使用

        *加载配置文件时就会把配置文件对象创建

        image-20220419213040231

        前者实现类读取xml配置文件需要绝对路径,后者只要xml文件在 src下直接写xml名

posted on 2022-04-20 19:50  18软工五班龙向昆  阅读(14)  评论(0编辑  收藏  举报

导航