使用application.properties 进行外部配置的 Spring Boot 知识点详解 Spring Boot 框架提供了多种方式来进行外部配置,今天我们将详细讲解使用 application.properties 文件来进行外部配置的方法。application.properties 文件是 Spring Boot 中的一个默认配置文件,用于存储可以手动修改的变量,以便在生产环境中不需要重新编译代码。 Spring Boot 的默认配置信息 Spring Boot 提供了许多默认的环境变量,例如 Tomcat 的默认端口是 8080,项目的 ContextPath 是 "/" 等等。这些默认配置信息可以在 Spring Boot 的官方文档中找到:http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-external-config 自定义 application.properties 文件 Spring Boot 允许我们自定义一个 application.properties 文件,然后将其放在以下四个地方,以便重写 Spring Boot 的环境变量或者定义我们自己的环境变量: 1. 当前目录的 "/config" 子目录下 2. 当前目录下 3. classpath 根目录的 "/config" 包下 4. classpath 的根目录下 其中,1 点和 2 点适合在生产环境下使用,例如,打包成可执行的 jar 包。3 点和 4 点适合在开发环境下使用。需要注意的是,在使用 Java -jar demo.jar 命令时,必须先路由到 demo.jar 包的路径下,然后使用命令。 配置文件的优先级 如果同时在四个地方都有配置文件,配置文件的优先级是从 1 到 4。使用配置文件之后,Spring Boot 启动时,会自动把配置信息读取到 Spring 容器中,并覆盖 Spring Boot 的默认配置。 读取和设置配置信息 那么,我们怎么来读取和设置这些配置信息呢?有四种方式: 1. 通过命令行来重写和配置环境变量,优先级最高。例如,可以通过以下命令来重写 Spring Boot 内嵌 Tomcat 的服务端口:java -jar demo.jar --server.port=9000 2. 通过 @Value 注解来读取配置信息。例如: ```java @RestController @RequestMapping("/task") public class TaskController { @Value("${connection.remoteAddress}") private String address; @RequestMapping(value = {"/",""}) public String hellTask(@Value("${connection.username}") String name) { return "hello task !!"; } } ``` 3. 通过 Environment 接口来获取配置信息。例如: ```java @RestController @RequestMapping("/task") public class TaskController { @Autowired Environment ev; @Value("${connection.remoteAddress}") private String address; @RequestMapping(value = {"/",""}) public String hellTask(@Value("${connection.username}") String name) { String password = ev.getProperty("connection.password"); return "hello task !!"; } } ``` 4. 可以自定义一个工具类,来获取配置信息。例如: ```java @Component public class SystemConfig { private static Properties props; public SystemConfig() { try { Resource resource = new ClassPathResource("/application.properties"); props = PropertiesLoaderUtils.loadProperties(resource); } catch (IOException e) { e.printStackTrace(); } } public static String getProperty(String key) { return props.getProperty(key); } } ``` 这些方法都可以用来读取和设置配置信息,选择哪一种方法取决于我们的具体需求。



























- 粉丝: 5
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 流浪狗收容领养管理平台 2025免费毕业设计附带论文 JAVA+SSM+Vue.js
- 【数字电路设计】基于D触发器的同步时序电路设计:实现特定状态序列的逻辑组合与优化方案
- Jenkins 0607 Latest Docker 镜像
- 模具制造企业订单跟踪管理系统 2025免费毕业设计附带论文 JAVA+SSM+Vue.js
- 漫画网站系统 2025免费毕业设计附带论文 JAVA+SSM+Vue.js
- 走向知识殿堂的阶梯11
- 《从入门到精通:LabVIEW全攻略》,涵盖基础入门、程序结构、数据类型、图形显示、高级应用及未来展望
- 旅游管理系统 2025免费毕业设计附带论文 JAVA+SSM+Vue.js
- 培训学校教学管理平台 2025免费毕业设计附带论文 JAVA+SSM+Vue.js
- 农业信息化服务平台 2025免费毕业设计附带论文 JAVA+SSM+Vue.js
- 走向知识殿堂的阶梯12
- 缪斯乐器购物网站 2025免费毕业设计附带论文 JAVA+SSM+Vue.js
- 品牌手机销售信息系统 2025免费毕业设计附带论文 JAVA+SSM+Vue.js
- 汽车服务商城系统 2025免费毕业设计附带论文 JAVA+SSM+Vue.js
- 汽车服务商城管理系统 2025免费毕业设计附带论文 JAVA+SSM+Vue.js
- 汽车站车辆运管系统 2025免费毕业设计附带论文 JAVA+SSM+Vue.js


