#spring boot 的目录结构 spring boot 项目只有src目录,没有webapp目录,会将静态访问(html/图片等)映射到其自动配置的静态目录。项目目录结构如下:
|-customer(项目名称)
| - src
| | - main
| | | - java
| | | - resources
| | | | - static
| | | | - templates
| | - test
| | | - java
| - pom.xml
| - customer.iml
其中:
customer:是项目名称;
src/main/java:目录下放置所有java文件(源代码文件);
src/main/resources:放置所有的配置文件、页面文件、静态资源文件;
src/main/resources/static:是静态资源文件目录,在这个目录中的所有文件将可以被直接访问,如果没有这个文件夹可自行创建;
src/main/resources/templates:是动态页面文件,需要先请求服务器,访问后台应用程序,在转向页面,spring-boot 建议使用Thymeleaf来做动态页面。
静态页面
静态页面放在 static下 ,可以直接通过网络请求访问。 举例:static目录下有index.html静态文件,访问地址 http://localhost:8080/index.html #动态页面 放在templates下,通过controller层跳转访问,实现此功能的注解是@controller。
#@RestController和@controller
- 这里是列表文本@RestController注解相当于@ResponseBody + @Controller合在一起的作用。为Controller类使用@RestController注解,Controller中的方法无法返回jsp页面配置的视图解析器InternalResourceViewResolver不起作用。
- @RestController 的返回结果一般是Json格式。
- @Controller的返回结果一般是一个页面。
- return "index": 默认跳转到 templates/index.html 动态页面,templates目录为spring boot默认配置的动态页面路径
@controller的扩展用法
1)返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行
2)如果需要返回JSON,XML或自定义mediaType内容到页面显示,需要在对应的方法上加上@ResponseBody注解。