Spring @Autowired参数

时间:2015-03-20 08:56:18

标签: java spring spring-mvc dependency-injection autowired

我在尝试理解Spring中的@Autowired注释时遇到了一些困难。

据我所知,在某些情况下,如果我在xml文件中声明这个变量类,我可以在实例变量上声明@Autowired

在这种情况下,据我所知,我不需要实例化bean,因为它们会被Spring自动声明注入。我不明白的是:

  • 我可以在xml中声明一个或多个获取连接作为参数的DAO bean,但是如果我必须进行不同的DAO操作(例如让用户请求用户DAO然后再进行另一个操作)另一个DAO)使用相同的连接实例?
  • 在构造函数或setter方法中设置@Autowired注释有什么区别?

1 个答案:

答案 0 :(得分:0)

要在DAO中注入连接对象,所有这些都必须是spring bean(在xml中声明)。默认情况下,所有spring bean都是单例,因此两个不同的DAO将共享相同的连接实例。

关于第二个问题,您在字段级别上有第三个选项 @Autowired 。你应该使用的是主观的,但是这篇blog帖子很好地解释了这些差异,它链接了很多关于这个主题的其他帖子