详解Spring Boot 目录文件结构
1.目录结构
src/main/java:存放代码
src/main/resources
- resources:(Spring Boot 默认的)存放资源文件
- static:(Spring Boot 默认的)存放静态文件,比如 css、js、image, (访问方式 http://localhost:8080/js/main.js)
- public:(Spring Boot 默认的)存放公共文件
- templates:(用户自己定义的,可以随便取名,但这里使用公认的文件名)存放静态页面,比如 jsp、html、tpl
- config:(用户自己定义的,可以随便取名,但这里使用公认的文件名)存放配置文件,比如 application.properties
2.同个文件的加载顺序,静态资源文件
Spring Boot 默认会挨个从 META/resources > resources > static > public 里面找是否存在相应的资源,如果有则直接返回。
比如:我们在这几个文件夹下都新建一个 js 文件,看它会去加载哪个文件。
地址栏输入以下地址:http://localhost:8080/test.js,这里我们没有在 resources 文件夹下建 test.js 文件,所以会去加载 static 文件夹下面的文件
上图所示,我们新建了一个 templates 文件夹,里面新建了一个 index.html 文件,因为 templates 不是 Spring Boot 默认文件夹,所以我们访问不到这个文件夹里的文件,即使其他文件夹没有同名文件。
要想访问,需要引入依赖(注意:如果不引人这个依赖包,html 文件应该放在默认加载文件夹里面,比如 resources、static、public 这个几个文件夹,才可以访问)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
写一个测试映射
@RequestMapping(value = "/api/v1/gopage") public Object index() { return "index"; }
输出效果
Spring Boot 给我们定义了一些默认资源文件夹及其加载顺序,但如果用户新增了一些自定义文件夹或者是想改变资源文件的加载顺序,可以在根目录下,新建一个 application.properties。
可以自己设置加载顺序,也可以添加自己新增的文件夹,如果用户自己新增 application.properties,则Spring Boot会去读这个文件来决定默认文件夹及其加载顺序
以上就是详解Spring Boot 目录文件结构的详细内容,更多关于Spring Boot 目录文件结构的资料请关注我们其它相关文章!
相关推荐
-
SpringBoot上传文件到本服务器 目录与jar包同级问题
前言 看标题好像很简单的样子,但是针对使用jar包发布SpringBoot项目就不一样了. 当你使用tomcat发布项目的时候,上传文件存放会变得非常简单,因为你可以随意操作项目路径下的资源.但是当你使用SpringBoot的jar包发布项目的时候,你会发现,你不能像以前一样操作文件了.当你使用File file = new File()的时候根本不知道这个路径怎么办.而且总不能很小的项目也给它构建一个文件服务器吧.所以这次就来解决这样的问题. 不想知道细节的,可以直接跳转到最后封装的部分,里面
-
Spring Boot读取resources目录文件方法详解
这篇文章主要介绍了Spring Boot读取resources目录文件方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在Java编码过程中,我们常常希望读取项目内的配置文件,按照Maven的习惯,这些文件一般放在项目的src/main/resources下,因此,合同协议PDF模板.Excel格式的统计报表等模板的存放位置是resources/template/test.pdf,下面提供两种读取方式,它们分别在windows和Linux
-
spring boot 打包jar jar没有主目录清单问题的完美解决方法
1.在POM.xml文件下添加如下代码:注意:version.configuration.executions三个标签是我后来查找添加的,网上解决方案要么没有这三个要么不一样,我试了都不行,而且我在我电脑试了这三个标签必须有: 2.如果没有version标签会在生成时会报错. 3.如果没有configuration.executions两个标签生成的jar会报jar没有主目录清单错误: 哀 折腾一天,没办法谁让自己是小白那.还有一个主意的:packaging标签页必须有: <packaging
-
Springboot项目使用Slf4j将日志保存到本地目录的实现代码
1.引入jar包 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> 2.编写application.properties/yml #.properties logging.config= classpath:logback-spr
-
spring boot thymeleaf 图片上传web项目根目录操作步骤
thymeleaf介绍 简单说, Thymeleaf 是一个跟 Velocity.FreeMarker 类似的模板引擎,它可以完全替代 JSP .相较与其他的模板引擎,它有如下三个极吸引人的特点: 1.Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果.这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式.浏览器解释 html 时会忽略未定义的标签属性,所以 t
-
SpringBoot静态资源目录访问
静态资源配置 创建一个StaticConfig 继承 WebMvcConfigurerAdapter package com.huifer.blog.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframewo
-
详解Spring Boot 目录文件结构
1.目录结构 src/main/java:存放代码 src/main/resources resources:(Spring Boot 默认的)存放资源文件 static:(Spring Boot 默认的)存放静态文件,比如 css.js.image, (访问方式 http://localhost:8080/js/main.js) public:(Spring Boot 默认的)存放公共文件 templates:(用户自己定义的,可以随便取名,但这里使用公认的文件名)存放静态页面,比如 jsp.
-
详解spring boot jpa整合QueryDSL来简化复杂操作
前言 使用过spring data jpa的同学,都很清楚,对于复杂的sql查询,处理起来还是比较复杂的,而本文中的QueryDSL就是用来简化JPA操作的. Querydsl定义了一种常用的静态类型语法,用于在持久域模型数据之上进行查询.JDO和JPA是Querydsl的主要集成技术.本文旨在介绍如何使用Querydsl与JPA组合使用.JPA的Querydsl是JPQL和Criteria查询的替代方法.QueryDSL仅仅是一个通用的查询框架,专注于通过Java API构建类型安全的SQL查
-
详解Spring Boot中使用Flyway来管理数据库版本
如果没有读过上面内容的读者,有兴趣的可以一阅.在上面的使用JdbcTemplate一文中,主要通过spring提供的JdbcTemplate实现对用户表的增删改查操作.在实现这个例子的时候,我们事先在MySQL中创建了用户表.创建表的过程我们在实际开发系统的时候会经常使用,但是一直有一个问题存在,由于一个系统的程序版本通过git得到了很好的版本控制,而数据库结构并没有,即使我们通过Git进行了语句的版本化,那么在各个环境的数据库中如何做好版本管理呢?下面我们就通过本文来学习一下在Spring B
-
详解Spring Boot 打包分离依赖JAR 和配置文件
1:自定义路径 <properties> <!--自定义路径--> <directory>d:/im/</directory> </properties> 2:把配置文件打包出来 <build> <plugins> <!--上线部署 JAR启动分离依赖lib和配置--> <!--打包jar--> <plugin> <groupId>org.apache.maven.plugi
-
详解Spring Boot使用系统参数表提升系统的灵活性
目录 一.使用系统参数表的好处 二.系统参数表的表结构 三.系统参数表在项目中的使用 3.1.Entity类 3.2.Dao类 3.3.Service类 3.4.ServiceImpl类 3.5.全局配置服务类 3.6.启动时加载 3.7.在服务实现类中访问系统参数 一.使用系统参数表的好处 以数据库表形式存储的系统参数表比配置文件(.properties文件或.yaml文件)要更灵活,因为无需重启系统就可以动态更新. 系统参数表可用于存储下列数据: 表字段枚举值,如下列字段: `ques
-
详解Spring Boot 访问Redis的三种方式
目录 前言 开始准备 RedisTemplate JPA Repository Cache 总结 前言 最近在极客时间上面学习丁雪丰老师的<玩转 Spring 全家桶>,其中讲到访问Redis的方式,我专门把他们抽出来,在一起对比下,体验一下三种方式开发上面的不同, 分别是这三种方式 RedisTemplate JPA Repository Cache 开始准备 开始之前我们需要有Redis安装,我们采用本机Docker运行Redis, 主要命令如下 docker pull redis doc
-
详解spring boot starter redis配置文件
spring-boot-starter-Redis主要是通过配置RedisConnectionFactory中的相关参数去实现连接redis service. RedisConnectionFactory是一个接口,有如下4个具体的实现类,我们通常使用的是JedisConnectionFactory. 在spring boot的配置文件中redis的基本配置如下: # Redis服务器地址 spring.redis.host=192.168.0.58 # Redis服务器连接端口 spring.
-
实例详解Spring Boot实战之Redis缓存登录验证码
本章简单介绍redis的配置及使用方法,本文示例代码在前面代码的基础上进行修改添加,实现了使用redis进行缓存验证码,以及校验验证码的过程. 1.添加依赖库(添加redis库,以及第三方的验证码库) <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dependency&
-
详解Spring boot Admin 使用eureka监控服务
前言 最近刚好有空,来学习一下如何搭建spring boot admin环境.其中遇到很多的坑. 网上大多都是使用admin-url的方式直接来监控的,感觉一点也不灵活,这不是我想要的结果,所以本篇介绍借助eureka服务注册和发现功能来灵活监控程序. 本文主要记录spring boot admin的搭建过程,希望能有所帮助.其实非常的简单,不要被使用常规方式的误导! 环境介绍 IDE:intellij idea jdk: java8 maven:3.3.9 spring boot:1.5.6
-
详解spring boot rest例子
简介:本文将帮助您使用 Spring Boot 创建简单的 REST 服务. 你将学习 什么是 REST 服务? 如何使用 Spring Initializr 引导创建 Rest 服务应用程序? 如何创建获取 REST 服务以检索学生注册的课程? 如何为学生注册课程创建 Post REST 服务? 如何利用 postman 执行 rest 服务? 本教程使用的 rest 服务 在本教程中,我们将使用适当的 URI 和 HTTP 方法创建三个服务: @GetMapping("/ students
随机推荐
- 可在线编辑网页文字效果代码(单击)
- Node 自动化部署的方法
- 用javascript为DropDownList控件下拉式选择添加一个Item至定义索引位置
- C# Winform 让整个窗口都可以拖动
- Android ExpandableRecyclerView使用方法详解
- JavaScript实现网页加载进度条代码超简单
- 关于ajax网络请求的封装实例
- jQuery支持添加事件的日历特效代码分享(3种样式)
- js实现不重复导入的方法
- Spring Boot利用Lombok减少Java中样板代码的方法示例
- android实现微信联合登录开发示例
- Android UI组件AppWidget控件入门详解
- 解析android创建快捷方式会启动两个应用的问题
- 集成Spring Redis缓存的实现
- JavaScript事件委托原理与用法实例分析
- 使用layui日期控件laydate对开始和结束时间进行联动控制的方法
- 使用Python自动化破解自定义字体混淆信息的方法实例
- 基于Vue组件化的日期联动选择器功能的实现代码
- python 消费 kafka 数据教程
- 原生js+ajax分页组件