1. 程式人生 > 其它 >Spring學習筆記(1)

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解析,工廠模式,反射

    原始方式:

    工廠模式:

    IOC:

    IOC介面:

    • IOC思想基於IOC容器完成,IOC容器底層就是物件工廠

    • Spring提供IOC容器實現兩種方式:(兩個介面)

      ​ 都可以建立物件

      • BeanFactory:IOC容器的基本實現,是Spring內部的使用介面,不提供給開發人員使用

        *載入配置檔案時候不會建立物件,獲取(使用)物件時才去建立物件(getBean())

      • ApplicationContext:BeanFactory介面的子介面,提供更多更強大的功能,一般由開發人員進行使用

        *載入配置檔案時就會把配置檔案物件建立

        前者實現類讀取xml配置檔案需要絕對路徑,後者只要xml檔案在 src下直接寫xml名