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方法,可以看到控制台输出的打印信息

---------------------

作者:Java架构闲谈

来源:CSDN

原文:https://blog.csdn.net/qiyue683209/article/details/86618673

版权声明:本文为博主原创文章,转载请附上博文链接!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容