@Autowired
使用注释初始化以下类成员所需的最小配置是什么:
public class A {
@Autowired
private B b;
// ...
}
调用 A a = new A() 时,我希望b
从预定义的 bean 进行初始化,而无需在代码中对其进行配置。
可能需要一些文件:A.java、web.xml、spring-context.xml(用于配置 B)和jars(spring 和包含 B 的 jar)。
最少需要的配置和文件内容是什么?
@Autowired
使用注释初始化以下类成员所需的最小配置是什么:
public class A {
@Autowired
private B b;
// ...
}
调用 A a = new A() 时,我希望b
从预定义的 bean 进行初始化,而无需在代码中对其进行配置。
可能需要一些文件:A.java、web.xml、spring-context.xml(用于配置 B)和jars(spring 和包含 B 的 jar)。
最少需要的配置和文件内容是什么?
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
成员不是接口。
如果由于某种原因您无法在应用程序上下文中将 A 类配置为 bean,您可以让 A 类实现 SpringBeanAutowingSupport。这适用于网络环境。
SpringBeanAutowingSupport 默认构造函数从请求中查找应用程序上下文。然后它注入依赖项。
public class A extends SpringBeanAutowiringSupport{
@Autowired
private B b;
}