繁体   English   中英

如何在SpringBoot中使用SimpleUrlHandlerMapping

[英]How to Use SimpleUrlHandlerMapping with SpringBoot

我正在使用SpringBoot,并想为我的自定义映射配置SimpleUrlHandlerMapping bean。 为此,下面是我编写的代码。

@Configuration
public class WebConfiguration {

    @Bean
    public SimpleUrlHandlerMapping simpleUrlHandlerMapping() {
        System.out.println("creating  SimpleUrlHandlerMapping ....");
        SimpleUrlHandlerMapping simpleUrlHandlerMapping = new SimpleUrlHandlerMapping();
        simpleUrlHandlerMapping.setOrder(0);
        Properties urlProperties = new Properties();
        urlProperties.put("/index", "myController");

        simpleUrlHandlerMapping.setMappings(urlProperties);

        return simpleUrlHandlerMapping;
    }
}

我还有一个名称为myController的Controller,其代码如下所示。

@Controller("myController")
public class MyController extends AbstractController {

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
        System.out.println("My Controller!");
        return null;
    }

}

现在按照代码,当点击http:// localhost:7171 // index时,它将在控制台上打印My Controller消息。 但是它不碰这个代码。 因为这是一个SpringBoot应用程序,并且在启动时使用myController打印此bean注册。

有人可以帮助解决此问题,并告诉我这段代码有什么问题。

提前致谢。

配置类中的@Autowire Controller Bean并将其通过Properties传递

SimpleUrlHandlerMapping是最灵活的HandlerMapping实现。 它允许在bean实例和URL之间或bean名称和URL之间进行直接和声明性映射。

让我们将请求“ / simpleUrlWelcome”和“ / * / simpleUrlWelcome”映射到“ welcome” bean: 这里

@Configuration
public class WebConfiguration {

@Autowired
private indexController index;

@Bean
public SimpleUrlHandlerMapping simpleUrlHandlerMapping() {
    System.out.println("creating  SimpleUrlHandlerMapping ....");
    SimpleUrlHandlerMapping simpleUrlHandlerMapping = new SimpleUrlHandlerMapping();
    simpleUrlHandlerMapping.setOrder(0);
    Properties<String,Object> urlProperties = new Properties<>();
    urlProperties.put("/index", index);

    simpleUrlHandlerMapping.setMappings(urlProperties);

    return simpleUrlHandlerMapping;
     }
 }

调节器

@Controller("index")
public class indexController extends AbstractController {

@Override
protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
    System.out.println("My Controller index!");
    return null;
     }

 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM