为了账号安全,请及时绑定邮箱和手机立即绑定

Spring 无法在配置文件“dev”中初始化 bean

Spring 无法在配置文件“dev”中初始化 bean

qq_花开花谢_0 2021-09-15 17:17:18
我的代码抛出这个异常:Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'Unknown' available    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:686)    at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1210)    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1089)    at core.Main.main(Main.java:38)我正在使用混合配置 - 基于 XML 和注释:开发环境:<beans profile="dev">    <context:component-scan base-package="core"/>    <context:annotation-config/>    <import resource="classpath:beans/beans.xml"/></beans>Beans.xml 上下文:包含在 XML 中初始化的其他 bean - 那里没有使用注释。<beans profile="dev,default">   <bean ...   <bean ...</beans>这是有问题的配置(请注意下面的评论):@Configuration@Profile({"dev"})public class MyConfig {    @Bean(value="Unknown")    @Description("Bean for unknown user")    public User getUnknownUser() {        User user = new User(-1);        user.setUsername("Unknown");        return user;    }}Spring 正确初始化在 XML 中定义的 bean - 这些 bean 在default配置文件中。只有未知用户在dev个人资料中。主要类:ApplicationContext applicationContext = new ClassPathXmlApplicationContext("dev.xml");applicationContext.getEnvironment().acceptsProfiles("dev");User unknown = (User)applicationContext.getBean("Unknown");LOGGER.info(unknown.toString());
查看完整描述

1 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

我发现我错过了这一行:

    applicationContext.refresh();

现在可以用了,谢谢


查看完整回答
反对 回复 2021-09-15
  • 1 回答
  • 0 关注
  • 230 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号