我最初被教导构建 3 层的方式如下:
- 道
- 领域
- 服务
- 实用程序
- jsf(豆类)...
可实例化的 *er 类不适合这些包中的任何一个,尤其是类主要对静态方法进行分组的实用程序。可以将其添加到服务中作为一个侧面的想法,但这感觉很尴尬。
从那以后,我看到了一个更复杂的包结构(可能是从 Maven 借来的):
- 常量(硬编码常量和枚举)
- 道
- dao.impl(接口的实现)
- 模型
- 资源(用于属性和配置文件)
- 服务
- 服务.impl
- 你...
但是,我仍然看不到可以在哪里放置 *er 类,现在我看到其他类型的类弹出,例如自定义异常和 Spring 的原始模式(见下文)。一般来说,这些似乎是您通常在框架/API 中找到的类类型。
import org.springframework.context.ApplicationContext;
public class AppContext {
private static ApplicationContext ctx;
/**
* Injected from the class "ApplicationContextProvider" which is automatically
* loaded during Spring-Initialization.
*/
public static void setApplicationContext(ApplicationContext applicationContext) {
ctx = applicationContext;
}
/**
* Get access to the Spring ApplicationContext from everywhere in your Application.
*
* @return
*/
public static ApplicationContext getApplicationContext() {
return ctx;
}
}
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class ApplicationContextProvider implements ApplicationContextAware {
public void setApplicationContext(ApplicationContext ctx) throws BeansException {
// Wiring the ApplicationContext into a static method
AppContext.setApplicationContext(ctx);
}
}
您将如何对这些或任何其他“不可分类”进行分组?