1. 程式人生 > 其它 >劍指offer-11題

劍指offer-11題

技術標籤:springjavaspringioc

一、spring 是什麼

Spring 是分層的 Java SE/EE 應用 full-stack 輕量級開源框架,以 IoC(Inverse Of Control:
反轉控制)和 AOP(Aspect Oriented Programming:面向切面程式設計)為核心,提供了展現層 Spring
MVC 和持久層 Spring JDBC 以及業務層事務管理等眾多的企業級應用技術,還能整合開源世界眾多
著名的第三方框架和類庫,逐漸成為使用最多的 Java EE 企業應用開源框架。

二、什麼是耦合

耦合性(Coupling),也叫耦合度,是對模組間關聯程度的度量。耦合的強弱取決於模組間介面的複雜性、呼叫模組的方式以及通過介面傳送資料的多少。


程式的耦合
耦合:程式間的依賴關係
包括:
類之間的依賴和方法間的依賴
解耦:
降低程式間的依賴關係
實際開發中:
應該做到:編譯期不依賴,執行時才依賴。
解耦的思路:
第一步:使用反射來建立物件,而避免使用new關鍵字。
第二步:通過讀取配置檔案來獲取要建立的物件全限定類名

三、IOC(控制反轉)

控制反轉(Inversion of Control,縮寫為IoC),是面向物件程式設計中的一種設計原則,可以用來減低計算機程式碼之間的耦合度。其中最常見的方式叫做依賴注入(Dependency Injection,簡稱DI),還有一種方式叫“依賴查詢”(Dependency Lookup)。通過控制反轉,物件在被建立的時候,由一個調控系統內所有物件的外界實體將其所依賴的物件的引用傳遞給它。也可以說,依賴被注入到物件中。

ioc 的作用:
削減計算機程式的耦合。

四.spring ioc解耦(xml檔案方式)

1.在resource下建立bean.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"
    <!--把物件的建立交給spring管理-->
    <bean id="accountService" class="com.rpf.service.impl.AccountServiceImpl"></bean>
    <bean id="accountDao" class="com.rpf.dao.impl.AccountDaoImpl"></bean>

2.建立測試類

public static void main(String[] args) {
        //獲取核心容器物件
        ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml");
         //根據id獲取bean物件
         AccountService as=(AccountService) ac.getBean("accountService");
         AccountDao ad=(AccountDao) ac.getBean("accountDao");
        System.out.println(as);
        System.out.println(ad);

結果在這裡插入圖片描述