2011-12-14 11 views
2

Я новичок в Spring MVC и только начал работать над этим. Мне бы хотелось узнать о контексте приложения (web-applicationcontext) и контексте, предоставленном весной i.e spring-servlet.xml, независимо от того, является ли она такой же или другой.Контекст приложения и весенний контекст такие же?

Надеюсь, кто-то может дать мне большую идею, чтобы прийти в замешательство.

ответ

0

Разница между контекстом приложения и контекстом сервлета заключается в том, что все, что указано в контексте приложения, может ссылаться в контексте сервлета, но не наоборот.

Это означает, что у вас могут быть компоненты, которые повторно используются через ваши сервлеты, указанные на уровне контекста приложения, но некоторые вещи, относящиеся только к определенному сервлету, могут быть указаны там, чтобы изолировать их от приложения и других сервлетов.

Это, если у вас есть необходимость в мелкозернистом управлении.

+0

благодаря Filip, так что если я создать отображение на прикладном уровне (внутри файла ApplicationContext) доступен внутри контекста сервлета, а? – Anshul

+0

Да, для таких вещей, как модели, к которым вы, возможно, хотите, чтобы все сервлеты имели доступ, вы указали бы их в контексте приложения. В качестве примера, если вы укажете контроллер в определенном контексте сервлета, вы не сможете разрешать контроллеры, расположенные в других контекстах сервлета, по крайней мере, не так прямо и просто. Если вы это сделаете, вы не рискуете разрешить конфликт или загрязнить свой контекст компонентами, которые не должны быть его частью. Но все это действительно так, и если вам нужен мелкозернистый контроль - большинство приложений там даже не имеют более одного контекста сервлета. –

0

Вы можете рассматривать их как файлы того же. Посмотрите на this answer для более подробной информации.

0

Контекст приложения, предоставляемый * -servlet.xml, представляет собой WebApplicationContext, см. here для получения дополнительной информации. Корневое приложение создается слушателем contextLoader.

Цитируя ссылки Спринг,

«В рамках веб MVC, каждый DispatcherServlet имеет свой собственный WebApplicationContext, который наследует все бобы уже определены в корневом WebApplicationContext.

WebApplicationContext является продолжением простой ApplicationContext, который имеет некоторые дополнительные функции, необходимые для веб-приложений. Он отличается от обычного ApplicationContext тем, что он способен решать темы (см. раздел 15.7 «Использование тем») и что он знает, с каким сервлетом он связан (по имея ссылку на ServletContext). WebApplicationContext связан в ServletContext и использует статические методы в классе RequestContextUtils, вы всегда можете найти WebApplicationContext, если вам нужен доступ к нему ».

Вы можете найти подробную информацию о контексте приложения корневой here

Смежные вопросы