日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java注解管理_JavaSpring【四、Bean管理注解实现】

發布時間:2024/1/23 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java注解管理_JavaSpring【四、Bean管理注解实现】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前面講的Bean相關配置全部是使用xml配置文件或實現接口來實現的,接下來將比較常用的用法,使用注解實現bean的注入和管理

內容包括

ClassPath掃描與組件管理

類的自動檢測與注冊bean

context:annotation-config

@Component、@Repository、@Service、@Controller

@AutoWired、@Required

@Qualifier

@Configuration、@Bean

@ImportResource("")、@Value

@Resource

ClassPath掃描與組件管理

從spring3.0開始可以使用java注解來定義bean,而非xml,如@Configuration、@Bean、@Import、@DependsOn

@Conponent是一個通用注解,可用于任何Bean

@Repository DAO層(持久層)注解

@Service Service層(服務層)注解

@Controller MVC控制層注解

注冊在類上的注解,可以被spring自動檢測并注冊到ApplicationContext中,注冊在成員變量或方法上的注解可以被自動裝載

類的自動檢測

1、以下語句需要在springxml中配置,即可使用注解

context:annotation-config

context:component-scan(一般配置此配置,配置檢測路徑,會包含annotation-config)

2、使用過濾器進行自定義掃描

默認情況下,類被自動發信并注冊bean的條件是:使用@Component、@Repository、@Service、@Controller注解或使用@Component注解的自定義注解

可使用過濾器修改掃描規則,如用某字符替換某注解,context:include-filter、context:exclude-filter、ues-default-filter(禁用自動發現與注冊)

filter類型(type)

annotation 注解

assignable 類

aspectj

regex 正則表達式

custom

Demo

1、修改xml文件

2、在需要注冊的類上做注解(這里注解只能自動注冊類,省去了xml配置,但不能自動裝載,還是需要通過ApplicationContext獲取)

service中的dao類,因為有構造,可以自動裝載,若無構造,需使用autowired

3、測試運行

@AutoWired、@Required——自動裝載bean

AutoWired可以注解成員變量,使其自動裝載(不用使用構造)

當裝載List時,會裝載所有List泛型類型的類,若想使其有序,可使用@Order注解所有泛型類型的實現類,用1,2,3標記

若注解必須找到實現類,則可使用@Autowired(required = true) 或@Required(set方法注解)

@Qualifier——縮小范圍

定義掃描的實現類名稱,即使有其他實現類,也可以只裝配該類

Qualifier——適用于成員變量,構造,多參方法

Resource——適用于成員變量,單參setter

@Bean基于Java的容器注解

使用在xml中配置bean標簽的方式可以將類注冊到ioc容器中;使用@Configuration注解+@Bean注解可以實現同樣的效果

@ImportResource("")、@Value——資源引用

如jdbc的配置引入,可在Configuration文件上引入資源,然后對成員變量進行Value注解,讀取資源文件中的key對于的值,再使用@Bean注冊

如@ImportResource("classpath:/com/shane/spring/properties-config.xml")、@Value("${jdbc.url}")、@Value("${jdbc.username}")、@Value("${jdbc.password}")

@Resource、@PostConstruct、@PreDestory

@Resource使用與@Autowired差不多,有以下區別

1、@Autowired與@Resource都可以用來裝配bean. 都可以寫在字段上,或寫在setter方法上。

2、@Autowired默認按類型裝配(這個注解是屬業spring的),默認情況下必須要求依賴對象必須存在,如果要允許null 值,可以設置它的required屬性為false

3、@Resource(這個注解屬于J2EE的),默認安照名稱進行裝配,名稱可以通過name屬性進行指定,

如果沒有指定name屬性,當注解寫在字段上時,默認取字段名進行按照名稱查找,如果注解寫在setter方法上默認取屬性名進行裝配。 當找不到與名稱匹配的bean時才按照類型進行裝配。但是需要注意的是,如果name屬性一旦指定,就只會按照名稱進行裝配

@Inject——需要引入包,等效于Autowired,與@Named配合使用

總結

以上是生活随笔為你收集整理的java注解管理_JavaSpring【四、Bean管理注解实现】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。