bean实现BeanFactoryAware接口,未回调

@Component
public class MyBeanFactory implements BeanFactoryAware {
    
    private static MyBeanFactory myBeanFactory;
    
    private static BeanFactory beanFactory;
        
        //回调方法
    public void setBeanFactory(BeanFactory factory) throws BeansException {
        // TODO Auto-generated method stub
        this.beanFactory = factory;
        System.out.println("==>>>>setBeanFactory<<<<<<==");
    }

    public BeanFactory getBeanFactory() {
        return beanFactory;
    }
    
    public static MyBeanFactory getInstance(){
        
        if(myBeanFactory==null){
            myBeanFactory = (MyBeanFactory) beanFactory.getBean("myBeanFactory");
        }
        
        return myBeanFactory;
        
    }
    
    public static Object getBean(String beanName){
        
        return beanFactory.getBean(beanName);
        
    }
    
    public static Object getBean(String beanName, Class clazz){
        
        return beanFactory.getBean(beanName, clazz);
        
    }

}
<!-- 属性文件读入 -->
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath*:jdbc.properties</value>
            </list>
        </property>
    </bean>

    <!-- 使用annotation 自动注册bean,并保证@Required,@Autowired的属性被注入。此处应该缩小范围,以加快速度。 -->    
    <context:component-scan base-package="com.perlin" />
    
    <!-- dsPrototype只是作为一个原型或模板,不要在配置文件或Annotation中引用它! -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" lazy-init="true" scope="prototype">
        <property name="driverClass"><value>${jdbc.driverClassName}</value></property>
        <property name="url"><value>${jdbc.url}</value></property>      
        <property name="username"><value>${jdbc.username}</value></property>
        <property name="password"><value>${jdbc.password}</value></property>     
    </bean>

    <!-- 事务管理器配置,单数据源事务 -->
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>
    
    <bean id="myBeanFactory" class="com.perlin.dao.MyBeanFactory"></bean>

 

 以上是我自定义Bean实现BeanFactoryAware接口,以及applicationContext.xml的配置,但是ioc容器启动之后,我调用MyBeanFactory的getInstance()方法,发现beanFactory为空,直接调用getBean(String beanName)方法也是一样。不知为何?哪位高手给我解答下,我纠结了好几天了。。。