2015-08-13 26 views
5

İlkbahar Önyükleme uygulamamda, savaş türü olarak paketlememde, Spring MVC'yi yapılandıracağım. Anladığım kadarıyla Dispatcher Servlet'i manuel olarak yapılandırmamız gerekmiyor. Ancak, Web.xml ait i'nin eski tarz i Dispatcher Servlet yapılandırmak için kullanılan ve sonra benSpring Boot'da Dispatcher Servlet

<servlet> 
    <description> 
    </description> 
    <display-name>DispatcherServlet</display-name> 
    <servlet-name>DispatcherServlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <description>contextClass</description> 
     <param-name>contextClass</param-name> 
     <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value> 
    </init-param> 
    <init-param> 
     <description>contextConfigLocation</description> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>com.xxx.yyy.jdorderspringmvcweb.config.SpringMvcConfig</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet>  

şöyle contextClass ve contextConfigLocation geçirmek için kullanılır bu açıklama yapılması belive o SpringMvcConfig (ilkbahar mvc yapılandırmayla benim özel sınıf) Spring MVC için yapılandırma sınıfıdır ..

Ancak, Dispatcher Servlet otomatik olarak yapılandırıldıysa, önyükleme sırasında özel sınıfımı göndericiye nasıl iletebilirim Servlet? Benim Bahar Boot uygulamasında

, benim SpringMvcConfig sınıfı WebMvcConfigurerAdapter uzanır ve @Configuration sınıfı ile açıklamalı

Gerekli Yardım ...

cevap

-1

yapılandırma sınıfı aynı paket veya bir alt pakete ise ana sınıfın (@SpringBootApplication ile açıklamalıdır), bir şey yapmanıza gerek yoktur. @SpringBootApplication paket içindeki tüm bileşenleri ve tüm alt paketleri tarar. Bununla birlikte, taranan başka bir paket istiyorsanız, @ComponentScan'u kullanabilirsiniz. Bir örnek:

@Configuration 
@EnableAutoConfiguration 
@ComponentScan(basePackageClasses = {SpringSampleAppApplication.class, LemonConfig.class}) 
public class SpringSampleAppApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(SpringSampleAppApplication.class, args); 
    } 

} 

@SpringBootApplication özel bir @ComponentScan ile, üç ek açıklamaları ile değiştirilir görün.

Yapılandırma dosyalarını içe aktarmak için başka yöntemler de vardır, ancak en sık karşılaşılan senaryolarda en basitini buluyorum.

+0

Soruyu yanıtlamıyor. –

+0

Evet, değil! Neden böyle yanıt verdiğimi bilmiyorum - belki soru daha sonra düzenlenmişti? – Sanjay

0

@Configuration tarafından ek açıklamalı yapılandırma sınıfında, dispatcherServlet'inizi tanımlayabilir ve init parametresini ona geçirebilirsiniz.

@Bean 
public ServletRegistrationBean dispatcherServletRegistration() { 
    ServletRegistrationBean registrationBean = new ServletRegistrationBean(dispatcherServlet()); 
    registrationBean.addInitParameter("contextClass","org.springframework.web.context.support.AnnotationConfigWebApplicationContext"); 
    registrationBean.addInitParameter("contextConfigLocation","com.xxx.yyy.jdorderspringmvcweb.config.SpringMvcConfig"); 
    return registrationBean; 
} 

Başka bir yol parametresi oluşturmak ve daha sonra kayıt çekirdeği parametresini ayarlamak olacaktır. This akışı bunun nasıl yapılacağını gösterir.

+1

Soruyu henüz cevaplamadınız. Kodunuzda 'dispatcherServlet()' gösterilir, ancak bunun ne olduğu veya nasıl tanımlandığına dair herhangi bir gösterge verilmez - soru sorar. –

İlgili konular