【问题标题】:Spring injection without getBean and without annotation不带getBean且不带注解的spring注入
【发布时间】:2014-08-24 16:53:37
【问题描述】:

我正在从头开始编写我的第一个 Spring 应用程序。

我知道使用 ApplicationContext -> getBean 和注释 @autowired(和其他)注入依赖项的方法,但我正在处理现有的 Spring 项目,我不需要 getBean 和注释。

它是如何工作的?

有人知道吗?

提前致谢!

【问题讨论】:

标签: java spring dependency-injection


【解决方案1】:

最可能是基于 XML 的 bean 定义。 在定义 bean 的类路径中查找 XML。

并阅读文档。 XML-config 有很好的文档记录。

PS: 尽可能不要使用 ApplicationContext.getBean(...)...

【讨论】:

  • 是的,我尝试了 XML 配置,但它不起作用……我忘了说它在 servlet 应用程序中。我尝试在 servlet 的 DoGet() 方法中使用我的服务...
【解决方案2】:

您也可以使用构造函数注入。

public class MyBean
{
   private MyOtherBean myOtherBean;

   public MyBean(MyOtherBean myOtherBean)
   {
      this.myOtherBean = myOtherBean;
   }
}

//your spring config xml
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

<!-- Definition of your bean -->
<bean id="myBean" class="com.yourpackage.MyBean">
  <constructor-arg ref="myOtherBean"/>
</bean>

<bean id="myOtherBean" class="com.yourpackage.MyOtherBean"/>

</beans>

【讨论】:

  • 这似乎是我所做的。按属性而不是构造函数。但它不起作用......我忘了说它在一个servlet应用程序中。我尝试在 servlet 的 DoGet() 方法中使用我的服务...
  • 那么这能解决你的问题吗?否则请进一步详细说明您的问题。
猜你喜欢
  • 2010-11-12
  • 2023-03-09
  • 1970-01-01
  • 2012-04-25
  • 2019-11-03
  • 2017-02-15
  • 2012-04-14
  • 2015-01-24
  • 2017-04-10
相关资源
最近更新 更多