来自控制器和其他类的Spring Boot静态资源

时间:2016-03-16 19:44:34

标签: java spring spring-mvc

我一直在努力解决这个问题,但我找不到答案。

我一直不得不使用src/main/resources/public/whatever...来访问类文件中的静态资源。我的印象是,如果使用/static /public /resources...,Spring Boot已经配置了这些路径。

此时我迷路了,不知道如何在不必添加src/main/resources/public.的情况下访问这些文件

修改

根据有关静态内容的建议,我创建了一个私人目录来保护文件等...我不想公开提供。并在/ public文件夹中留下css,图像等。

谢谢大家的建议和建议,我很感激!

3 个答案:

答案 0 :(得分:1)

经过更多搜索后,我遇到了一个使用ClassLoader的示例。我只是在短时间内使用Spring并且没有意识到所有可用的工具,可能有比这更好的方法;如果是这样,请告诉我。

ClassLoader classLoader = getClass().getClassLoader()
new File(classLoader.getResource('public/file-name-or-directory').getFile())

到目前为止看起来它正在运行,我需要做一些进一步的测试,如果有任何问题会发回。

答案 1 :(得分:1)

您列出的目录/static/public/resources适用于将由网络应用程序提供的static content。像javascript文件和图像这样的东西总是相同的,无论是谁请求它们以及什么时候,而不是例如需要在服务器上按需处理的JSP。

如果您需要访问其中一个Java类中的已配置属性(它必须是Spring bean),那么您可以将其放在application.properties文件中,并让Spring使用{{1}注入它注释。

来自Spring docs的示例代码:

@Value

答案 2 :(得分:1)

Spring Boot希望您使用直接提供的内容 的src /主/资源/静态

并用于模板化 的src /主/资源/模板