
我在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进行字段注入所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)