Spring Bean裝配

Spring注入

Spring注入是指在啓動Spring容器加載bean配置的時候,完成對變量的賦值行爲web

經常使用的兩種注入方式:spring

  • 設值注入
  • 構造注入

Bean配置項及做用域

Bean的配置項session

  • Id
  • Class
  • Scope
  • Constructor arguments
  • Properties
  • Autowiring mode
  • lazy-initialization mode
  • Initialization/destruction method

Bean的做用域ide

  • singleton:單例,指一個Bean容器中只存在一份
  • prototype:每次請求(每次使用)建立新的實例,destroy方式不生效
  • request:每次http請求建立一個實例且僅在當前request內有效
  • session:每次http請求建立一個實例且僅在當前session內有效
  • global session:基於portlet的web中有效(portlet定義了global session),若是是在web中,通session

Bean的生命週期

定義

初始化

實現org.springframework.beans.factory.InitializingBean接口,覆蓋afterPropertiesSet方法

public class ExampleInitializingBean implements InitializingBean
{
    public void init()
    {
        // do some initialization work
    }
}

配置init-method

<bean id="exampleInitBean" class="examples.ExampleBean" init-method="init">
public class ExampleBean
{
    public void init()
    {
        // do some initialization work
    }
}

銷燬

實現org.springframework.beans/factory.DisposableBean接口,覆蓋destroy方法

public class ExampleDisposableBean implements DisposableBean
{
    @Override
    public void destroy()
    {
        // do something
    }
}

配置destroy-method

<bean id="exampleInitBean" class="examples.ExampleBean" destroy-method="cleanup">
public class ExampleBean
{
    public void cleanup()
    {
        // do some destruction work
    }
}

配置全局默認初始化、銷燬方法

<?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://wwww.springframework.org/schema/beans/spring-beans.xsd"
        default-init-method="init" default-destroy-method="destroy">
</beans>

Bean的自動裝配

  • No:不作任何操做
  • byname:根據屬性名自動裝配。此選項將檢查容器並根據名字查找與屬性徹底一致的bean,並將其與屬性自動裝配
  • byType:若是容器中存在一個與指定類型相同的bean,那麼將與該屬性自動裝配;若是存在多個該類型bean,那麼拋出異常,並指出不能使用byType方式進行自動配置;若是沒有找到相匹配的bean,則什麼事都不發生
相關文章
相關標籤/搜索