Spring學習筆記(1)
阿新 • • 發佈:2022-04-20
Spring框架介紹
-
Spring是輕量級的開源的JavaEE框架
-
Spring可以解決企業應用開發的複雜性
-
Spring有兩個核心部分:
- IOC:控制反轉,把建立物件過程交給Spring管理
- Aop:面向切面,不修改原始碼進行功能增強
-
Spring特點
- 方便解耦,簡化開發
- Aop程式設計支援
- 方便程式測試(junit4)
- 方便和其他框架及進行整合
- 方便進行事務操作
- 降低API開發
入門案例
-
匯入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>
-
建立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>
-
-
編寫測試程式碼
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容器
-
IOC概念和原理
- 控制反轉,把物件建立和物件之間的呼叫過程交給Spring進行管理
- 使用IOC目的:為了耦合度降低
- 入門案例就是IOC實現
-
IOC底層原理
- xml解析,工廠模式,反射
原始方式:
工廠模式:
IOC:
IOC介面:
-
IOC思想基於IOC容器完成,IOC容器底層就是物件工廠
-
Spring提供IOC容器實現兩種方式:(兩個介面)
都可以建立物件
-
BeanFactory:IOC容器的基本實現,是Spring內部的使用介面,不提供給開發人員使用
*載入配置檔案時候不會建立物件,獲取(使用)物件時才去建立物件(getBean())
-
ApplicationContext:BeanFactory介面的子介面,提供更多更強大的功能,一般由開發人員進行使用
*載入配置檔案時就會把配置檔案物件建立
前者實現類讀取xml配置檔案需要絕對路徑,後者只要xml檔案在 src下直接寫xml名
-