当前位置: 首页 > 知识库问答 >
问题:

使用类名注入具有单例作用域的值

苍志文
2023-03-14

我是Spring的初来乍到。我的类图是这样的

public abstract class Cache{
    refreshCache() {
      clearCache();
      createCache();
    }
    clearCache();
    createCache();
    getName();
}

@Component
@Scope("singleton")
@Qualifier("category")
class Category extends Cache implements ICategory{}

@Component
@Scope("singleton")
@Qualifier("attr")
class Attr extends Cache implements IAttr{}

@Component
@Scope("singleton")
@Qualifier("country")
class Country extends Cache implements ICountry{}
Class A {
  @inject
  Country c
}

Class B {
  @inject
  Attr attr
}

共有1个答案

许高峻
2023-03-14

“主要目标是创建一个类,该类将知道扩展Cache类的所有类,并给出一个名称(来自Cache类的getName()函数)”

只需使用@autowired或@inject创建一个集合

@Autowired
List<Cache>
 类似资料:
  • 我有一个已有的名为Legacy的类,它大部分是用旧学校的单例模式编写的。现在我想介绍一个新的领域,我想使用Guice。Legacy本身不受Guice控制,它由另一个服务类使用(在服务类内部,它调用Legacy类的getInstance()来检索Legacy对象),并且该服务类是使用Guice注入器创建的。 我尝试的是将方法注入到Legacy类中 并且在服务的模块文件中,我绑定了NewField对象

  • 我试图学习Guice,但下面的场景似乎很难。假设我有A、B和C类。我应该能够做到以下几点(注意,这个例子在某种程度上简化为实际情况): A是全球单身人士 当B创建C时,C的依赖项B必须是相同的实例,即从C的角度来看,B是单例的。 我尝试过创建儿童注射器: } 但是Guice给出了B已经绑定的错误(MainModule中提供了方法)。因此,我需要覆盖MainModule的B绑定,但这似乎不可能使用子

  • 我是Guice注入的新手。如何将类注入到将在静态方法中使用的静态变量中? 这是我想在 doLocalize() 方法中使用注入的变量 b 的类。 这是我想要对其执行guice注入的模块类。 注意:我不能改变我的模块和B类,因为它来自另一个依赖项。 我想在我的A类中注入的类

  • 本文向大家介绍简单实用的PHP防注入类实例,包括了简单实用的PHP防注入类实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了简单实用的PHP防注入类。分享给大家供大家参考。具体如下: PHP防注入注意要过滤的信息基本是get,post,然后对于sql就是我们常用的查询,插入等等sql命令了,下面我给各位整理两个简单的例子,希望这些例子能给你网站带来安全. PHP防注入类代码如下: 例子二

  • 我有一个会话范围的bean,用于UI编辑一些数据。它用@Named和@SessionScoped进行注释,所有运行都在JBoss6.2中。现在我需要一个几乎相似的编辑UI。问题是这两个UI可以并行存在。因此,为了实现完美的重用,最好使用另一个名称创建bean的新实例。不幸的是,我不知道如何以一种干净的CDI方式来实现这一点。我不太喜欢从bean继承并给它起另一个名字。这是我的想法之一。另一个想法是

  • 本文向大家介绍vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】,包括了vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了vue 使用插槽分发内容操作。分享给大家供大家参考,具体如下: 单个插槽 除非子组件模板包含至少一个 <slot> 插口,否则父组件的内容将会被丢弃。当子组件模板只有一个没有属性的插槽时,父