@fijirald

Как собирается и компилируется java веб-приложение + Maven + Spring MVC?

В джаве недавно, разбираюсь как строятся веб приложения с использованием Spring MVC, Hibernate и Maven. Собрал несколько хеллоу ворлдов, вроде работает, но не пойму кто, какие и в каком порядке читает файлы проекта, в результате чего в браузере открывается построенная мною html страничка.

Процесс компиляции консольных приложений вроде как не сложен. javac компилирует .java файлы, команде "java" скармливается название главного класса, в котором точкой входа служит public void main(String[] args).

А что происходит, когда мы говорим IDE выполнить наш Maven Web Application?
1. IDE сначала проверяет какая у нас система сборки? Узнает это по структуре папок и названиям файлов? Или при создания проекта эта информация уже где-то прописалась?
2. Если я правильно понял, после того как система сборки создала war или jar файл, этот файл передается серверу приложений. Получается, каждый раз когда на порт глассфиша приходит входящий request, сервер приложений сопоставляет запрошенный урл с тем war'ником, который я ему скормил? И при состоявшемся соответствии лезет внутрь этого файла?
3. Как сервер приложений понимает, что пути к файлам надо смотреть именно в web.xml? Я использую Netbeans и изначально по умолчанию проект создается вообще без него.
4. На каком этапе всего этого действа создаются в памяти объекты описанные в наших конфигах в тегах ?

На всякий случай прикладываю дерево моего проекта c756b8ae9c4e479dbd4563f4ea4ad63b.PNG

А также код моих
web.xml
<web-app ...>
         <servlet>
		<servlet-name>mvc-dispatcher</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>mvc-dispatcher</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
	</context-param>
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
</web-app>


mvc-dispatcher-servlet.xml
<beans ...>
    <context:component-scan base-package="ru.domain" />
    <bean
	class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="prefix">
		<value>/WEB-INF/pages/</value>
	</property>
	<property name="suffix">
		<value>.jsp</value>
	</property>
    </bean>
    <mvc:resources mapping="/resources/**" location="/theme_default/"  />
    <mvc:annotation-driven />
</beans>


и ссылка на Github
  • Вопрос задан
  • 1009 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект