Spring 註解的理解

2021-09-11 14:03:54 字數 2433 閱讀 7599

@autowired

自動注入,從spring上下文找到合適的bean來注入,預設按照型別來裝配bean,bean必須存在,如果為null,使用required屬性為false,@autowired(required=false),如果想按照名字來裝配,使用:@autowired @qualifier("beanname");特殊使用:當@autowired註解用來注入map或者list的時候:

@autowired

private mapmap = new concurrenthashmap<>();

value的泛型為strategy,則spring將注入到容器裡的bean放入value,key則為bean的名稱。如:

@component("1")

public class concretestrategy1 implements strategy

}

那麼這個map就是(1,concretestrategy1的bean)。list類似。這種方式可以用來實現策略模式,避免多個if-else。

@resource

按照名稱注入bean,使用:@resource(name="beanname"),這個註解是jdk提供的,而@autowired是spring提供的。

@controller與@restcontroller:

標識為控制層元件,返回頁面使用@controller,返回資料使用@restcontroller,@restcontroller等同於@controller+@responsebody 它會自動把物件實體轉換為json格式。

//這是使用@restcontroller,返回資料,包裝成了responsevo,異常統一處理

@restcontroller

public class restapicontroller

}//這是使用@controller,返回頁面 modelandview

@controller

public class rendercontroller ]列表頁", platform = platformenum.web)

public modelandview type(@pathvariable("typeid") long typeid, model model)

}

@service @repository

@component:

通用注釋,說明這個類是乙個spring容器管理的類,這個類將被spring ioc容器掃瞄裝配,@component("user"),「user」則作為bean的名稱,如果不配置括號裡的內容,ioc容器會把類名的第乙個字母小寫,其餘不變,作為bean名稱放入ioc容器。@controller,@service,@repository都是@component的細化

@bean

是乙個方法級別的註解,主要用在@configuration註解的類中,@bean(name="redistemplate") ,生成乙個叫redistemplate的bean,裝配到ioc容器中,如果沒有(name="redistemplate") ,那麼,方法名即為生成的bean的id,例項:

@configuration

public class redisconfig

}

@pathvariable

從request請求中接收引數,從url中取值,引數值需要在url中佔位

public responsevo dosupport(@pathvariable("id") long id) catch (zhydcommentexception e)

return resultutil.success("");

}@requestparam

從request請求中接收引數

待補充。。。。。。

Spring註解的理解

首先註解是為了解決在xml配置檔案中建立過多的bean,而讓開發人員混肴而出現 個人理解為通過類似注釋標記的方式為需要賦值的引數賦值 首先 component為父註解 元註解 類似object這個父類 service對service層進行注入 repository對dao層進行注入 controll...

spring註解的個人理解

controller service reponsitory component 都是將某個類注入到spring容器中,功能是一樣的,註解不一樣是為了達到自注釋的目的 autowired 按照名字將容器中的某個類引用過來 resource 可以按照名字也可以按照型別進行引用 效果同 autowire...

Spring註解自我理解

repository 名稱 是把dao層 資料庫相關 的類加入到bean容器中 service 名稱 是把biz層 邏輯相關 的類加入到bean容器中 controller 名稱 是把controller 控制層 的類加入到bean容器中 如果有名稱,相當於是在xml中配置的時候的id,如果不設定,...