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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

Spring之装配Bean(一)

發(fā)布時(shí)間:2024/2/28 javascript 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring之装配Bean(一) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Spring中裝配bean的三種主要方式

1.隱式的bean發(fā)現(xiàn)機(jī)制和自動(dòng)化裝配

組件掃描( component scanning) : Spring會(huì)自動(dòng)發(fā)現(xiàn)應(yīng)用上下文中所創(chuàng)建的bean。
自動(dòng)裝配( autowiring) : Spring自動(dòng)滿足bean之間的依賴。

通過@Component注入bean

import org.springframework.stereotype.Component; @Component public class SgtPeppers implements CompactDisc {private String title = "Sgt. Pepper's Lonely Hearts Club Band"; private String artist = "The Beatles";public void play() {System.out.println("Playing " + title + " by " + artist);} }

通過@Autowire構(gòu)造器注入或set方法注入

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class CDPlayer implements MediaPlayer {private CompactDisc cd;@Autowiredpublic CDPlayer(CompactDisc cd) {this.cd = cd;}public void play() {cd.play();} }

通過@ComnentScan注解啟用組件掃描,掃描類所在包以下,@Configuration聲明配置類

@Configuration @Component public class CDPlayerConfig{ }

或者直接通過xml配置啟用組件掃描,掃描指定包以下

<context:conponent-scan base-package="soundststem">

這樣,spring容器自動(dòng)從指定包下裝載含有@component的類和實(shí)例成員屬性。

2.基于Java的顯式配置

在進(jìn)行顯式配置時(shí), JavaConfig是更好的方案,因?yàn)樗鼮閺?qiáng)大、 類型安全并且對(duì)重構(gòu)友好。 因?yàn)樗褪荍ava代碼,就像應(yīng)用程序中的其他Java代碼一樣。盡管不是必須的, 但通常會(huì)將JavaConfig放到單獨(dú)的包中, 使它與其他的應(yīng)用程序邏輯分離開來。

import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class CDPlayerConfig {@Beanpublic CompactDisc compactDisc() {return new SgtPeppers();}@Beanpublic CDPlayer cdPlayer(CompactDisc compactDisc) {return new CDPlayer(compactDisc);} }

創(chuàng)建JavaConfig類的關(guān)鍵在于為其添加@Configuration注解, @Configuration注解表明這個(gè)類是一個(gè)配置類, 該類應(yīng)該包含在Spring應(yīng)用上下文中如何創(chuàng)建bean的細(xì)節(jié)。要在JavaConfig中聲明bean, 我們需要編寫一個(gè)方法, 這個(gè)方法會(huì)創(chuàng)建所需類型的實(shí)例, 然后給這個(gè)方法添加@Bean注解。@Bean注解會(huì)告訴Spring這個(gè)方法將會(huì)返回一個(gè)對(duì)象, 該對(duì)象要注冊(cè)為Spring應(yīng)用上下文中的bean。 方法體中包含了最終產(chǎn)生bean實(shí)例的邏輯。

借助JavaConfig實(shí)現(xiàn)注入
構(gòu)造方法:

@Beanpublic CDPlayer cdPlayer(CompactDisc compactDisc) {return new CDPlayer(compactDisc);}

setter方法:

@Beanpublic CDPlayer cdPlayer(CompactDisc compactDisc) {CDPlayer cdPlayer = new CDPlayer(compactDisc);cdPlayer.setCompactDisc(compactDisc);return new cdPlayer;}

3、基于XML的顯式配置

在使用XML為Spring裝配bean之前, 你需要?jiǎng)?chuàng)建一個(gè)新的配置規(guī)范。在使用JavaConfig的時(shí)候, 這意味著要?jiǎng)?chuàng)建一個(gè)帶有@Configuration注解的類, 而在XML配置中, 這意味著要?jiǎng)?chuàng)建一個(gè)XML文件, 并且要以元素為根。

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:c="http://www.springframework.org/schema/c"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> </beans>

聲明一個(gè)bean

<bean id="compactDisc" class="soundsystem.BlankDisc">

構(gòu)造器注入方式配置

<bean id="cdPlayer" class="soundsystem.CDPlayer"><constructor-arg ref="compactDisc" /></bean>

setter屬性方式注入

<bean id="cdPlayer" class="soundsystem.properties.CDPlayer"><property name="compactDisc" ref="compactDisc" /></bean>

以上這些配置方案都不是互斥的,我們可能會(huì)同時(shí)使用自動(dòng)化和顯式配置,根據(jù)自身的需求進(jìn)行選擇即可。

總結(jié)

以上是生活随笔為你收集整理的Spring之装配Bean(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。