我是 spring 的新用户。我正在尝试通过注释来实现依赖注入(inject)。我的 beans.xml 是:-
<!-- Add your classes base package here -->
<context:component-scan base-package="com.springaction.chapter01"/>
<bean id="greeting" class="com.springaction.chapter01.GreetingImpl">
<property name="greeting">
<value>Naveen Jakad</value>
</property>
</bean>
我要注入(inject)的bean是:-
package com.springaction.chapter01;
import org.springframework.stereotype.Service;
@Service
public class InjectBean {
private int id;
private String name;
public InjectBean() {
super();
}
//setter getter of above instance variables..
}
我想在上面注入(inject)的 bean 是:-
package com.springaction.chapter01;
import org.springframework.beans.factory.annotation.Autowired;
public class GreetingImpl implements Greeting {
private String greeting;
@Autowired
private InjectBean myBean;
public GreetingImpl() {
super();
}
public GreetingImpl(String greeting) {
super();
this.greeting = greeting;
}
public void setGreeting(String greeting) {
this.greeting = greeting;
}
@Override
public void sayGreeting() {
System.out.println(greeting + " " + myBean);
}
}
所以当我通过以下方式测试上述代码时:-
BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("config.xml"));
Greeting greeting = (Greeting)beanFactory.getBean("greeting");
greeting.sayGreeting();
我得到输出“Naveen Jakad null”,简而言之,这意味着我无法实现我的目标。所以请帮助我并让我知道我在哪里犯了错误
最佳答案
如果你想通过@Autowired注入(inject),你不需要在xml中配置它:)
您需要设置
<mvc:annotation-driven />
<context:component-scan base-package="com.your.base.package" />
这样 spring 就会知道检查注释
关于java - 通过注解进行依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8860660/