1. 程式人生 > >Spring 基礎知識 - 依賴註入

Spring 基礎知識 - 依賴註入

ans factory control 自己 int pac java str actor

所謂的依賴註入是指容器負責創建對象和維護對象間的依賴關系,而不是通過對象本身負責自己的創建和解決自己的依賴。

依賴註入主要目的是為了解耦,體現了一種“組合”的理念。

無論是xml配置、註解配置還是Java配置,都被稱為配置元數據,所謂的元數據即描述數據的數據。

聲明Bean的註解:

@Component組件,沒有明確的角色

@Service在業務邏輯層使用

@Repository 在數據訪問層使用

@Controller 在展現層使用

註入Bean的註解:

@Autowired: spring提供的註解

@Inject: JSR-330提供的註解

@Resource: JSP-250提供的註解

代碼演示:

1. 聲明一個業務類

package com.net888.ioc;
import org.springframework.stereotype.Service;

@Service
public class FunctionService {

    public String sayHello(String word){
        return "Hello " + word  + "!";
    }
}

2. 註入一個業務類

package com.net888.ioc;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; @Service public class UseFunctionService { @Autowired FunctionService functionService; public String SayHello(String word){ return functionService.sayHello(word); } }

3. 聲明一個配置類

package com.net888.ioc;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration; @Configuration @ComponentScan("com.net263.ioc") public class DiConfig { }

4. 測試類

package com.net888.ioc;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class RunApp {

    public static void main(String[] args){

        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(DiConfig.class);
        UseFunctionService useFunctionService = context.getBean(UseFunctionService.class);

        System.out.println(useFunctionService.SayHello("IOC... DI"));
    }
}

5. 運行結果

技術分享

Spring 基礎知識 - 依賴註入