当我尝试使用Rest URL访问时,Map(使用spring beans设置的值)为空

时间:2018-06-05 06:19:37

标签: java spring spring-boot singleton

我是Spring Beans的新手。我正在尝试使用map文件设置条目beans.xml并使用GET REST请求访问该值。

的beans.xml

<bean name ="book" id="book" class=" org.test.model.Book" scope = "singleton">
    <property name="id" value="123" />
    <property name="bookName" value="FirstBeanBook"></property>
</bean>
<bean name="bookservice2" id = "bookservice" class="org.test.service.BookService" scope="singleton">
    <property name="bookMap">
        <map><entry key="123" value-ref="book" /></map>
    </property>
</bean>`

在大班,

BookService bookService = (BookService) context.getBean("bookservice2");
bookService.getMap().toString(); // here it is working fine.`

我想当我尝试使用GET请求访问此地图时,它正在创建另一个BookService类的实例,该实例具有空bookMap

当我使用REST的GET请求时,请提供一些解决方案以获得相同的结果。

编辑: 处理获取请求

@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/getBook/{id}")
public Book getBook(@PathParam("id") String id) {
    return bookService.getBook(id);
}

BookService.Java

`public class BookService {
static Map<Integer, Book> bookMap = new HashMap<Integer, Book>();
//This class has Getter setter of bookmap too.
public BookService() {}

public Book getBook(String id) {
    return bookMap.get(Integer.parseInt(id));
}`

0 个答案:

没有答案