当前位置: 代码网 > it编程>编程语言>Java > Spring Boot中获取IOC容器的多种方式

Spring Boot中获取IOC容器的多种方式

2025年09月22日 Java 我要评论
1. 直接注入applicationcontext@servicepublic class myservice { @autowired private applicationco

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. 实现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) {
        // 启动应用并获取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. 通过实现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
    }
}

到此这篇关于spring boot中获取ioc容器的多种方式的文章就介绍到这了,更多相关springboot 获取ioc容器内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com