我的代码抛出这个异常: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());
添加回答
举报
0/150
提交
取消