2016-05-12 46 views
1

如何在我的应用程序中使用的Java .class @Bean文件中重写此xml配置。在java类中重写Spring xml配置JAVA

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
     <property name="mappings"> 
      <props> 
       <prop key="/welcome.htm">welcomeController</prop> 
      </props> 
     </property> 
     <property name="interceptors"> 
      <list> 
       <ref bean="maintenanceInterceptor" /> 
       <ref bean="executeTimeInterceptor" /> 
      </list> 
     </property> 
    </bean> 

    <bean 
    class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"> 
     <property name="interceptors"> 
      <list> 
       <ref bean="executeTimeInterceptor" /> 
      </list> 
     </property> 
    </bean> 

回答

0
@Bean public SimpleUrlHandlerMapping simpleURLHandlerMapping() { 
SimpleUrlHandlerMapping mapping = new SimpleUrlHandlerMapping(); 
mapping.setOrder(Integer.MAX_VALUE - 2); 

Properties urlProperties = new Properties(); 
urlProperties.put("/welcome.htm", "welcomeController"); 

mapping.setMappings(urlProperties); 
mapping.setInterceptors(new Object[]{ maintenanceInterceptor(), executeTimeInterceptor() }); 

return mapping; } 
0

的Autowire你在你的类拦截之前你使用它。

@Autowired 
private MaintenanceInterceptor maintenanceInterceptor; 

@Autowired 
private ExecuteTimeInterceptor executeTimeInterceptor; 

@Bean 
public SimpleUrlHandlerMapping simpleUrlHandlerMapping(){ 
    SimpleUrlHandlerMapping simpleUrlHandlerMapping = new SimpleUrlHandlerMapping(); 

    //Add your mappings 
    Properties mappings = new Properties(); 
    mappings.setProperty("/welcome.htm", "welcome.htm"); 
    simpleUrlHandlerMapping.setMappings(mappings); 

    //Add your interceptors 
    List<HandlerInterceptorAdapter> interceptors = new ArrayList<>(); 
    interceptors.add(maintenanceInterceptor); 
    interceptors.add(executeTimeInterceptor); 
    simpleUrlHandlerMapping.setInterceptors(interceptors.toArray()); 

    return simpleUrlHandlerMapping; 
}