我需要注入(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/