java - Spring MVC 依赖注入(inject)理解

标签 java spring spring-mvc dependency-injection

我是 Spring MVC 的新手。我正在学习依赖注入(inject)的概念。我正在关注此链接以获取使用依赖注入(inject)的 Spring 代码示例。

Spring Example

在那个例子中,我非常清楚依赖注入(inject)的概念。但我有一个小问题,如何告诉 Spring 我想使用多个形状。在第一个示例(基于构造函数)中,他给出了对 Circle 对象的引用,以便它绘制一个圆圈。

<bean id="geometryExample1" class="com.boraji.tutorail.spring.GeometryExample1">
    <constructor-arg ref="circleShape"/>
</bean>

但是如果想同时绘制圆形、矩形和其他形状怎么办?我如何在 Spring 中告诉或配置,根据我提供的形状,它应该使用适当的形状来绘制形状。

感谢任何帮助。提前致谢。有什么建议吗?

最佳答案

请查找使用 Java 配置而不是 XML 配置的教程。如果您学会使用 Java 配置,您的生活将会变得更加轻松。

Autowiring 时,您可以指定@Qualifier并通过id引用bean,例如

// This is your circle object
@Autowired
@Qualifier("geometryExample1")
public GeometryExample1 circleShape;

如果你有

<bean id="squareExample" class="com.boraji.tutorail.spring.GeometryExample1">
    <constructor-arg ref="squareShape"/>
</bean>

...然后在您的代码中您将拥有以下内容:

// This is your square object
@Autowired
@Qualifier("squareExample")
public GeometryExample1 squareShape;

参见How to autowire by name in Spring with annotations?了解更多详细信息以及使用 Java 配置实例化 bean 的示例。

关于java - Spring MVC 依赖注入(inject)理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47797826/

相关文章:

java - 如何在我的服务层中公开我的 Dao 方法?

java - Spring Boot RestController 继承和不明确的映射问题

java - Spring 从 Http 重定向到 Https 中断 Rest Controller 测试

Spring WebApplicationInitializer 和 Jetty 8.x

java - Spring setters/getters 和可变变量

java - 未实现 Postgres 错误方法 org.postgresql.jdbc.PgConnection.createClob()

java - 使用 Java 从无效的 SOAP 1.1 消息中获取值(value)

java - 如何对 BigDecimal 值进行加法?

java - 从 JMenuBar 控制 JFrame

java - Spring MVC : RESTful web services + BlazeDS integration possible in the same web application?