java - 即使设置值后, Autowiring 实例的属性仍为空

标签 java autowired

@Controller
@RequestMapping(value = "/myProject")
public class myClassController {

    @Autowired
    Mydata data;
    @RequestMapping(method = RequestMethod.GET, value = "/mydetails/{id}")
    public @ResponseBody Mydata mymethod(@PathVariable(value = "id") String id,
                                         HttpServletRequest request) {
        data.setId(id);
        return data;
    }
}
@Component
class Mydata {
    private String Id;

    public String getId() {
        return Id;
    }

    public void setId(String s) {
        this.Id= Id;
    }
} 

问题 在这里,我 Autowiring “Mydata”,并且在 mymethod() 中,我可以看到 id 在调试期间具有一些值。 设置该值后,它变为null。 即)data.getId() 返回 null。 请注意:“数据”不为空。 当我使用 new 实例化 Mydata 时,它工作正常。 我的 Autowiring 有什么问题?请帮忙..

最佳答案

这不是与 Spring 和 Autowiring 相关的错误。
这只是一个简单的赋值错误。

这里您没有将参数分配给字段:

public void setId(String s) {
    this.Id= Id;
}

您将该字段分配给它本身。没有任何效果。

你应该这么做:

public void setId(String s) {
     this.Id= s;
}

顺便说一句,如果您想遵守命名约定:变量名称应以小写字母开头(id 而不是 Id)。

关于java - 即使设置值后, Autowiring 实例的属性仍为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44483558/

相关文章:

java - 使用 Jdom 从 java 创建 xml

java - 加载多个 AdMob 视频

java - 如何使用 Spring Data 异步插入到 Cassandra 中?

java - Autowiring 层次结构类的最佳实践是什么?

Spring:无法从父上下文 Autowiring bean

java - Java 日历与 Android 日历之间有什么区别

java - 遍历 ArrayList<T> java?

java - 将 Spring 从 3.0.7 升级到 3.1.2 引发 NoSuchBeanDefinitionException

java - Spring Wiring 泛型类型的动态 bean

java - 根据条件切换自动连线服务?