我有一个接口IMenuItem
public interface IMenuItem {
String getIconClass();
void setIconClass(String iconClass);
String getLink();
void setLink(String link);
String getText();
void setText(String text);
}
然后我有一个接口实现
@Component
@Scope("prototype")
public class MenuItem implements IMenuItem {
private String iconClass;
private String link;
private String text;
public MenuItem(String iconClass, String link, String text) {
this.iconClass = iconClass;
this.link = link;
this.text = text;
}
//setters and getters
}
有什么方法可以仅使用IMenuItem接口从配置类创建MenuItem的多个实例?与@autowired之类的?还可以通过指定构造函数的参数来自动装配吗?
@Autowired
实际上适合这种情况。你可以自动连接特定的类(实现)或使用接口。
考虑以下示例:
public interface Item {
}
@Component("itemA")
public class ItemImplA implements Item {
}
@Component("itemB")
public class ItemImplB implements Item {
}
现在,你可以根据@Component
注释值选择对象的名称,从而选择使用其中一种实现方式
像这样:
@Autowired
private Item itemA; // ItemA
@Autowired
private Item itemB // ItemB
要多次创建同一实例,可以使用@Qualifier批注指定将使用的实现:
@Autowired
@Qualifier("itemA")
private Item item1;
如果需要使用一些特定的构造函数参数实例化这些项目,则必须为其指定XML配置文件。在这里可以找到有关使用qulifiers和自动装配的不错的教程。
问题内容: 我有一个接口IMenuItem 然后我有一个接口实现 有什么方法可以仅使用IMenuItem接口从配置类创建MenuItem的多个实例?与@autowired之类的?还可以通过指定构造函数的参数来自动装配吗? 问题答案: 实际上对于这种情况是完美的。您可以自动连接特定的类(实现)或使用接口。 考虑以下示例: 现在,您可以根据注释值选择对象的名称,从而选择使用其中一种实现方式 像这样:
我有以下课程: 应用和配置类 MyRestController类 我的实用类 当我启动应用程序并将其作为独立jar运行时,或者从IDE(Eclipse)运行时,没有任何问题,一切都按预期进行。 然而,我想写一个单元测试来测试我的MyRestController类。。。我得到了一个NPE,因为自动连接字段util为null(在MyRestController类中)。 这是我的测试课: 我肯定错过了一
我是Spring的新手。我正面临Spring-Boot的问题。我正在尝试将外部配置文件中的字段自动装配到自动装配的bean中。我有以下类 应用程序。Java语言 AppConfig。Java语言 服务接口 服务1 我无法在App类的postconstruct方法中显示服务名称变量。我这样做对吗?
我在Symfony 3.4中开发一个迷你应用程序。正在使用Guard进行身份验证过程。我已经创建了一个名为LoginForm签字机的类,它扩展了AbstractFormLogin签字机。 接收错误: 无法自动连接服务“app.security.login\u form\u authenticator”:方法“AppBundle\security\LoginFormAuthenticator:::\
我有个小问题。这可能微不足道,但我以前从未面对过。 我有一个通用接口和它的通用实现。我想自动连线,但发生了错误。以下是详细情况: 接口 实施 自动布线尝试 错误 我想让它尽可能简单。我已经检查了网络,但是我只发现了在配置中定义我的确切bean。如果可能的话,我更喜欢避免它。
我建立了一套喷口和螺栓的Storm拓扑,也使用Spring进行依赖注入。 不幸的是,尽管我已经将所有的喷口和螺栓声明为@Components,但没有一个字段自动连接。 然而,在我声明拓扑的地方,Spring运行良好,所有依赖项都被正确注入。 是因为集群吗。submitTopology(“test”,conf,builder.createTopology())将拓扑提交到自动布线不起作用的集群(在本