zoukankan      html  css  js  c++  java
  • Spring------自动化装配Bean(二)

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

    手动装配相对于自动装配的优点:

    1. 可以自行定义Bean的各个属性。
    2. 添加额外的方法调度。
    3. 需一个个手动配置麻烦,工作量大。

    一、在soundsystem 中新建JavaConfig2

     1 package soundsystem;
     2 import org.springframework.context.annotation.Bean;
     3 import org.springframework.context.annotation.ComponentScan;
     4 import org.springframework.context.annotation.Configuration;
     5 
     6 @Configuration
     7 public class JavaConfig2 {
     8     @Bean
     9     public CompactDisc sgtPeppers(){
    10         
    11         System.out.println("自行扩展业务逻辑1");
    12         return new SgtPeppers();        
    13     }    
    14     @Bean
    15     public CDPlayer cdplayer(){
    16         //Cdplayer依赖于CompactDisc,在这里一起装配
    17         System.out.println("自行扩展业务逻辑2");
    18         return new CDPlayer(sgtPeppers());    
    19     }
    20 }

    二、测试java配置

      测试之前将javaConfig注释掉。附测试类

    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");
        CompactDisc cd= (CompactDisc) context.getBean("sgtPeppers");
        cd.play();
    //    MediaPlayer player=context.getBean(CDPlayer.class);
    //    player.play();
        
        }
    }
    你都没坚持,还谈什么未来
  • 相关阅读:
    微信推送给服务器的XML消息解析-springmvc 解析xml数据流
    request.getInputStream() 的两种解析方式
    微信的token验证
    springmvc 解析xml数据
    Spring 定时器 No qualifying bean of type [org.springframework.scheduling.TaskScheduler] is defined
    纯CSS实现图片
    Java线程池应用
    JavaScript 插件的书页翻转效果
    c语言中字符串函数的使用
    窗体显示类
  • 原文地址:https://www.cnblogs.com/gede/p/10890583.html
Copyright © 2011-2022 走看看