首页 > 编程语言 > 详细

SpringBoot框架(2)--配置文件

时间:2019-05-21 18:37:57      阅读:104      评论:0      收藏:0      [点我收藏+]

1、添加新项目,选择Spring Initializr方式创建项目

技术分享图片

 ==》命名相关信息

技术分享图片

 

技术分享图片

 

2、默认配置读取顺序 -- /config/路径下优先,properties 比 yml 优先

     /resourses/config/application.properties > /resourses/config/application.yml > /resourses/application.properties > /resourses/config/application.yml

注意:默认读取的配置文件必须命名为:application,否者读取不到

2.1 通过Environment方式读取

/resources/application.properties文件

1 local.ip.addr=192.168.3.110-pro
 1 package com.demo.boot.bootconfig;
 2 
 3 import org.springframework.boot.SpringApplication;
 4 import org.springframework.boot.autoconfigure.SpringBootApplication;
 5 import org.springframework.context.ConfigurableApplicationContext;
 6 import org.springframework.core.env.Environment;
 7 
 8 @SpringBootApplication
 9 public class BootConfigApplication {
10 
11     public static void main(String[] args) {
12         ConfigurableApplicationContext context = SpringApplication.run(BootConfigApplication.class, args);
13         Environment env = context.getEnvironment();
14         String ip = env.getProperty("local.ip.addr");
15         String currentDir = env.getProperty("user.dir");
16         System.out.println(ip + "," + currentDir);
17         context.close();
18     }
19 
20 }

 输出结果:192.168.3.100-yml,E:\selft\Java\Idea\Practice

2.2 通过@value方式读取配置

==>application.properties配置

1 redis.port=9966
2 redis.host:192.168.3.145
3 redis.auth:redis-01

 ==> 定义类:RedisConfig

 1 package com.demo.boot.bootconfig;
 2 
 3 import org.springframework.beans.factory.annotation.Value;
 4 import org.springframework.stereotype.Component;
 5 
 6 @Component
 7 public class RedisConfig {
 8     @Value("${redis.port:80}")//默认值:80
 9     private int port;
10 
11     @Value("${redis.host:127.0.0.1}")//默认值:127.0.0.1
12     private String host;
13 
14     @Value("${redis.auth:321}")//默认值:321
15     private String auth;
16 
17     public int getPort() {
18         return port;
19     }
20 
21     public void setPort(int port) {
22         this.port = port;
23     }
24 
25     public String getHost() {
26         return host;
27     }
28 
29     public void setHost(String host) {
30         this.host = host;
31     }
32 
33     public String getAuth() {
34         return auth;
35     }
36 
37     public void setAuth(String auth) {
38         this.auth = auth;
39     }
40 
41     public void showConfig() {
42         System.out.print(host + ":" + port + "," + auth + "\n");
43     }
44 
45 }
1 public static void main(String[] args) {
2         ConfigurableApplicationContext context = SpringApplication.run(BootConfigApplication.class, args);
3 
4         //通过@Value方式读取配置
5         RedisConfig redisConfig = context.getBean(RedisConfig.class);
6         redisConfig.showConfig();
7         context.close();
8     }

输出:192.168.3.145:9966,redis-01

2.3 通过@ConfigurationProperties方式读取配置

==>application.properties文件添加以下内容

1 boot.datasource.driverClassName = com.mysql.jdbc.Driver
2 boot.datasource.url = jdbc:mysql:///db
3 boot.datasource.username = root
4 boot.datasource.password = 456

==>创建实体类:DatasourceProperties.java

 1 package com.demo.boot.bootconfig;
 2 
 3 import org.springframework.boot.context.properties.ConfigurationProperties;
 4 import org.springframework.stereotype.Component;
 5 
 6 @Component
 7 @ConfigurationProperties(prefix = "boot.datasource")
 8 public class DatasourceProperties {
 9     private String driverClassName;
10     private String url;
11     private String userName;
12     private String password;
13 
14     public String getDriverClassName() {
15         return driverClassName;
16     }
17 
18     public void setDriverClassName(String driverClassName) {
19         this.driverClassName = driverClassName;
20     }
21 
22     public String getUrl() {
23         return url;
24     }
25 
26     public void setUrl(String url) {
27         this.url = url;
28     }
29 
30     public String getUserName() {
31         return userName;
32     }
33 
34     public void setUserName(String userName) {
35         this.userName = userName;
36     }
37 
38     public String getPassword() {
39         return password;
40     }
41 
42     public void setPassword(String password) {
43         this.password = password;
44     }
45 
46     @Override
47     public String toString() {
48         return "DatasourceProperties{" +
49                 "driverClassName=‘" + driverClassName + ‘\‘‘ +
50                 ", url=‘" + url + ‘\‘‘ +
51                 ", userName=‘" + userName + ‘\‘‘ +
52                 ", password=‘" + password + ‘\‘‘ +
53                 ‘}‘;
54     }
55 }

==>main方法调用

1 public static void main(String[] args) {
2         ConfigurableApplicationContext context = SpringApplication.run(BootConfigApplication.class, args);
3 
4         //通过@ConfigurationProperties方式
5         DatasourceProperties dbConfig = context.getBean(DatasourceProperties.class);
6         System.out.println(dbConfig);
7 
8         context.close();
9     }

输出:DatasourceProperties{driverClassName=‘com.mysql.jdbc.Driver‘, url=‘jdbc:mysql:///db‘, userName=‘root‘, password=‘456‘}

3、指定配置文件(.properties > .yml)

资源文件结构

技术分享图片

/config/app.yml文件添加一下内容

1 redis:
2   auth: redis-02
3   host: 192.168.3.150
4   port: 6680

 设置指定配置文件

技术分享图片

技术分享图片

运行上面的main方法

输出结果:192.168.3.150:6680,redis-02

3、指定多个配置文件

3.1 设置指定配置文件

技术分享图片 

3.2 config/app.yml文件添加以下内容

1 redis:
2   auth: redis-03
3   host: 192.168.3.450
4   port: 6880

  config/app1.properties文件添加以下内容

1 redis.appName=springBoot

3.3 main方法中打印配置信息 

 1  public static void main(String[] args) {
 2         ConfigurableApplicationContext context = SpringApplication.run(BootConfigApplication.class, args);
 3         //通过Evironment方式读取配置
 4         Environment env = context.getEnvironment(); 
 5 
 6         String port = env.getProperty("redis.port");
 7         String host = env.getProperty("redis.host");
 8         String auth = env.getProperty("redis.auth");
 9         String appName = env.getProperty("redis.appName");
10 
11         System.out.println(appName + "-->" + host + ":" + port + "," + auth);
12         context.close();
13     }

输出结果:springBoot-->192.168.3.450:6880,redis-03

SpringBoot框架(2)--配置文件

原文:https://www.cnblogs.com/lfhappy/p/10895415.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!