Я новичок в Java Enterprise и Spring, но я хорошо разбираюсь в стандартной Java. Я просматриваю существующий проект веб-приложения. В проекте используется Tomcat / Spring / Hibernate, что, как я понимаю, довольно распространено. Он также использует DWR для удаленных вызовов методов. Мне довольно сложно разделить обязанности: за что отвечает Tomcat, за что отвечает Spring, как запрос передается от одного к другому и как основные части Spring сочетаются друг с другом. Я прочитал много документации по Spring, особенно о фасоли и фасолевой фабрике, и я все еще в процессе чтения. Любые ваши советы, ребята, будут приветствоваться, но я отвечу на некоторые конкретные вопросы.
Вопрос 1: Какое место занимает web.xml (когда он используется / вызывается и откуда вызывается)?
Пример кода 1:
<servlet>
<servlet-name>qrst</servlet-name>
<display-name>qrst Servlet</display-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
Что делает приведенный выше фрагмент (или что он вызывает)? В какой-то момент в моем веб-приложении используется qrst.jsp; это DispatcherServlet, который вызывает qrst.jsp, используя имя сервлета? Иначе каково значение имени сервлета? Что такое загрузка при запуске?
Пример кода 2:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/someLocation/some-servlet.xml
</param-value>
</context-param>
Ссылки или объяснение того, что делает вышеприведенное? Глядя на XML-файл, я вижу, что он содержит определения bean-компонентов, и я понимаю, что такое bean-компоненты и как они используются, но я не знаю других подробностей об этом и хотел бы знать.
Пример кода 3:
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR</display-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class>
<init-param>
<param-name>classes</param-name>
<param-value>
somepackage.someclass
</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
Из того, что я читал о bean-компонентах, я считаю, что эти элементы init-param - это просто параметры, которые устанавливаются в классе java сервлета. Какое значение имеет имя сервлета и как насчет нагрузки при запуске? Веб-приложение каким-то образом «знает», когда происходит вызов AJAX (dwr), а не когда веб-приложение загружается в первый раз (при первой загрузке оно должно использовать qrst.jsp). Откуда он это знает? Как он решает направить запрос в DWR, а не в qrst.jsp? Где он это делает?
Спасибо.