zoukankan      html  css  js  c++  java
  • Spring 自动化装配Bean

    声明一张cd的接口:

    public interface CompactDisc {
        public abstract void play();
    }

    实现cd接口:

    @Component("SgtPeppers")
    public class SgtPeppers implements CompactDisc {
        private String title = "Sgt.Pepper's Lonely Hearts Club Band";
        private String artist = "The Beatles";
    
        @Override
        public void play() {
            System.out.println("playing" + title + " by " + artist);
        }
    }

    声明cdplayer:

    @Component("CDplayer")//表明该类作为组件类,没必要显示的配置Bean实例,括号内为组件名
    public class CDPlayer {
        /*
        * @Autowired注解可以用在构造器上,也可以用在set方法上,也能直接放在下列代码所示地方
        * spring会满足有该注解的依赖,如果只有一个bean匹配依赖需求的话,这个bean就会被装配进来
    @Autowired 默认按类型装配 *
    */ @Autowired private CompactDisc cd; public CompactDisc getCd() { return cd; } public void setCd(CompactDisc cd) { this.cd = cd; } public void play(){ cd.play(); } }

    测试类:

    public class CDPlayerTest {
        public static void main(String[] args) {
            ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
            CDPlayer cdPlayer= (CDPlayer) context.getBean("CDplayer");
            cdPlayer.play();
        }
    }

    xml:自动扫描包,寻找有注解的类

     <context:component-scan base-package="com.xue.soundsystem"></context:component-scan>

    总结:@Component:相当于xml的bean中添加其实例,括号内为id。@Autowired会按类型寻找匹配的实例进行匹配。@Resource可以按照名字进行装配。

  • 相关阅读:
    伪类和伪元素的区别
    inline-block 空隙
    递归模版,绑定树
    lessJs
    怎样开发单页面app
    控件的开发接口的设计原理
    加载器中的预编
    linux加固脚本
    ogg同步服务配置复制和同步进程的开始文件及RBA
    tidb4.0修改参数全过程
  • 原文地址:https://www.cnblogs.com/neu-student/p/6591336.html
Copyright © 2011-2022 走看看