java– 在Spring中使用@Inject进行字段注入

java– 在Spring中使用@Inject进行字段注入,第1张

概述我在Spring的@Inject工作中遇到了一些奇怪的行为.这个例子效果很好:@Controller @RequestMapping('/') public class HomeController { @Autowired private SomeBean someBean; @RequestMapping(method = GE

我在Spring的@Inject工作中遇到了一些奇怪的行为.
这个例子效果很好:

@Controller@RequestMapPing("/")public class HomeController {    @autowired    private SomeBean someBean;    @RequestMapPing(method = GET)    public String showHome() {        System.out.println(someBean.method());        return "home";    }}

但是如果我用@Inject替换@autowired,showHome方法将抛出NullPointerException,因为someBean为null.与二传手注射相同的事情.但是使用构造函数注入@autowired和@Inject都运行良好.

为什么会这样?

我正在使用Spring 4.3.1.
我在pom.xml中的依赖关系如下所示:

最佳答案Spring支持JSR-330标准注释,您只需将相关的jar放在类路径中.如果您正在使用maven,请将以下内容添加到您的pom.xml:

为什么构造函数注入工作?

从Spring 4.3开始,如果目标bean只定义了一个构造函数,则不再需要指定@autowired注释.由于您只有一个构造函数,因此无论您使用哪个注释,都会注入所需的依赖项.

另请查看why field injection is evil的这篇文章. 总结

以上是内存溢出为你收集整理的java – 在Spring中使用@Inject进行字段注入全部内容,希望文章能够帮你解决java – 在Spring中使用@Inject进行字段注入所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1258322.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)