求助,使用IDEA创建spring项目,找不到getBean()方法

山巅一寺一壶酒,儿留 2020-06-04 12:20:15
开始学习spring,使用时无法找到getBean()方法,IDEA未使用lombok插件
...全文
3546 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
m0_46600291 2022-03-07
  • 打赏
  • 举报
回复

检查一下你的xml文件是否被忽略

追新 2021-12-10
  • 打赏
  • 举报
回复 2

这是在使用idea的时候,项目文件下的lml文件内容有所缺失导致的,这个时候需要手动在这个文件中写入对应的依赖

img

lzl好好学习 2022-03-21
  • 举报
回复
@追新 兄弟太谢谢了
潘宏践踏 2021-05-27
  • 打赏
  • 举报
回复
引用 8 楼 &&123 的回复:
打开类图看一看吧,getBean()是在BeanFactory里面的
检查一下版本
潘宏践踏 2021-05-27
  • 打赏
  • 举报
回复
打开类图看一看吧,getBean()是在BeanFactory里面的
潘宏践踏 2021-05-27
  • 打赏
  • 举报
回复
引用 5 楼 weixin_42255550 的回复:
我也遇到这样的问题,求解决方法
我的代码
package com.snowball.security.util;

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

import java.util.Map;

/**
 * @author lichao
 * @date created in 11:47 2020/12/2
 */
@Component
public class SpringContextHolder implements ApplicationContextAware {
    /**
     * 以静态变量保存ApplicationContext,可在任意代码中取出ApplicaitonContext.
     */
    private static ApplicationContext context;

    /**
     * 实现ApplicationContextAware接口的context注入函数, 将其存入静态变量.
     */

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

    /**
     * 获取applicationContext
     * @return
     */
    public ApplicationContext getApplicationContext() {
        return context;
    }

    /**
     * 通过name获取 Bean.
     * @param name
     * @return
     */
    public static Object getBean(String name){
        return context.getBean(name);
    }

    /**
     * 通过class获取Bean.
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> Map<String, T> getBeans(Class<T> clazz){
        return context.getBeansOfType(clazz);
    }

    /**
     * 通过class获取Bean.
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T getBean(Class<T> clazz){
        return context.getBean(clazz);
    }

    /**
     * 通过name,以及Clazz返回指定的Bean
     * @param name
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T getBean(String name, Class<T> clazz){
        return context.getBean(name, clazz);
    }
}
林会 2021-05-21
  • 打赏
  • 举报
回复 1
有两个ApplicationContext,是否是导错包了,正确的应该是springframwork下的那个
weixin_42255550 2021-05-19
  • 打赏
  • 举报
回复
我也遇到这样的问题,求解决方法
qq_43351198 2021-02-05
  • 打赏
  • 举报
回复
楼主解决这个问题了吗?我也遇到了
XGrscM 2020-12-30
  • 打赏
  • 举报
回复
可能是spring-context版本的问题
Zzz5270 2020-12-29
  • 打赏
  • 举报
回复
请问楼主解决了吗,我也遇到了同样的问题
azi_csdn 2020-06-04
  • 打赏
  • 举报
回复
建议看一下引入的源码内部实现,可以点进ApplicationContext或者ClassPathXmlApplicationContext里面看一下

50,759

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧