У меня есть метод утилиты шифрования, который опирается на внешнюю зависимость - ключ шифра, который извлекается из файла свойств.Он может быть извлечен из текущей базы кода, которую я унаследовал, так как он основан на создании новых объектов, чтобы иметь возможность получить значение свойства в файле свойств.Например, если вы хотите получить ключ шифрования из файла свойств, он будет выглядеть следующим образом:
public synchronized static String encrypt(String someTextToEncrypt) {
String propertyValue = null;
propertyValue = getProcessCommonBase().
getProcessProperties.getProperty("CIPHER_KEY");
/*encrypt algorithm*/
return encryptedForm;
}
private synchronized static ProcessCommonBase getProcessCommonBase() {
if (processCommonBase == null) {
processCommonBase = new ProcessCommonBase();
}
return processCommonBase;
}
private static ProcessCommonBase processCommonBase;
EDITED: При разработке используется нечто вроде переменной экземпляра processCommonBaseхорошая практика, чтобы сделать?Насколько я понимаю, хорошей практикой является то, что статические переменные должны быть окончательными и не изменяться.В этом случае, однако, класс ProcessCommonBase поддерживает состояние и может быть изменен.
НОВЫЙ ВОПРОС: Если статический метод полагается на что-то внешнее, я не должен просто пометить методБазовая переменная processCommon не статична, а в Spring просто создайте для нее определение компонента?Что лучше?