Springboot读取及自定义配置文件

    xiaoxiao2022-07-03  186

    1.创建maven工程,在pom文件中添加依赖

    <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 单元测试使用 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> </dependencies>

    2.创建项目启动类 StartApplication.java

    package com.kelly.controller; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration @EnableAutoConfiguration //自动加载配置信息 @ComponentScan("com.kelly")//使包路径下带有注解的类可以使用@Autowired自动注入 public class StartApplication { public static void main(String[] args) { SpringApplication.run(StartApplication.class, args); } }

    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

    package com.kelly.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class FirstController { @Value("${test.name}") private String name; @Value("${test.password}") private String password; @RequestMapping("/") @ResponseBody String home() { return "Hello Springboot!"; } @RequestMapping("/hello") @ResponseBody String hello() { return "name: " + name + ", " + "password: " + password; } }

    5.打开浏览器,输入 http://localhost:8081/springboot/hello 即可看到结果

    6.使用java bean的方式读取自定义配置文件 define.properties

      DefineEntity.java

    package com.kelly.entity; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component; @Component @ConfigurationProperties(prefix="defineTest") @PropertySource("classpath:define.properties") public class DefineEntity { private String pname; private String password; public String getPname() { return pname; } public void setPname(String pname) { this.pname = pname; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }

      SecondController.java

    package com.kelly.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.kelly.entity.DefineEntity; @Controller public class SecondController { @Autowired DefineEntity defineEntity; @RequestMapping("/define") @ResponseBody String define() { return "test.name:" + defineEntity.getPname() + ", test.password:" + defineEntity.getPassword(); } }

    7.打开浏览器,访问 http://localhost:8081/springboot/define,可以看到输出结果

    补充:我的项目的目录结构

     

    如果遇到问题也可以留言,我如果看到的话,不管会不会都会给与回复的,我们可以共同讨论,一起学习进步。

    最新回复(0)