Почему в каждом сервлете создаётся собственный экземпляр Spring bean (singleton)?

Имеется 2 сервлетa, в которых есть поля одного и того же класса DataBase:

@WebServlet("/1")
public class Servlet1 extends HttpServlet {

    private DataBase db;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, {
        //call db
    }
}

@WebServlet("/2")
public class Servlet2 extends HttpServlet {

    private DataBase db;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, {
        //call db
    }
}

Файл app-context.xml содержит singleton Spring bean класса базы данных:

<bean id="db" class="... .impl.DataBase"/>

Дальше.

С помощью методов init() сервлетов или ̶т̶а̶н̶ц̶е̶в̶ ̶с̶ ̶б̶у̶б̶н̶о̶м̶ рефлексии я добиваюсь DependecyInjection в поле каждого сервлета из app-context.xml.

Но почему-то в каждом из сервлетов создаётся собственный экземпляр класса DataBase. Хотя по дефолту bean в .xml имеет scope="singleton"

Почему я не получаю 1 экземпляр DataBase для всех сервлетов? И как этого добиться?


Ответы (0 шт):