1. 程式人生 > 其它 >Spring的依賴注入、控制反轉

Spring的依賴注入、控制反轉

依賴注入和控制反轉

  從spring的角度來說是控制反轉,把類例項化的權力給了spring框架。
  從java程式的角度來說,controller類等元件注入java web應用程式中,java程式需要元件來出去各種請求,卻不需要管理各個元件的生命週期,元件的生命週期交給spring進行管理。

  在springmvc框架中,應用程式把springmvc框架解耦成一個具有相對獨立的元件,不需要關注這些元件何時建立,銷燬。當元件A需要使用元件B的時候,springmvc框架可以保證元件B的例項和可以隨叫隨到。

spring框架中規定的bean的5種存在範圍:scope

    single:單例,整個應用程式中,sping框架只建立一個bean例項。預設情況。
            優點是節省記憶體空間,缺點是當大量客戶訪問的時候容易造成併發問題。
    prototype:原型範圍,每次程式訪問bean時都會建立一個新的例項。
    request:每個http請求建立一個例項。
    session:每個會話建立一個例項。
    application:web應用範圍,整個web應用,spring會建立一個例項。

    signal和prototype適用於所有的程式。
    request,session,application只使用與web程式

向spring框架註冊Bean元件

1,方式一:
    用@Controller,@Service和@Respository等註解標識一個類。

2,方式二:
    在spring配置檔案或spring分支的配置檔案中使用<bean>元素註冊Bean元件
    <bean class="test.CustomerServiceImpl" scope="application"/>

3,方式三:
    在程式中用@Bean註解註冊Bean元件
        @Configuration
        public class MyConfig {
            @Bean("demoComponent")
            @Scope
            public DemoComponent create() {
                return new DemoComponent();
            }
        }