Внедрить @Resource по имени переменной в Spring 4.3.x - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть приложение Spring 4.3.x, которое подключается к javax.jms.Queue от приложения, настроенного на сервере с использованием ссылки JNDI, например:

@Resource(mappedName="jms/myQueue")
private Queue myQueue;

Однако имя JNDI изменилось в других средах(и, к сожалению, я не очень контролирую это), поэтому я хотел бы иметь возможность изменять ссылку JNDI для каждой среды, используя что-то вроде специфических для среды файлов props.В идеале это будет выглядеть примерно так:

env.properties

JMS.MYQUEUE=jms/myQueue

jms config

@Resource(mappedName="${JMS.MYQUEUE}")
private Queue myQueue;

К сожалению,что бы Spring ни использовал для вставки в аннотацию @Resource, он не интерполирует переменные так же, как это делает что-то вроде @Value.Мне интересно, есть ли способ сделать это, что мне не хватает, без необходимости вручную выкапывать объект JNDI программно.

...