使用@Autowired
注释初始化以下类成员所需的最小配置是什么:
public class A {
@Autowired
private B b;
// ...
}
当调用A a = new A()时,我希望从预定义的bean初始化b
,而无需在代码中对其进行配置。
可能需要一些文件: A.java , web.xml , spring-context.xml (用于配置B)和< strong> jars (春天和一个包含B的罐子)。
所需的最低配置和文件内容是什么?
答案 0 :(得分:0)
根据this post,我创建了this project。让B发起的步骤:
mvn clean install
。curl -X GET http://localhost:8080/spring-autowired-1.0-SNAPSHOT/rest/a/a
。b
已初始化 - 不为空。实际班级:
@Component
@Path("/a")
public class A {
@Autowired
B b;
@GET
@Path("/a")
public String a() {
return b.toString();
}
}
*我的实现与mkyong的区别在于我的pom具有较少的依赖性,而@Autowired
成员不是接口。
答案 1 :(得分:-2)
如果出于某种原因,您无法将A类配置为应用程序上下文中的bean,则可以使用A类实现SpringBeanAutowingSupport。这适用于Web环境。
SpringBeanAutowingSupport默认构造函数从请求中查找应用程序上下文。然后它注入依赖项。
public class A extends SpringBeanAutowiringSupport{
@Autowired
private B b;
}