我是Spring框架的新手。我尝试在@component中使用@bean注释配置2bean。之后,我尝试getBean(按名称),得到一个NoSuchBeanDefinitionException。请帮我解决一下。
这是我的代码:-组件:
package com.example.component;
@Component
public class FactoryMethodComponent {
private static int i;
@Bean
@Qualifier("public")
public TestBean publicInstance() {
return new TestBean("publicInstance");
}
@Bean
@Qualifier("tb1")
public TestBean1 publicInstanceTB1() {
return new TestBean1(publicInstance());
}
}
<beans ...>
<context:component-scan base-package="com.example.*" />
</beans>
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:app-context.xml" })
public class ComponentBeanTest {
@Test
public void test() {
System.out.println(((TestBean1)context.getBean("tb1")).getTestBean().getMethodName());
System.out.println(publicTestBean.getMethodName());
}
}
将@component
替换为@configuration
,它指示类声明了一个或多个@bean方法,并且可以由Spring容器处理以在运行时生成bean定义和这些bean的服务请求。
@Configuration
public class FactoryMethodComponent {
private static int i;
@Bean
@Qualifier("public")
public TestBean publicInstance() {
return new TestBean("publicInstance");
}
@Bean
@Qualifier("tb1")
public TestBean1 publicInstanceTB1() {
return new TestBean1(publicInstance());
}
}
问题内容: 我了解到注释是在Spring 2.5中引入的,目的是通过使用类路径扫描摆脱xml bean的定义。 是在Spring 3.0中引入的,可以与之一起使用,以完全摆脱xml文件并改用java config。 是否有可能重新使用注释而不是引入注释?我的理解是,两种情况下的最终目标都是创建bean。 问题答案: 并做两件完全不同的事情,不应混淆。 (和和)用于使用类路径扫描自动检测和自动配置b
问题内容: 如何为bean的原始属性设置值? 由于我们有注释,注释也用于绑定实例依赖项,那么原始属性又如何呢? 问题答案: 对于基元,可以使用注释。通常的情况是,从的属性文件中加载值,然后 您还可以将值定义为bean,这是比较古老的: 然后
iam无法在运行应用程序时检索到swagger ui,http://localhost:8080/Swagger-ui.html,有人能说出原因吗?
我正在用Camel为我的Spring Boot应用程序做单元测试。当应用程序运行时,它可以得到配置为@Component的bean 我得到的豆子是这样的: 但当我进行测试时,该路径无法获取bean“ 这是我如何配置我的单元测试类: 请给出建议!!!!非常感谢
本文向大家介绍Spring中@Bean和@Component批注之间的区别。,包括了Spring中@Bean和@Component批注之间的区别。的使用技巧和注意事项,需要的朋友参考一下 Spring支持多种类型的注释,例如@ Component,@ Controller,@ service @Repository和@Bean。所有这些都可以在org.springframework.stereo