欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring裝配bean方法實例總結

 更新時間:2020年04月20日 09:41:18   作者:知識追尋者  
這篇文章主要介紹了spring裝配bean方法實例總結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

一 前言

在XML中進行顯式配置。

在Java中進行顯式配置。

隱式的bean發(fā)現(xiàn)機制和自動裝配

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

二 自動裝配bean

自動裝配Bean主要通過如下兩個方式實現(xiàn)自動裝備bean

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

敲黑板了:

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

實現(xiàn)如下

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)//創(chuàng)建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,就實現(xiàn)了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)//創(chuàng)建spring應用上下文
@ContextConfiguration(classes= BlanketConfig.class)//加載配置類
public class BlanketTest {

 @Autowired
 Blanket blanket;

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

四 配置結合

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

使用示例

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

測試示例

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

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論