Я пытаюсь прочитать контекстный параметр из моего файла web.xml в @Resource как:
@Resource(name=getServletContext().getInitParameter("DB_Name"))
private DataSource DB;
web.xml:
<context-param>
<param-name>DB_Name</param-name>
<param-value>samplename</param-value>
</context-param>
Но получаю ошибку значения для ресурса должны быть константами .Есть ли обходной путь для чтения имени параметра в @Resource без непосредственного его жесткого кодирования?
Я пришел к выводу, что это невозможно, но не уверен, почему: это не очень хорошая практика - жестко кодировать имя базы данных вкаждый сервелт.Я вынул @Resource и вставил его в метод init (), который работает.
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DB = (DataSource) envCtx.lookup(getServletContext().getInitParameter("DB_Name"));