Spring基础_在XML配置中引用JavaConfig<五>

代码

1.CompactDisc.java

package soundsystem;

public interface CompactDisc {
  void play();
}
2.SgtPeppers.java

package soundsystem;


public class SgtPeppers implements CompactDisc {

  private String title = "怒放吧世界";  
  private String artist = "汪";
  
  public void play() {
    System.out.println("唱片名:" + title + " 音乐家: " + artist);
  }
}
3.MediaPlayer.java

package soundsystem;

public interface MediaPlayer {
  void play();
}
4.CDPlayer.java
package soundsystem;
import org.springframework.beans.factory.annotation.Autowired;

public class CDPlayer implements MediaPlayer {
  private CompactDisc cd;
  
  @Autowired
  public CDPlayer(CompactDisc cd) {
    this.cd = cd;
  }

  public void play() {
    cd.play();
  }
}
5.CDConfig.java

package soundsystem;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 注册一个光盘的bean实例,这里通过spring的xml文件加载该配置文件
 */
@Configuration
public class CDConfig {
  @Bean
  public CompactDisc compactDisc() {
    return new SgtPeppers();
  }
}
6.cdplayer-config.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">
  <!-- spring配置文件中<beans>的子元素<bean>,每个子元素定义一个Bean,并描述了Bean该如何被装配到Spring容器中。 -->
  <!-- 加载CDConfig配置文件,获取一个光盘对象实例 -->
  <bean class="soundsystem.CDConfig" />
  <!-- 直接通过装配类,获取实例bean,和上面一样 -->
  <!-- <bean id="compactDisc" class="soundsystem.SgtPeppers" /> -->	
  <bean id="cdPlayer"
        class="soundsystem.CDPlayer"
        c:cd-ref="compactDisc" />
</beans>

7.ImportJavaConfigTest.java

package test;


import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import soundsystem.MediaPlayer;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:cdplayer-config.xml")
public class ImportJavaConfigTest {
  @Autowired
  private MediaPlayer player;
  
  @Test
  public void play() {
    player.play();
  }

}

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值