java - 在 spring Controller 中注入(inject)类对象的方法?

标签 java spring spring-mvc controller spring-annotations

我需要注入(inject) object spring controller 中的 Java 类通过applicaionContext.xml .我的 Controller 将是,

@Controller
public class SpringController{

private MyClass obj;

}

我知道我可以用 @Autowired 做到注释。

controller 创建对象真的好吗?通过applicaionContext.xml ?我还可以使用 <property> 在 Controller 中注入(inject)一个类的对象吗? <bean> 内的标签标签?

这真的可能吗?如果这是一个愚蠢的问题,请原谅我。

我需要知道如何在 Spring Controller 中注入(inject)一个类的对象的可能方法?

最佳答案

当然,您可以使用 @Autowired 注释来 Autowiring 关系,这可以减少在 中为 controller 定义属性和构造函数参数的需要applicationContext.xml 文件。并且还可以为类添加依赖,不需要修改配置文件。

但它也有一些缺点,比如如果您使用 @Autowired,将不会有任何明确的文档说明 Spring 管理的 bean 之间的连接细节。要了解 bean 之间的关系,您必须检查托管 bean。但是,如果您使用配置文件 来定义关系,则可以在一个地方找到关系的详细信息。

您可以通过 applicaionContext.xml 将一个类的对象注入(inject)到您的 Controller 中,如下所示:

基于构造函数的注入(inject):

@Controller
public class SpringController{

private MyClass obj;

public SpringController(MyClass obj){
this.obj=obj;
}
}

<bean id="myClassImpl" class="x.y.z.MyClassImpl"></bean>

<bean id="springController" class="x.y.z.web.controllers.SpringController">
    <constructor-arg ref="myClassImpl"></constructor-arg>
</bean>

基于 Setter 的注入(inject):

@Controller
public class SpringController{

private MyClass obj;

public void setObj(MyClass obj){
this.obj=obj;
}
public MyClass getObj(){
return obj;
}
}

<bean id="myClassImpl" class="x.y.z.MyClassImpl"></bean>

<bean id="springController" class="x.y.z.web.controllers.SpringController">
    <property name="obj" ref="myClassImpl"></property>
</bean>

关于java - 在 spring Controller 中注入(inject)类对象的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18757380/

相关文章:

spring - 以编程方式获取嵌入式 Servlet 容器信息

java - 如何用Gson反序列化子类?

java - 在 Spring MVC 2.5 中设置 URL 映射的问题

java - Spring中的组件如何扫描?是将所有对象初始化为单例还是延迟初始化?

java - 为什么要在代码中避免对象实例化而使用 Spring 框架?

java - Spring JPA native 查询调用存储过程给出 “No converter found capable of converting from type”

java - XSD "property already defined"

java - 我的 vector3 类中的线程 "AWT-EventQueue-0"java.lang.NullPointerException 中出现异常

java - 将 fileChooserParams 中的 mime 类型转换为 Intent.setType 的正确格式

java - 修复 java.lang.UnsupportedClassVersionError : Unsupported major. 次要版本 52 的问题