初始化时引用java注解配置bean或xml配置bean

本文参考自:《Spring实战(第4版)》

 

一、初始化时java注解引用xml中配置的bean

关键注解:@ImportResource,下面举例CD播放器配置中引入CD的配置信息

 CD播放器配置类:

/**
 * @Author river66
 * @Date 2020/4/4 22:21
 * 

* CD播放器配置类 */ @Configuration @ImportResource("classpath:cd-config.xml") public class CDPlayerConfig { @Bean public CDPlayer cdPlayer(CD cd) { return new CDPlayer(cd); } }

CD类配置文件(根类路径):cd-config.xml




    
        
    

CD接口:

/**
 * @Author river66
 * @Date 2020/4/4 22:18
 * 

* CD 唱片接口 */ public interface CD { void play(); }

具体的CD类:

import com.river.boot.interfaces.CD;
import lombok.Data;

/**
 * @Author river66
 * @Date 2020/4/4 22:26
 * 

* 周杰伦唱片 */ @Data public class JayChouCD implements CD { private static final String author = "Jay Chou"; /** * 专辑名称 */ private String albumName; @Override public void play() { System.out.println(author + "'s album: " + albumName); } }

 CD播放器:

/**
 * @Author river66
 * @Date 2020/4/4 22:24
 * 

* CD播放器 */ public class CDPlayer { private CD cd; public CDPlayer(CD cd) { this.cd = cd; } public void play() { cd.play(); } }

测试打印:

Jay Chou's album: 《七里香》

 

二、初始化时在xml配置文件中引用java注解配置的bean

事实上,元素只能导入其他的XML配置文件,并没有XML元素能够导入JavaConfig类(标有:@Configuration的类

 但是,有一个你已经熟知的元素能将Java配置导入到XML配置中:元素。为了将JavaConfig类导入到XML配置中。

xml配置文件: cd-player-config.xml(删除上面的CDPlayerConfig.java文件)




    
    

 说明:

属性名以 c: ”开头,也就是命名空间的前缀。接下来就是要装配的构造器参数名(也就是 CDPlayer中的构造函数参数名:cd),在此之后是“ -ref ,这是一个命名的约定,它会告诉 Spring,正在装配的是一个 bean 的引用,这个 bean 的名字是jayChouCD,而不是字面量 “jayChouCD” 很显然,使用c- 命名空间属性要比使用 元素简练得多。
 
java配置文件: CDConfig.java删除上面的cd-config.xml文件
**
 * @Author river66
 * @Date 2020/4/4 22:15
 */
@Configuration
@ImportResource("classpath:cd-player-config.xml")
public class CDConfig {

    /**
     * 周杰伦CD唱片
     */
    @Bean
    public CD jayChouCD() {
        JayChouCD cd = new JayChouCD();
        cd.setAlbumName("《十一月的肖邦》");
        return cd;
    }
}

测试打印:

Jay Chou's album: 《十一月的肖邦》

 
 

觉得有用的老铁点个赞呗~

你可能感兴趣的:(实用篇)