3.6 @DependsOn

2019-10-14  本文已影响0人  仙境源地

chapter03/bean-autowiring

package com.apress.prospring5.ch3.annotated;
import org.springframework.stereotype.Component;
/**
 * Created by iuliana.cosmina on 2/22/17.
 */
@Component("gopher")
public class Guitar {

    public void sing(){
        System.out.println("Cm Eb Fm Ab Bb");
    }
}
package com.apress.prospring5.ch3.annotated;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Component;

/**
 * Created by iuliana.cosmina on 2/22/17.
 */
@Component("johnMayer")
@DependsOn("gopher")
public class Singer implements ApplicationContextAware{
    ApplicationContext applicationContext;

    @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext = applicationContext;
    }

    private Guitar guitar;

    public Singer(){
    }

    public void sing() {
        guitar =  applicationContext.getBean("gopher", Guitar.class);
        guitar.sing();
    }
}
<?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:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans.xsd
          http://www.springframework.org/schema/context
          http://www.springframework.org/schema/context/spring-context.xsd">
    <context:component-scan
            base-package="com.apress.prospring5.ch3.annotated"/>
</beans>
package com.apress.prospring5.ch3.annotated;
import org.springframework.context.support.GenericXmlApplicationContext;
/**
 * Created by iuliana.cosmina on 2/23/17.
 */
public class AnnotatedDependsOnDemo {
    public static void main(String... args) {
        GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
        ctx.load("classpath:spring/app-context-02.xml");
        ctx.refresh();
        Singer johnMayer = ctx.getBean("johnMayer", Singer.class);
        johnMayer.sing();
        ctx.close();
    }
}
上一篇下一篇

猜你喜欢

热点阅读