亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring如何裝配bean

發布時間:2020-08-01 14:37:04 來源:億速云 閱讀:115 作者:小豬 欄目:編程語言

這篇文章主要講解了Spring如何裝配bean,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

一 前言

在XML中進行顯式配置。

在Java中進行顯式配置。

隱式的bean發現機制和自動裝配

關于xml配置不會在本篇說明,有興趣的讀者可以自行了解學習;

二 自動裝配bean

自動裝配Bean主要通過如下兩個方式實現自動裝備bean

  • 組件掃描(component scanning):Spring會自動掃描發現上下文中所創建的bean;對應java配置@ComponentScan注解,其會默認會掃描與配置類相同的包和其子包;如果是xml就是<context:component-scan>
  • 自動裝配(autowiring):Spring自動化管理bean之間的依賴關系;java配置@Autowiring注解,相當于java規范中的@Inject注解;其可以使用在任何類的任何方法上;不建議將required屬性設置為false,否則如果在bean未裝配的情況下就會報空指針異常;
  • @Component注解:賦予spring上下文組件類一個ID;如果不指定value默認就是將類名的第一個字母變為小寫形式;其相當于java規范中的@Name注解;
     

敲黑板了:

理下思路我們可以通過@Component注解使用在多個類上實現多個bean;然后通過@Autowiring使用在方法上實現bean之間的依賴注入;最后通過@ComponentScan將所有bean掃入spring應用上下文;當然里面還有許多使用的小細節,要不然很容易出錯;

實現如下

2.1 棉被類

/**
 * @Author lsc
 * <p>棉被 </p>
 */
@Component
public class Quilt {

 // 質量
 private String quality;

 public void product(){
  System.out.println("生產與中國");
 }

// 省略set/get
}

2.2 被單類

/**
 * @Author lsc
 * <p> 被單</p>
 */
@Component//相當于@Component("sheet")
public class Sheet {

 // 顏色
 private String color;
 // 長度
 private String length;


 private Quilt quilt;
 // 使用構造器注入方式將Quilt注入到Sheet,你也可以使用set方式;原則上還可以其它方法
 public Sheet(Quilt quilt){
  this.quilt = quilt;
 }
// 省略set/get

}

2.3被單配置類

/**
 * @Author lsc
 * <p>被單配置類 </p>
 */
@Configuration//告訴spring這是一個配置類
@ComponentScan//這邊的包是com.zszxz.auto 相當于@ComponentScan(basePackages = {"com.zszxz.auto"})
public class SheetConfig {
}

2.4 測試類

/**
 * @Author lsc
 * <p> </p>
 */
@RunWith(SpringJUnit4ClassRunner.class)//創建spring應用上下文
@ContextConfiguration(classes= SheetConfig.class)//加載配置類
public class SheetTest {

 @Autowired
 Sheet sheet;

 @Test
 public void sheetTest(){
  // 生產與中國
  sheet.getQuilt().product();
 }
}

三 java配置

java配置只需要通過如下注解即可完成,通常使用在引入第三方類時;

  • @Configuration注解:告訴spring這是一個配置類
  • @Bean注解:告訴spring這是一個bean,使用在方法上,默認bean的名稱就是方法名也就是前面提到的bean的ID;
     

思路:@Configuration注解聲明的配置類中使用注解@Bean,就實現了java配置;

3.1 棉類

/**
 * @Author lsc
 * <p>棉 </p>
 */
public class Cotton {

 // 質量
 private String quality;

 public void product(){
  System.out.println("cotton生產與中國");
 }
 // 省略set/get
}

3.2 毛毯

/**
 * @Author lsc
 * <p> 毛毯</p>
 */
public class Blanket {

 // 顏色
 private String color;
 // 長度
 private String length;

 // 構造器注入
 private Cotton cotton;
 @Autowired
 public Blanket(Cotton cotton){
  this.cotton = cotton;
 }
 // 省略set/get
} 

3.3 毛毯配置類

/**
 * @Author lsc
 * <p>毛毯配置類 </p>
 */
@Configuration//告訴spring這是一個配置類,spring會掃描其所有配置納入spring容器
public class BlanketConfig {

 // 將Cotton注入到spring應用上下文
 @Bean
 public Cotton cotton(){
  return new Cotton();
 }

 // 將 Cotton注入到Blanket注入到spring應用上下文
 @Bean
 public Blanket blanket(Cotton cotton){
  return new Blanket(cotton);
 }
}

3.4 測試類

/**
 * @Author lsc
 * <p> </p>
 */
@RunWith(SpringJUnit4ClassRunner.class)//創建spring應用上下文
@ContextConfiguration(classes= BlanketConfig.class)//加載配置類
public class BlanketTest {

 @Autowired
 Blanket blanket;

 @Test
 public void sheetTest(){
  // cotton生產與中國
  blanket.getCotton().product();
 }
}

四 配置結合

使用 @Import 注解能將一個配置類導入另一個配置類, 通常用來合并配置類,下面的示例使用方式更加優雅;

使用示例

/**
 * @Author lsc
 * <p> </p>
 */
@Configuration
@Import({SheetConfig.class, BlanketConfig.class})
public class MergeConfig {
}

測試示例

/**
 * @Author lsc
 * <p> </p>
 */

@RunWith(SpringJUnit4ClassRunner.class)//創建spring應用上下文
@ContextConfiguration(classes= MergeConfig.class)//加載配置類
public class MergeTest {
 @Autowired
 Blanket blanket;

 @Test
 public void sheetTest(){
  // cotton生產與中國
  blanket.getCotton().product();
 }
}

看完上述內容,是不是對Spring如何裝配bean有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

浦县| 乡宁县| 京山县| 乐昌市| 冕宁县| 班戈县| 基隆市| 宝坻区| 怀安县| 开江县| 嘉禾县| 瑞昌市| 娄烦县| 六盘水市| 安乡县| 焦作市| 瓦房店市| 武定县| 方正县| 措勤县| 遂昌县| 大英县| 林西县| 佳木斯市| 丹寨县| 大城县| 宁国市| 慈利县| 祁阳县| 万盛区| 华阴市| 班戈县| 筠连县| 甘孜县| 云阳县| 义马市| 东辽县| 正定县| 西安市| 芦溪县| 张掖市|