util层注入service
简介背景
在 Java 或 Spring 框架中,util 层通常用于存放工具类或辅助类,而 service 层则通常包含核心业务逻辑。在一些情况下,可能需要将 service 层注入到 util 层中,以便在工具类中调用某些业务逻辑。虽然这种做法并不是最常见的设计模式,但可以通过一些技巧来实现。
- 通过 ApplicationContext 获取
如果你坚持不想改变 Util 类的结构(例如保留静态方法),你可以通过 Spring 的 ApplicationContext 动态获取 Service 实例。
@Component
public class MyUtil {
private static ApplicationContext applicationContext;
@Autowired
public void setApplicationContext(ApplicationContext applicationContext) {
MyUtil.applicationContext = applicationContext;
}
public static String useService() {
MyService myService = applicationContext.getBean(MyService.class);
return myService.getServiceData();
}
}