首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >春天。类加载器

春天。类加载器
EN

Stack Overflow用户
提问于 2017-12-14 00:38:41
回答 3查看 375关注 0票数 0

我有以下问题。

对我来说,有必要让实现特定接口的类自动成为beans(就像@Component一样)。

例如,我有一个带有context:component-scan base-package="com.test"com.test包,它有两个类。其中一个有注释@Component,但另一个只实现了特定的接口。

我需要一个具有此接口的类来成为一个bean,以及一个带有注释的类。

我该怎么做呢?

EN

回答 3

Stack Overflow用户

发布于 2017-12-14 00:54:58

您可以将注释@Component或@Service添加到您的类中,它将是bean,或者您可以将您的类作为@Bean添加到spring配置中

票数 0
EN

Stack Overflow用户

发布于 2017-12-14 01:01:46

有多种方法可以实现这一点

  1. 根据您的class
  2. Explicitly类型添加Spring构造型@Componenet@Serivce@Repository等在配置中定义Bean

@ }

  • Programmatically公共方法名(){ return new InterfaceType ();使用org.springframework.beans.factory.config.ConfigurableBeanFactory返回

@Configuration @DependsOn("ContextProvider") //不确定是否需要此公共类BeanConfig实现BeanFactoryAware {私有BeanFactory beanFactory;@SuppressWarning({ "rawtypes“})私有空createBean()抛出异常{if(空== beanFactory){抛出新异常(”Couldnot load Bean Factory");} configurableBeanFactory ConfigurableBeanFactory = (ConfigurableBeanFactory) beanFactory;rawtypes实现);}}

如果一个接口有多个实现,请提供一个带有Bean或构造型注释的名称,并在自动连接时使用该名称。

票数 0
EN

Stack Overflow用户

发布于 2017-12-14 01:04:52

您可以使用反射来访问实现给定接口的所有类,然后手动将它们添加到上下文中,但请不要这样做。

只需添加@Component (如果有多个实现此接口的bean,则添加@限定符(“beanName”))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47798122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档