多次使用@Autowired


问题内容

我是春天的新手,所以我可能会问一个愚蠢的问题,但是无论如何…

我已经建立了Spring MVC 4.0应用程序。

我的设置是这样的:

控制器>>服务>> DAO

在控制器级别,我使用大约4到5个不同的@Autowired变量

@Autowired
private ClientService clientService;
@Autowired
private CommentService commentService;
@Autowired
private SearchService searchService;

在服务级别I中,Autowire也有几个DAO

@Autowired
SearchDAO searchDAO;

@Autowired
private ActivityDAO activityDAO;

@Autowired
private UserService userService;

我大约有10个不同的控制器,其中大多数控制器都@Autowire提供相同的服务,所以我的问题可以吗?

是否可以@Autowire根据需要多次使用,否则会占用过多的内存?会对我的应用程序产生其他影响吗?

我使用Spring 4.0 + Hibernate JPA


问题答案:

没问题@Autowired

Autowired在Spring上下文中找到bean,并将其分配给变量。它只是引用Service / Dao bean的同一对象。它不会创建重复项。

但是,将如此多的对象注入一个类,就表明一个类做了很多事情。尽可能检查将类重构为多个类的可能性。