• Spring装配之——JAVA代码装配Bean


    首先创建几个普通的JAVA对象,用于测试JAVA代码装配bean的功能。

    1 package soundsystemJava;
    2 
    3 //作为接口 定义了CD播放器对一盘CD所能进行的操作
    4 public interface CD {
    5     void play();
    6 }
    View Code
     1 package soundsystemJava;
     2 //接口的一个实现
     3 public class CDTest1 implements CD {
     4 
     5     private String title = "十一月的肖邦";
     6     private String artist = "JayZhou";
     7 
     8     public void play() {
     9         System.out.println("正在播放:" + title + ",由" + artist + "演唱");
    10     }
    11 }
    View Code
     1 package soundsystemJava;
     2 //播放CD
     3 public class CDPlayer {
     4     private CD cd;
     5     public CDPlayer(CD cd) {
     6         this.cd = cd;
     7     }
     8     
     9     public void play() {
    10         cd.play();
    11     }
    12 }
    View Code

    准备工作做好之后,我们现在利用JAVA代码来装配bean:

     1 package soundsystemJava;
     2 
     3 import org.springframework.context.annotation.Bean;
     4 import org.springframework.context.annotation.Configuration;
     5 
     6 @Configuration
     7 public class CDPlayerConfig {
     8     //@Bean 注解会告诉Spring这个方法将会返回一个对象
     9     //方法体中可包含最终产生bea实例的逻辑
    10     //默认情况下,bean的ID与方法名一样
    11     //@Bean(name="....")指定其他的名字
    12     @Bean
    13     public CD cdTest1() {
    14         return new CDTest1();
    15     }
    16     
    17     //注入方式之一
    18     /*@Bean
    19     public CDPlayer cdPlayer() {
    20         return new CDPlayer(cdTest1());
    21     }*/
    22     
    23     //注入方式之二  通常是引用其他bean的最佳选择
    24     @Bean
    25     public CDPlayer cdPlayer(CD cd) {
    26         return new CDPlayer(cd);
    27     }
    28 }
    View Code

    进行简单的JUnit测试:

     1 package soundsystemJava;
     2 
     3 import static org.junit.Assert.*;
     4 
     5 import org.junit.Test;
     6 import org.junit.runner.RunWith;
     7 import org.springframework.beans.factory.annotation.Autowired;
     8 import org.springframework.test.context.ContextConfiguration;
     9 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    10 
    11 //用于在测试开始时自动创建Spring上下文
    12 @RunWith(SpringJUnit4ClassRunner.class)
    13 //告诉上下文需要在CDPlayerConfig中加载配置
    14 @ContextConfiguration(classes = { CDPlayerConfig.class })
    15 public class CDPlayerTest {
    16     //自动装配
    17     @Autowired
    18     private CDPlayer player;
    19     
    20     @Autowired
    21     private CD cd;
    22 
    23     @Test
    24     public void cdShoildNotBeNull() {
    25         assertNotNull(cd);
    26     }
    27     
    28     @Test
    29     public void play() {
    30         player.play();
    31     }
    32 }
    View Code

    测试结果:

    正在播放:十一月的肖邦,由JayZhou演唱

    通过测试,装配成功。

  • 相关阅读:
    什么是IOC
    spring的作用
    什么是spring框架?
    72
    71
    70
    69
    68
    67
    66
  • 原文地址:https://www.cnblogs.com/ustc-anmin/p/10138781.html
Copyright © 2020-2023  润新知