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

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

我的设置是这样的:

Controller >>服务>> DAO

在 Controller 级别,我使用大约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个不同的 Controller ,其中大多数我都使用@Autowire进行相同的服务,所以我的问题可以吗?

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

我使用Spring 4.0 + Hibernate JPA

最佳答案

@Autowired没有问题。

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

但是将如此多的对象注入(inject)一个类是一个类做了很多事情的标志。尽可能检查将类重构为多个类的可能性。

关于java - 多次使用@Autowired,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35803095/

10-10 22:30