我可以在非 mvc class 中使用服务层 class 的方法吗?

Can I use method of service layer class in non mvc class?

我想知道我是否可以使用标有 @Service 注释的服务层对象并在非 mvc-spring class 中调用其方法之一?

说在service layer中有一个方法getUsers()调用了Dao层的getUsers()。为了在 contoller 中使用它,我必须在服务层实例中添加 @Autowired-annotation。但是如果我想在非mvc class中使用class方法getUsers(),我该怎么做呢?

为了使用服务,该对象必须容器管理。也就是说,这个对象的生命周期必须由Spring(创建,销毁,初始化,...)来管理。

因此,要在对象中注入您的服务实例,它也必须是一个 Spring bean(服务、组件、控制器...)。

所以,它可能是一个 MVC 对象,但不一定是。

另一方面,还有另一种选择:使用注释 @Configurable.

带有此注释的对象可以应用程序管理,但是Spring,使用字节代码方面,可以注入它的依赖项。因此,尽管您使用新语句创建对象,Spring 检测此调用并解析所有带注释的依赖项。

阅读此内容了解更多详情:

http://docs.spring.io/spring/docs/3.0.0.M3/spring-framework-reference/html/ch08s08.html