相关疑难解决方法(0)

Java Spring Boot:如何将我的应用程序根目录("/")映射到index.html?

我是Java和Spring的新手.如何将我的应用程序根映射http://localhost:8080/到静态index.html?如果我导航到http://localhost:8080/index.html它的工作正常.

我的app结构是:

迪尔斯

config\WebConfig.java看起来像这样:

@Configuration
@EnableWebMvc
@ComponentScan
public class WebConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations("/");
        }
}
Run Code Online (Sandbox Code Playgroud)

我试图添加registry.addResourceHandler("/").addResourceLocations("/index.html");但它失败了.

java spring spring-boot

121
推荐指数
9
解决办法
15万
查看次数

如何在Spring Boot中为所有控制器指定前缀?

我有控制器映射到/user/order:

@RestController
@RequestMapping("/users")
public class UserController {
    ...
}

@RestController
@RequestMapping("/orders")
public class OrderController {
    ...
}
Run Code Online (Sandbox Code Playgroud)

我想分别通过URL访问这些http://localhost:8080/api/usershttp://localhost:8080/api/orders.

我如何在Spring Boot中实现这一目标?

java spring spring-boot

50
推荐指数
6
解决办法
5万
查看次数

Spring Data Rest基本路径

我已经通过创建扩展RepositoryRestMvcConfiguration的Java配置类并将@RestResource添加到存储库,将Spring Data Rest(2.0)添加到现有的Spring MVC应用程序中.

是否可以更改Rest API的基本URL?例如:

http://localhost:8080/rest/customers
Run Code Online (Sandbox Code Playgroud)

代替

http://localhost:8080/customers
Run Code Online (Sandbox Code Playgroud)

我尝试使用setBaseURI覆盖configureRepositoryRestConfiguration,但它似乎不适用于响应中的所有链接.

spring-data-rest

22
推荐指数
5
解决办法
3万
查看次数

Spring引导在servlet上下文之外获取应用程序基本URL

设置如下 - 我有一个定时任务,将发送验证电子邮件,以便用户:

@Scheduled(cron = " 0 0-59/1 * * * * ")
public void sendVerificationEmails() {
    //...
}
Run Code Online (Sandbox Code Playgroud)

在那些电子邮件中,我需要包含一个返回同一webapp的链接.但是我找不到任何关于如何在没有servlet上下文的情况下获取应用程序基本URL的引用.

奖金

如果我可以在这里设置百万富翁模板解析器来处理这些链接也会有所帮助,但为此我需要一个WebContext需要一个实例的HttpServletRequest.

java spring servlets thymeleaf spring-boot

8
推荐指数
2
解决办法
1万
查看次数

在容器tomcat服务器上更改已部署(Spring Boot)战争的上下文路径.所以它不是demo-0.01-SNAPSHOT

我尝试使用许多配置部署我的站点,以使其从正在部署的战争名称进行更改.有没有办法轻松做到这一点.部署将在一个tomcat坐在其他地方.例如bitnami实例

我在application.properties中尝试了各种设置组合,但没有任何区别:

 server.servlet.context-path=/a
    server.servlet.path=/b
    spring.webservices.path=/c
    server.contextPath=/m
Run Code Online (Sandbox Code Playgroud)

战争称为demo-0.0.01-SNAPSHOT.war,当放入webapps目录时,它会创建相同的命名目录,然后该站点有一个/demo-0.0.01-SNAPSHOT路径.我认为Spring Boot的日子现在很容易,但像我这样的傻瓜还没有解决.或者人们只是使用tomcats部署嵌入式版本并立即运行它们?

(顺便说一句,我也尝试了root.xml,没有运气......除非我在我的Windows机箱上做错了,先在我的开发盒上进行测试,然后在linux上进行部署)

任何帮助,将不胜感激.

谢谢

java deployment spring tomcat spring-boot

8
推荐指数
2
解决办法
9296
查看次数

如何为 com.myproject.api 下的所有控制器添加“api”前缀?

我试图找到它,但我发现了许多不同的场景,但不是这个。

我想要做的是为 com.myproject.api 下控制器中的所有路由添加“/api/”前缀。我希望包 com.myapp.api 下的所有控制器都使用“/api/*”,而 com.myapp.web 下的所有控制器都没有前缀

Spring / Spring Boot 有可能吗?

java spring spring-mvc spring-webflow spring-boot

6
推荐指数
2
解决办法
4323
查看次数

Spring Boot应用程序启动时没有正确的应用程序名称

跑步时

./mvnw spring-boot:run
Run Code Online (Sandbox Code Playgroud)

当前的Spring Boot应用程序可以在浏览器中使用当前URL打开

http://localhost:8080/
Run Code Online (Sandbox Code Playgroud)

但不是

http://localhost:8080/AppName
Run Code Online (Sandbox Code Playgroud)

因此,即使在Swagger中,API也必须像这样检索

http://localhost:8080/api/swagger.json
Run Code Online (Sandbox Code Playgroud)

代替这个

http://localhost:8080/AppName/api/swagger.json
Run Code Online (Sandbox Code Playgroud)

那么如何AppName在上下文中添加?在以前的web.xml基于xml的日子里很容易,在基于Java的配置中我添加了

spring.application.name=AppName
Run Code Online (Sandbox Code Playgroud)

但仍然无法解决问题。

java spring spring-boot

2
推荐指数
1
解决办法
706
查看次数