在 Spring 的上下文中,一个 bean 是一个 Spring 管理的对象。这里的spring managed是指由Spring IoC容器创建、初始化、管理、销毁的对象。
每当我们用@Component 标记一个类时,Spring IOC 容器将为您的类创建对象并管理它,只要我们可以从ApplicationContext 简单地获取它,或者使用@Autowired/@Resource/@Inject 注释访问它
我们还可以使用@Controller, @Repository, @Service, @ControllerAdvice, @Configuration,@Aspect 代替@Component 来更具体地说明我们的类是服务或存储库或方面等。
我们也可以使用@Bean注解从方法返回值创建一个bean
@Configuration
public class SolrConfig {
@Value("${spring.data.solr.host}") String solrUrl;
@Bean
public SolrServer solrServer() {
return new HttpSolrServer(solrUrl);
}
@Bean(name = "solrTemplate")
public SolrTemplate solrTemplate() {
return new SolrTemplate(new HttpSolrServer(solrUrl), RULE_ENGINE_CORE);
}
}