@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 при каждом обращении заполняется с файла.

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

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

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
16 мая 2024, в 21:15
5000 руб./за проект
16 мая 2024, в 20:50
5000 руб./за проект