java - 通过注解进行依赖注入(inject)

标签 java spring dependency-injection annotations

我是 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/

相关文章:

java - android EditText,单击另一个对象时移除焦点

java - 使用 IDDFS 和 GreedyBFS 的食人者和传教士

java - 如何为 Google Compute Engine 设置 GOOGLE_APPLICATION_CREDENTIALS?

java - spring batch 在作业存储库和实际任务之间使用不同的事务管理器

java - 如何检索和删除嵌入文档 spring data mongodb

scala - 带有蛋糕模式的 Scala 中的 DI

java.sql.SQLException : The server time zone value 'Hora de verano GMT' is unrecognized 异常

java - postgresql 中的 JdbcTemplate 批量更新 - 日期丢失时间?

java - 依赖注入(inject)和 JavaFX

c# - 防止简单注入(inject)器在解析未注册服务时抛出异常