专栏首页g歌德aSpring------自动化装配Bean(三) 一、打开application.xml

Spring------自动化装配Bean(三) 一、打开application.xml

上一篇是基于java手动装配bean的实现,这一篇将通过xml手动装配bean来实现。

xml配置相对于java配置有点:

  1. xml配置更加快捷
  2. 但不宜扩展

一、打开application.xml

  1、注释掉<context:component-scan base-package="soundsystem"></context:component-scan>

<?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:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd">

    <!--  <context:component-scan base-package="soundsystem"></context:component-scan>-->
    <!-- 
        自动化的bean命名方式非常方便,但如果接下来要引用的话就会感觉被约束
        所以用id属性为每个bean创建自己的名字
     -->
    <bean id="cd" class="soundsystem.SgtPeppers"></bean>
    
    <bean id="cdPlayer" class="soundsystem.CDPlayer">
        <constructor-arg ref="cd"></constructor-arg>
    </bean>
</beans>

二、测试代码

package test;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import soundsystem.CDPlayer;
import soundsystem.CompactDisc;
import soundsystem.MediaPlayer;
import soundsystem.SgtPeppers;

public class Test {
    public static void main(String[] args) {
    //基于java类中配置上下文
    //AnnotationConfigApplicationContext context = 
            new AnnotationConfigApplicationContext(soundsystem.JavaConfig2.class); 
    //基于xml配置上下文
    ClassPathXmlApplicationContext context =
            new ClassPathXmlApplicationContext("applicationContext.xml");
    MediaPlayer cd= (MediaPlayer) context.getBean("cdPlayer");
    cd.play();
//    MediaPlayer player=context.getBean(CDPlayer.class);
//    player.play();
    
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring------自动化装配Bean(二) 一、在soundsystem 中新建JavaConfig2

    上一篇是基于 @ComponentScan自动装配Bean的实现,这一篇将通过java手动装配bean来实现。

    用户2417870
  • Spring------自动化装配Bean(一) 一、创建 CompactDisc接口和SgetPeppers实现类二、启用spring组件扫描三、编写测试类,并运行 四、补充说明

      CompactDisc接口方法为播放。SgtPeppers实现CompactDisc接口。

    用户2417870
  • Java微信公众平台开发(一)--接入微信公众平台 一、验证服务器代码编写。二、服务器端验证。

    今天正式开始微信公众平台的二次开发。网上有很多的及射入微信公众平台的教程。总的来说都差不多,当了解了接入流程解析,什么都显得理所当然。

    用户2417870
  • 在微信好友信息抓取这一块,这才是最好的python分析技巧!

    早些日子有人问我我的微信里面有一共多少朋友,我就随后拉倒了通讯录最下面就找到了微信一共有多少位好友。然后他又问我,这里面你认识多少人?

    诸葛青云
  • spring课件

    Spring的核心是轻量级(Lightweight)的容器(Container),它实现了IoC容器、非侵入性(No intrusive)的框架,并提供AOP概...

    用户2188327
  • VBA常用程序——每个表都应该有

    林万程
  • SpringBoot非官方教程 | 第十五篇:Springboot整合RabbitMQ

    这篇文章带你了解怎么整合RabbitMQ服务器,并且通过它怎么去发送和接收消息。我将构建一个springboot工程,通过RabbitTemplate去通过Me...

    方志朋
  • Spring-boot 整合RabbitMQ ------基于注解的开发

    用户5927264
  • Spring Boot 整合定时任务

    1. 在 SpringBoot 主类上使用 @EnableScheduling 开启定时调度任务

    北漂的我
  • 『中级篇』k8s基础网络Cluster Network(66)

    k8s开源社区的插件太多了,支持插件的的,很早以前docker是不支持网络插件的,k8s的网络插件可以更方便的打通容器和节点。

    IT故事会

扫码关注云+社区

领取腾讯云代金券