То, как меня изначально учили структурировать 3-уровневый, таково:
- дао
- домен
- Услуга
- 1010 * Utils *
- JSF (бобы)
...
Класс * er, который является инстанцируемым, не подходит ни к одному из этих пакетов, особенно к тем, где классы в основном группируют статические методы. Это может быть добавлено к услугам как побочная мысль, но это чувствует себя неловко.
С тех пор я видел более сложную структуру пакета (вероятно, заимствованную у Maven):
- константа (константы и перечисления)
- дао
- dao.impl (реализации интерфейсов)
- модель
- ресурсов (для файлов свойств и конфигурации)
- сервис
- service.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);
}
}
Как бы вы сгруппировали эти или любые другие «неклассифицируемые»?