Error message here!

Hide Error message here!

忘记密码?

Error message here!

请输入正确邮箱

Hide Error message here!

密码丢失?请输入您的电子邮件地址。您将收到一个重设密码链接。

Error message here!

返回登录

Close

SpringBoot入门 (二) 属性文件读取

梓&艺 2019-01-23 17:07:00 阅读数:150 评论数:0 点赞数:0 收藏数:0

在上一篇中介绍了在idea中创建springboot工程及使用web工程输出“helloworld”到前端页面,本文学习在springboot工程中读取属性文件中的属性值。

一 自定义属性

在application.properties文件中添加属性配置项

 myapp.name=helloworld 

可以使用@Value 注解来读取,在之前的helloworld工程的控制器中添加属性并读取,如下

@RestController public class HelloController { @Value("${myapp.name}") private String name; @RequestMapping("/hello") public String hello(){ System.out.println("myapp name :" + name); return "helloworld"; } }

@Value 注解会去application.properties文件中配置属性为myapp.name的属性,并将值赋值给name属性。访问hello方法,可以看到控制台上打印出来的信息

自定义的属性比较少时使用@Value读取还是比较方便的,如果我们的属性比较多的时候,比如我们要读取数据库连接池配置的很多的属性值,再这样读取的话,就显得不是很美观了。这种情况我们一般定义一个对象,把属性字段作为对象的属性来接收,在属性文件中在增加一个属性

 myapp.age=2

我们定义一个对象MyAppProperties来接收属性值

@Component @ConfigurationProperties(prefix = "myapp") public class MyAppProperties { private String name; private int age; @Override public String toString() { return "MyAppProperties{" +
"name='" + name + '\'' +
", age=" + age +
'}'; } //省略getter和setter方法
}
@Component 表示指定当前类为实例,以便可以在spring中使用
@ConfigurationProperties(prefix = "myapp") 表示把application中的myapp开头的属性自动赋值给当前对象的属性,比如把myapp.name的值赋值给name属性
访问hello方法可以看到


二 自定义属性配置文件
有的时候,我们需要把自己的属性配置信息写在自己的配置文件中,以便和系统的application.properties分开,我们可以在resources目录下新建自己的属性文件my.properties,并添加属性
my.name=helloworld2 my.age=22  

  定义读取属性的对象类,使用 @PropertySource("classpath:my.properties") 来指定我们当前类要读取的属性文件

@Component @PropertySource("classpath:my.properties") @ConfigurationProperties(prefix = "my") public class MyAppProperties2 { private String name; private int age; @Override public String toString() { return "MyAppProperties2{" +
"name='" + name + '\'' +
", age=" + age +
'}'; } // 省略getter和setter方法
}

修改控制器hello方法测试

@RestController public class HelloController { @Resource private MyAppProperties myAppProperties; @Resource private MyAppProperties2 myAppProperties2; @RequestMapping("/hello") public String hello(){ System.out.println(myAppProperties.toString()); System.out.println(myAppProperties2.toString()); return "helloworld"; } }

访问hello方法,可以看到控制台输出的打印信息

 

版权声明
本文为[梓&艺]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/love-wzy/p/10310081.html

编程之旅,人生之路,不止于编程,还有诗和远方。
阅代码原理,看框架知识,学企业实践;
赏诗词,读日记,踏人生之路,观世界之行;

支付宝红包,每日可领