Как я могу динамически вводить значения в аннотации @Values? (Весенняя Ява)JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как я могу динамически вводить значения в аннотации @Values? (Весенняя Ява)

Сообщение Anonymous »

application.properties содержит данную информацию:

Код: Выделить всё

book.name1 = War and Piece
book.author1 = Leo Tolstoy
book.name2 = Crime and Punishment
book.author2 = Dostoevsky
book.name3 = To Kill a Mockingbird
book.author3 = Harper Lee
И Book.java, который принимает значения из файла

Код: Выделить всё

public class Book {
String name;
String author;
static int bookid = 0;

public Book(){bookid++;}

@Value ("${book.name.concat(bookid)}")
public void setName(String name)
{this.name = name;}

@Value ("${book.author.concat(bookid)}")
public void setAuthor(String name)
{this.author = author;}

public String getBook()
{return name + " by " + author;}
}
И, наконец, класс, содержащий массив книг

Код: Выделить всё

public class UniversityLibrary implements Library{
List books;
public UniversityLibrary(ArrayList books) //books are injected by ConfigClass
{
this.books = new ArrayList();
for (Book bok: books)
{this.books.add(bok);}
}
}
Результатом System.out.println(ubilibrary.getBook(1)) является ${book.name.concat(bookid)} от ${book.author.concat(bookid) } — как и ожидалось, но поставленной задаче не соответствует. Создание одной Книги тоже не помогло бы ситуации.
Нигде не найден правильный синтаксис, чтобы это работало. Я ожидаю, что выражение в Value возьмет значение из bookid и объединит его с ${book.name..}, чтобы получить результат @Value("${book.name1}") и т. д.

Подробнее здесь: https://stackoverflow.com/questions/788 ... pring-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»