spring深度解析 元件註冊

2021-08-28 05:12:58 字數 2530 閱讀 4304

隨著時代不斷地變遷,曾經用的最多的載入方式配置檔案方式,已經漸漸的遠離大眾的視野,所以在這個章節裡也不做過多介紹。

隨著spring boot 快速開發,以及越來越多人開始使用springcloud。大家也逐漸捨棄了傳統的spring mvc 模式。註解方式的注入的使用就逐漸廣泛起來。本章節講簡單介紹配置注入的方式和基本引數。

建立實體類person,並補充get set 方法,或者用 lombok註解替代 getset方法,這裡就列舉傳統的實體類方式。

package com.demo.bean;

public class person

public void setname(string name)

public string getid()

public void setid(string id)

}

建立spring注入類 democonfiguration 

package com.demo.config;

import com.demo.bean.person;

import com.demo.service.bookservice;

import org.springframework.context.annotation.*;

import org.springframework.stereotype.controller;

import org.springframework.stereotype.service;

@configuration

public class democonfiguration 

}

建立spring環境測試類 

package com.demo.test;

import com.demo.bean.person;

import com.demo.config.mianconfiguration;

public class demotest

}

下一步想要延續spring mvc 傳統的三層架構 

我們都知道,spring mvc 傳統需要配置包掃瞄的路徑那麼,註解的方式如何配置呢?

package com.demo.config;

import com.demo.bean.person;

import com.demo.service.bookservice;

import org.springframework.context.annotation.*;

import org.springframework.stereotype.controller;

import org.springframework.stereotype.service;

@configuration

@componentscan(value = )

public class democonfiguration 

}

按照如上配置就可以了。那麼如何配置包含過濾器和除去過濾器呢?其實兩者配置幾近相同,直有某個引數需要注意。

//配置類==配置檔案

@configuration //告訴spring這是乙個配置類

@componentscans(

value = ),

@filter(type=filtertype.assignable_type,classes=),*/

@filter(type=filtertype.custom,classes=)},usedefaultfilters =false)

} )

//@componentscan value:指定要掃瞄的包

//excludefilters = filter :指定掃瞄的時候按照什麼規則排除那些元件

//includefilters = filter :指定掃瞄的時候只需要包含哪些元件,在包含的時候需要新增引數

//usedefaultfilters = false 過濾預設的過濾器

按照註解

按照給定的型別;

使用aspectj表示式

使用正則指定

使用自定義規則(需要實現typefilter介面)

public class mainconfig

}

基本的掃瞄完成了,那麼bean的型別有哪些呢?

bean的型別總共有四種,其中常用的兩種分別是 prototype 以及 singleton

prototype 型別 是在獲取bean例項的時候對bean進行初始化,同乙個spring環境下會有多個同名bean

singleton 型別 實在註冊的時候就對bean進行初始化(不使用懶載入的情況下)

使用的註解是  @scope

而提到的懶載入就是為了節省系統資源在bean例項被呼叫時才使用  註解為 @lazy

Spring原始碼解析(四) 元件註冊4

給容器中註冊元件 1 包掃瞄 元件標註註解 controller service repository component 自己寫的類 2 bean 匯入的第三方包裡面的元件 3 import 快速給容器中匯入乙個元件 1 import 要匯入到容器中的元件 容器中就會自動註冊這個元件,id預設是全...

Spring學習 十五 元件註冊總結

給容器中註冊元件 1 包掃瞄 元件標註註解 controller service repository component 自己寫的類 2 bean 匯入的第三方包裡面的元件 3 import 快速給容器中匯入乙個元件 1 import 要匯入到容器中的元件 容器中就會自動註冊這個元件,id預設是全...

spring容器註冊元件的方式

給容器註冊元件的方式 1.包掃瞄 元件標註註解 controller servuce repostiory component 侷限自己寫的類 1 配置檔案的方式 在com.dingaimin包下的並使用 controller servuce repostiory component 註解的類會被載...