Как получить идентификатор боба из боба в Spring?

Использование [[ -z "$var" ]] - это самый простой способ узнать, была ли переменная установлена ​​или нет, но эта опция -z не различает неустановленную переменную и переменную, установленную в пустую строку:

$ set=''
$ [[ -z "$set" ]] && echo "Set" || echo "Unset" 
Unset
$ [[ -z "$unset" ]] && echo "Set" || echo "Unset"
Unset

Лучше проверить это в соответствии с типом переменной: переменная env, параметр или обычная переменная.

Для переменной env:

[[ $(env | grep "varname=" | wc -l) -eq 1 ]] && echo "Set" || echo "Unset"

Для параметра (например, для проверки существования параметра $5):

[[ $# -ge 5 ]] && echo "Set" || echo "Unset"

Для регулярной переменной (используя вспомогательную функцию, чтобы сделать это элегантным образом):

function declare_var {
   declare -p "$1" &> /dev/null
}
declare_var "var_name" && echo "Set" || echo "Unset"

Примечания:

  • $#: дает вам количество позиционных параметров.
  • declare -p: дает определение переменной, переданной в качестве параметра. Если он существует, возвращает 0, если нет, возвращает 1 и печатает сообщение об ошибке.
  • &> /dev/null: подавляет вывод из declare -p, не влияя на его код возврата.
35
задан 29 July 2009 в 10:45
поделиться

1 ответ

Просто реализуйте интерфейс org.springframework.beans.factory.BeanNameAware , и вы получите его автоматически. У него есть один метод:

void setBeanName(String name)
50
ответ дан 27 November 2019 в 07:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: