特殊な場合は容器にbeanを注入できない解決策

1166 ワード

@Autowiredが注入できない場合
package com.rzt.utils;

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

@Component
public class SpringUtil implements ApplicationContextAware {

    /** 
     *  IOC 
     *  
     */
    @Autowired
    private static ApplicationContext applicationContext;

    /** 
     * *  , spring  
     *  
     */  
    @Override  
    public void setApplicationContext(ApplicationContext arg0)  
            throws BeansException {
        applicationContext = arg0;  
    }  

    /** 
     *  IOC bean 
     * 
     * @param id 
     * bean id 
     * @return 
     *
     */  
    public static Object getObject(String id) {  
        Object object = null;  
        object = applicationContext.getBean(id);  
        return object;  
    }
    public static Object getObject(Class id) {
        Object object = null;
        object = applicationContext.getBean(id);
        return object;
    }
}