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();
        
        }
    }
    你都没坚持,还谈什么未来
  • 相关阅读:
    查看windows以前连过的wifi密码
    winscp可能的替代品?
    查看windows的进程启动参数
    Ubuntu Server 安全补丁、版本升级
    AtCoder Beginner Contest 217 题解
    F. Alice and Recoloring 1&2
    E. Bored Bakry
    C. Bakry and Partitioning
    2021牛客多校 第四场
    AES解密报Given final block not properly padded
  • 原文地址:https://www.cnblogs.com/gede/p/10890583.html
Copyright © 2011-2022 走看看