我正在使用Spring + Gradle + PostgreSQL,我想写一个新的Spring ServletDispatcher或HandlerMapping(我不知道哪个是最好的选择)。
要求是:根据子域名将HTTP请求重定向到不同的控制器。
例如:
HTTP 请求到:
aaa.domain.com 将被重定向到 =>websites/aaa/
bbb.domain.com =>websites/bbb/
我怎么写?
我的 Gradle 依赖项:
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-thymeleaf')
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-aop')
compile('org.springframework.boot:spring-boot-starter-data-rest')
compile('org.springframework.boot:spring-boot-starter-jdbc')
compile('org.springframework.boot:spring-boot-starter-web-services')
compile('org.springframework.boot:spring-boot-starter-websocket')
runtime('org.postgresql:postgresql')
testCompile('org.springframework.boot:spring-boot-starter-test')
非常感谢!
第一次更新
我对 Spring 进行了更深入的研究。现在我认为新的 HandlerMapping 可能是更好的选择。所以我想重写DefaultAnnotationHandlerMapping。
它是spring-webmvc包的一个类,在DispatcherServlet.properties中定义如下:
org.springframework.web.servlet.HandlerMapping=org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,\
org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping
我无法直接更改DispatcherServlet.properties。因此,如果我想用我的班级替换班级,我该怎么做?
我使用了很多 spring-boot-starter 而不是 XML 来定义我的项目。
我试图在application.properties中定义org.springframework.web.servlet.HandlerMapping但失败了。