日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java 装配_JAVA入门[13]-Spring装配Bean

發(fā)布時間:2025/3/20 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 装配_JAVA入门[13]-Spring装配Bean 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、概要

Sping裝配bean主要有三種裝配機制:

在XML中進行顯式配置。

在Java中進行顯式配置。

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

原則:

建議盡可能地使用自動配置的機制,顯式配置越少越好。當你必須要顯式配置bean的時候(比如,有些源碼不是由你來維護的,而當你需要為這些代碼配置bean的時候),我推薦使用類型安全并且比XML更加強大的JavaConfig。最后,只有當你想要使用便利的XML命名空間,并且在JavaConfig中沒有同樣的實現(xiàn)時,才應該使用XML。

二、自動裝配

Spring從兩個角度來實現(xiàn)自動化裝配:

組件掃描(component scanning):Spring會自動發(fā)現(xiàn)應用上下文中所創(chuàng)建的bean。

自動裝配(autowiring):Spring自動滿足bean之間的依賴

1.組件掃描

@Component注解:添加注解表明該類會作為組件類,并告知Spring要為這個類創(chuàng)建bean。

package bean;

import org.springframework.stereotype.Component;

@Component

public class Category {

private int cateId;

public int getCateId() {

return this.cateId;

}

public void setCateId(int id) {

this.cateId = id;

}

@Override

public String toString() {

return " 商品類型 id=" + this.cateId;

}

}

2.啟用組件掃描兩種方式:

①使用XML來啟用組件掃描,在applicationContext.xml配置:

單元測試:

@ContextConfiguration(locations = "classpath*:applicationContext.xml")

@RunWith(SpringJUnit4ClassRunner.class)

public class testAutowireXml {

@Autowired

private Category category;

@Test

public void TestXmlBean() {

Assert.assertNotNull(category);

}

}

②使用java配置

前面的bean類不做任何調整,通過@ComponentScan注解實現(xiàn)自動掃描。例如新建java配置文件BeanConfig.java

@Configuration

@ComponentScan(basePackageClasses = bean.Category.class)

public class BeanConfig {

}

單元測試:

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(classes = BeanConfig.class)

public class testAutowireJava {

@Autowired

private Category category;

@Test

public void categoryNotNull() {

Assert.assertNotNull(category);

}

}

三、JavaConfig裝配bean

上面的BeanConfig就是用java config方式實現(xiàn)的。java Config也是一個java類,但它不應該包含任何業(yè)務邏輯,也不應該侵入到業(yè)務邏輯代碼之中,通常會將JavaConfig放到單獨的包中。

創(chuàng)建java config關鍵是使用@Configuration ,表明這個類是一個配置類,該類應該包含在Spring應用上下文中如何創(chuàng)建bean的細節(jié)。

在JavaConfig中聲明bean,我們需要編寫一個方法,這個方法會創(chuàng)建所需類型的實例,然后給這個方法添加@Bean注解。

我們新建一個config文件JavaConfig.java,是在BeanConfig.java基礎上去掉@ComponentScan注解,并添加category()返回Category實例。

@Configuration

public class JavaConfig {

@Bean

public Category category(){

return new Category();

}

}

單元測試:

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(classes = JavaConfig.class)

public class testJavaConfig {

@Autowired

private Category category;

@Test

public void testCategoryBean(){

Assert.assertNotNull(category);

}

}

四、XML方式裝配bean

在JAVA入門[3]—Spring依賴注入這篇筆記中包含了如何通過xml方式裝配bean實例。

1.構造器傳參

①首先為Category添加構造函數(shù):

public class Category {

private int cateId;

public Category() {

}

public Category(int id) {

cateId = id;

}

public int getCateId() {

return this.cateId;

}

public void setCateId(int id) {

this.cateId = id;

}

@Override

public String toString() {

return " 商品類型 id=" + this.cateId;

}

}

②applicationContext添加bean節(jié)點,為constructor-arg設置Id或者index。

③單元測試:

@ContextConfiguration(locations = "classpath*:applicationContext.xml")

@RunWith(SpringJUnit4ClassRunner.class)

public class testAutowireXml {

@Autowired

private Category category;

……

@Test

public void testId(){

Assert.assertEquals(100,category.getCateId());

}

}

④c-命名空間

這種語法用起來簡化一些。

調整②中的bean節(jié)點:

2.設置屬性 :

①通過為bean設置property實現(xiàn)屬性

②p-命名空間

前面的bean配置可以簡化為:

五、屬性占位符

Spring支持將屬性定義到外部的屬性的文件中,并使用占位符值將其插入到Spring bean中。在Spring裝配中,占位符的形式為使用“${ ... }”包裝的屬性名稱。

config.properties:

cateid=100

spring-config.xml:

classpath:properties/config.properties

總結

以上是生活随笔為你收集整理的java 装配_JAVA入门[13]-Spring装配Bean的全部內容,希望文章能夠幫你解決所遇到的問題。

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