@My1Name

Как POJO влияет на производительность приложения?

Пишу приложение сразу на нескольких языках (ru & en) из расчёта на один домен. Язык определяю в контроллере следующим образом:
IndexPage pIndex;
if(principal==null) {
			lang = request.getLocale().getISO3Language();
			if (lang!=null && !lang.isBlank()) {
			switch (lang) {
				case "eng" : pIndex = new IndexPage(lang); break;
				case "rus" : pIndex = new IndexPage(lang); break;
			default : pIndex = new IndexPage("eng");
			}
.....

Класс IndexPage имеет приблизительно следующий порядок:
public class IndexPage {
private static final HashMap <String, String> listDataRu;
private static final HashMap <String, String> listDataEn;
static {
	Tools tools = new Tools();
	String ru = tools.readSysFile("config-ru.dat");
	String en = tools.readSysFile("config-en.dat");
	listDataRu = setMap(ru);
	listDataEn = setMap(en);
}
public String title;
public String h2title;
public String metaDescription;
public String buttonAdd;
public String listCountry;

public IndexPage(String lang) {
  this.title = setData("title", lang);
  this.h2title = setData("h2title", lang);
  this.metaDescription = setData("metaDescription", lang);
  this.buttonAdd = setData("buttonAdd", lang);
  this.listCountry = setData("listCountry", lang);
}

Поля содержащие короткие выражения, такие как title, buttonAdd и т.п. хранятся в HashMap. А поле listCountry при каждом обращении заполняется с файла. В контроллере объект IndexPage добавляется в атрибут Model model.addAttribute("IndexPage", pIndex); и выводится на странице html <title th:text="${IndexPage.title}"></title>средствами Thymeleaf. Вопрос: Как Spring будет хранить считываемые данные с файла, которые при каждом вызове пишутся в поле listCountry? Будет ли это нагружать приложение?
  • Вопрос задан
  • 175 просмотров
Пригласить эксперта
Ответы на вопрос 2
mayton2019
@mayton2019 Куратор тега Java
Bigdata Engineer
Сделай listDataRu, listDataEng синглтоном и ничего не будет нагружать.
Ответ написан
Sputterspark
@Sputterspark
Как POJO влияет на производительность приложения?

POJO - это аббревиатура Plain Old Java Object, то есть в переводе - старый добрый java-объект. А значит ты спрашиваешь "Как язык Java влияет на производительность приложения".

А поле listCountry при каждом обращении заполняется с файла.

Вот что влияет. Читать с диска на каждый запрос - это максимально дурацкая идея.

Чего бы не использовать родные для спринга средства интернационализации?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы