我最近在春天学会了自动装配的概念。当我试图理解弹簧自动装配在哪些特定情况下是有用的 我从我们的stakoverflow论坛提出的一个问题中提出了以下两个原因。
1.我想从属性文件中读取值并将它们注入bean中。只有这样我才能弄清楚如何在启动我的应用程序时这样做
用XML连接bean(并注入属性。)我最终使用了“byName”属性(因为bean也标记为@Component
)然后
将bean注入另一个类时使用@Autowired
@Qualifier("nameIChose")
。这是我编写的唯一用XML连接的bean。
2.我发现自动装配在我有一个工厂bean制作另一个bean(其实现类名称在系统中描述)的情况下很有用 属性,所以我无法定义XML中的所有连线)。我通常喜欢明确地说明我的布线;
任何人都可以给我一些上述情况的代码片段示例,这将使我对自动装配的理解更清晰吗?
答案 0 :(得分:1)
以下是将属性注入bean的示例。
使用现场注入:
@Component
public class YourBean {
@Value("${your.property.name}")
private String yourProperty;
}
使用构造函数注入:
@Component
public class YourBean2 {
private String yourProperty;
@Autowired
public YourBeans2(@Value("${your.property.name}") String yourProperty) {
this.yourProperty = yourProperty;
}
}
以下是自动装配各种bean的超级简单示例
@Component
public class Foo {
public void doSomething() {
}
}
@Component
public class Bar {
private Foo foo;
@Autowired
public Bar(Foo foo) {
this.foo = foo;
}
public void doSomethingElse() {
foo.doSomething();
}
}
在前面的示例中,不需要完成Foo和Bar的XML配置,Spring会因为@Component
注释而自动选择bean(假设当然已启用组件扫描)