spring家族常用註解

2021-10-06 10:15:49 字數 3432 閱讀 2214

通過反射來建立物件,避免通過new關鍵字

讀取配置檔案來獲取要建立的物件的全限定類名(唯一標誌)

持久層業務層

持久層呼叫jdbc,業務層呼叫持久層,表現層呼叫業務層,會存在類相互依賴的情況,需要解耦

編譯期依賴:沒有某個類,不能正常編譯

實際開發應做到,編譯期不依賴,執行時依賴

spring的ioc容器是map結構,乙個id對應乙個object

spring boot

參考筆記

註解只有乙個屬性,且屬性名是value,則value可以不寫

springboot

spring

@autowired

作用:自動按照型別注入,只要容器中有唯一的bean物件型別和要注入的變數型別匹配,就可以注入成功,在ioc容器中不考慮id,直接查詢object的類名

出現位置:可以在變數上,也可以在方法上,

匹配過程:先尋找類名一致的,在類名一致的前提下,檢視bean的id是否有和要注入變數的名字一樣的,若有,則注入,否則報錯。

@bean

作用:用於把當前方法的返回值作為bean物件存入spring的ioc容器中,預設是單例的,

屬性:

@bean

@scope('prototype')

private ***x ***x() {}

@component

在持久層、業務層和控制層中,分別採用@repository(持久層)、@service(業務層)和@controller(表現層)對分層中的類進行命名,而用@component對那些比較中立的類進行命名。

作用:將當前類存放到spring容器中

屬性:

// 以下3中情況都相同

@component(value='***')

​ @component('***')

​ @component

public class *** {}

@componentscan

作用:用於通過註解指定spring在建立容器時要掃瞄的包

屬性:

@component(value="***.***")

@component("***.***")

@configuration

作用:指定當前類是乙個配置類

@import

作用:允許從另乙個配置類中載入 @bean 定義

@configuration

@import(configa.class)

@postconstruct

作用:初始化執行方法,用於@component之類的方法上

@predestroy

作用:銷毀方法,多例spring不負責銷毀方法,只有單例負責,用於@component之類的方法上

@propertysource

作用:用於指定properties檔案的位置

@propertysource("classpath:jdbc.properties")
屬性:

@qualifier

作用:按照型別注入的基礎上再按照名稱注入,給類成員注入時不能單獨使用,但是在給方法引數注入時可以。

屬性:@scope

作用:用於指定bean的作用範圍

屬性:@value

作用:用於注入基本型別和string型別的資料

屬性:spring mvc

value

method

consumes

produces

params

headers

string getdynamicurivalue(@pathvariable string id)

​ string default() {}

​ @restcontroller

public class indexcontroller ) // 返回訊息是json型別

@responsebody

string getproduces()

​    }) // 接受訊息是json和xml型別,{} 指定多個訊息頭

string getconsumes()  }

@requestparam

作用: 處理?key=value1&key2=value2

public string getuserblog(@requestparam("id") int blogid)

​ @requestparam mapparams

// 這樣當我們訪問/user?id=123時,spring mvc幫助我們將request引數id的值繫結到了處理函式的引數blogid上。這樣就能夠輕鬆獲取使用者輸入,並根據它的值進行計算並返回了。

相信大家可能注意到了,@requestparam@pathvariable都能夠完成類似的功能——因為本質上,它們都是使用者的輸入,只不過輸入的部分不同,乙個在url路徑部分,另乙個在引數部分。要訪問一篇部落格文章,這兩種url設計都是可以的:

那麼究竟應該選擇哪一種呢?建議:

當url指向的是某一具體業務資源(或者資源列表),例如部落格,使用者時,使用@pathvariable

當url需要對資源或者資源列表進行過濾,篩選時,用@requestparam

例如我們會這樣設計url:

更多用法

一旦我們在方法中定義了@requestparam變數,如果訪問的url中不帶有相應的引數,就會丟擲異常——這是顯然的,spring嘗試幫我們進行繫結,然而沒有成功。但有的時候,引數確實不一定永遠都存在,這是我們可以通過定義required屬性:

@requestparam(name="id",required=false) // 預設是true,也就是必須傳這個引數

// 當然,在引數不存在的情況下,可能希望變數有乙個預設值:

@requestparam(name="id",required=false,defaultvalue="0")

@requestbody

如果把json作為引數傳遞,我們可以使用@requestbody接收引數,將資料轉換map

@pathvariable

是用來獲得請求url中的動態引數的

@requestheader

@cookievalue

@modelattribute

@sessionattribute

get

Spring常用註解

spring常用註解 1 引入context命名空間 在spring的配置檔案中 配置檔案如下 xml xmlns context spring context 2.5.xsd 開啟配置 spring 會自動掃瞄cn.pic包下面有註解的類,完成bean的裝配。xml xmlversion 1.0 ...

Spring常用註解

在spring中常用的註解 autowired註解 不推薦使用,建議使用 resource autowired可以對成員變數 方法和建構函式進行標註,來完成自動裝配的工作。autowired的標註位置不同,它們都會在spring在初始化這個bean時,自動裝配這個屬性。要使 autowired能夠工...

spring常用註解

1 引入context命名空間 在spring的配置檔案中 配置檔案如下 xml 收藏 xmlns context spring context 2.5.xsd 開啟配置 spring 會自動掃瞄cn.pic包下面有註解的類,完成bean的裝配。xml xmlns xmlns xsi xmlns c...