最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot中獲取IOC容器的多種方式

 更新時(shí)間:2025年09月22日 11:13:24   作者:生無謂  
本文主要介紹了Spring Boot中獲取IOC容器的多種方式,包括直接注入、實(shí)現(xiàn)ApplicationContextAware接口、通過SpringApplication.run()、借助BeanFactory及實(shí)現(xiàn)BeanFactoryAware接口,感興趣的可以了解一下

1. 直接注入ApplicationContext

@Service
public class MyService {
    
    @Autowired
    private ApplicationContext applicationContext;
    
    public void doSomething() {
        // 通過ApplicationContext獲取Bean
        UserService userService = applicationContext.getBean(UserService.class);
        // 或者通過名稱獲取
        UserService userService2 = (UserService) applicationContext.getBean("userService");
    }
}

2. 實(shí)現(xiàn)ApplicationContextAware接口

@Component
public class SpringContextUtil implements ApplicationContextAware {
    
    private static ApplicationContext applicationContext;
    
    @Override
    public void setApplicationContext(ApplicationContext context) throws BeansException {
        applicationContext = context;
    }
    
    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }
    
    public static <T> T getBean(Class<T> clazz) {
        return applicationContext.getBean(clazz);
    }
    
    public static <T> T getBean(String name, Class<T> clazz) {
        return applicationContext.getBean(name, clazz);
    }
    
    public static Object getBean(String name) {
        return applicationContext.getBean(name);
    }
}

3. 通過SpringApplication.run()獲取ApplicationContext

@SpringBootApplication
public class Application {
    
    public static void main(String[] args) {
        // 啟動(dòng)應(yīng)用并獲取ApplicationContext
        ApplicationContext context = SpringApplication.run(Application.class, args);
        
        // 直接從context中獲取Bean
        UserService userService = context.getBean(UserService.class);
        userService.doSomething();
    }
}

4. 通過BeanFactory獲取

@Service
public class MyService {
    
    @Autowired
    private BeanFactory beanFactory;
    
    public void doSomething() {
        if (beanFactory.containsBean("userService")) {
            UserService userService = (UserService) beanFactory.getBean("userService");
            // 使用userService
        }
    }
}

5. 通過實(shí)現(xiàn)BeanFactoryAware接口

@Component
public class MyComponent implements BeanFactoryAware {
    
    private BeanFactory beanFactory;
    
    @Override
    public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
        this.beanFactory = beanFactory;
    }
    
    public void doSomething() {
        UserService userService = (UserService) beanFactory.getBean("userService");
        // 使用Bean
    }
}

到此這篇關(guān)于Spring Boot中獲取IOC容器的多種方式的文章就介紹到這了,更多相關(guān)SpringBoot 獲取IOC容器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

南阳市| 瓮安县| 乌什县| 诸城市| 当雄县| 本溪| 海盐县| 贵港市| 原平市| 洛阳市| 衡阳县| 邹城市| 蒙山县| 西峡县| 平阴县| 神农架林区| 军事| 图片| 荥经县| 峡江县| 开化县| 珲春市| 德惠市| 靖边县| 黑龙江省| 高清| 色达县| 郧西县| 玛沁县| 茶陵县| 花莲县| 平邑县| 迁安市| 江门市| 克东县| 仲巴县| 婺源县| 红桥区| 泌阳县| 达州市| 宁城县|