Я знаю, что это фундаментальный вопрос о статических переменных Java, но я хотел бы получить официальный ответ, возможно, указатель на правильную документацию.
Я использую статическую переменную для кэширования результатов из базы данных.Вопрос в том, будут ли эти результаты предоставлены всем пользователям веб-приложения?
Вот мой код:
private static TreeMap<String,String> cachedOwners = null;
public static TreeMap<String,String> fetchOwners( )
throws Exception
{
if ( Owners.cachedOwners != null )
{
return Owners.cachedOwners;
}
DBHandler db = DBHandler.getInstance( );
Owners.cachedOwners = db.fetchCAROwners( );
return Owners.cachedOwners;
}
Теперь, основываясь на моих тестах, работах по кэшированию и статической переменной "cachedOwners"является общим для всех пользователей приложения.
Как это случилось?Я думал, что статическая переменная связана только с сеансом пользователя.