Springboot读取配置文件及自定义配置文件
创建maven工程,在pom文件中添加依赖
1 <parent> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-parent</artifactId> 4 <version>1.5.9.RELEASE</version> 5 </parent> 6 7 <dependencies> 8 <dependency> 9 <groupId>org.springframework.boot</groupId> 10 <artifactId>spring-boot-starter-web</artifactId> 11 </dependency> 12 <!-- 单元测试使用 --> 13 <dependency> 14 <groupId>org.springframework.boot</groupId> 15 <artifactId>spring-boot-starter-test</artifactId> 16 </dependency> 17 18 <dependency> 19 <groupId>junit</groupId> 20 <artifactId>junit</artifactId> 21 <scope>test</scope> 22 </dependency> 23 24 </dependencies>
2.创建项目启动类 StartApplication.java
1 package com.kelly.controller; 2 3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 5 import org.springframework.context.annotation.ComponentScan; 6 import org.springframework.context.annotation.Configuration; 7 8 @Configuration 9 @EnableAutoConfiguration //自动加载配置信息 10 @ComponentScan("com.kelly")//使包路径下带有注解的类可以使用@Autowired自动注入 11 public class StartApplication { 12 public static void main(String[] args) { 13 SpringApplication.run(StartApplication.class, args); 14 } 15 }
3.编辑配置文件application.properties及自定义配置文件define.properties
application.properties
#访问的根路径 server.context-path=/springboot #端口号 server.port=8081 #session失效时间 server.session-timeout=30 #编码 server.tomcat.uri-encoding=utf-8 test.name=kelly test.password=admin123
define.properties
defineTest.pname=test defineTest.password=test123
4.读取application.properties配置文件中的属性值
FirstController.java
1 package com.kelly.controller; 2 3 import org.springframework.beans.factory.annotation.Value; 4 import org.springframework.stereotype.Controller; 5 import org.springframework.web.bind.annotation.RequestMapping; 6 import org.springframework.web.bind.annotation.ResponseBody; 7 8 9 @Controller 10 public class FirstController { 11 12 @Value("${test.name}") 13 private String name; 14 15 @Value("${test.password}") 16 private String password; 17 18 @RequestMapping("/") 19 @ResponseBody 20 String home() 21 { 22 return "Hello Springboot!"; 23 } 24 25 @RequestMapping("/hello") 26 @ResponseBody 27 String hello() 28 { 29 return "name: " + name + ", " + "password: " + password; 30 } 31 }
5.打开浏览器,输入 http://localhost:8081/springboot/hello 即可看到结果
6.使用java bean的方式读取自定义配置文件 define.properties
DefineEntity.java
1 package com.kelly.entity; 2 3 import org.springframework.boot.context.properties.ConfigurationProperties; 4 import org.springframework.context.annotation.PropertySource; 5 import org.springframework.stereotype.Component; 6 7 @Component 8 @ConfigurationProperties(prefix="defineTest") 9 @PropertySource("classpath:define.properties") 10 public class DefineEntity { 11 12 private String pname; 13 14 private String password; 15 16 public String getPname() { 17 return pname; 18 } 19 20 public void setPname(String pname) { 21 this.pname = pname; 22 } 23 24 public String getPassword() { 25 return password; 26 } 27 28 public void setPassword(String password) { 29 this.password = password; 30 } 31 32 33 }
SecondController.java
1 package com.kelly.controller; 2 3 import org.springframework.beans.factory.annotation.Autowired; 4 import org.springframework.stereotype.Controller; 5 import org.springframework.web.bind.annotation.RequestMapping; 6 import org.springframework.web.bind.annotation.ResponseBody; 7 8 import com.kelly.entity.DefineEntity; 9 10 @Controller 11 public class SecondController { 12 13 @Autowired 14 DefineEntity defineEntity; 15 16 @RequestMapping("/define") 17 @ResponseBody 18 String define() 19 { 20 return "test.name:" + defineEntity.getPname() + ", test.password:" + defineEntity.getPassword(); 21 } 22 }
7.打开浏览器,访问 http://localhost:8081/springboot/define,可以看到输出结果
补充:我的项目的目录结构
转自:https://www.cnblogs.com/kellyJAVA/p/8030395.html
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他
们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其
实我是一个程序员
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)