springboot、java书写配置文件

在添加配置文件时遇到的一些问题,和在网上找到的答案做一些总结,下面一部分是转载自别人,地址已列出。

下文是添加配置文件的完整流程。

一、properties文件与yml文件相互转化的地址

http://www.toyaml.com/index.html

二、添加自定义配置文件

此部分中的一部分转载自https://jingyan.baidu.com/article/e8cdb32bf9c12c37052badb1.html

1、新建一个自定义的properties配置文件(名称不可使用”application“,这是SpringBoot的默认文件名称),配置文件内容可以有字符串,数组,对象。内容进行对应的转换即可。

在properties文件中key可以自定义,下图为person

(图2是yml文件的写法)

2、然后再新建一个javaBean配置类来映射自定义配置文件,生成getter/setter方法,为方便查看效果,生成toString方法。

方法:Alt+Insert或者右击鼠标Generate

3、然后将该JavaBean配置类进行注解说明:通过@ConfigurationProperties 绑定对应的配置属性,prefix后面跟着的名称要与配置文件中的名称保持一致,使用@PropertySource 注解说明引入的自定义配置属性文件。

注意:@PropertySource 不支持引入yml文件。

在Spring中,只有容器中的组件才能使用容器提供的各类方法,所以将该类注解声明为组件 @Component,加入容器中。

4、为了方便书写配置文件,SpringBoot会提示你添加一个依赖(配置文件处理器)

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-configuration-processor</artifactId>

<optional>true</optional>

</dependency>

5、如果想确认映射配置属性是否成功,可以使用SpringBoot提供的单元测试类进行测试.

     添加junit测试的方法:右击config类☞Goto☞Test

三、绑定对象bean调用

此部分转载自https://www.cnblogs.com/gczr/p/6692054.html

1、有时候属性太多了,一个个绑定到属性字段上太累,官方提倡绑定一个对象的bean,这里我们建一个ConfigBean.java类,顶部需要使用注解@ConfigurationProperties(prefix = “com”)来指明使用哪个

@ConfigurationProperties(prefix = "com")
public class ConfigBean {
    private String name;
    private String id;

    // 省略getter和setter
}

2、这里配置完还需要在spring Boot入口类加上@EnableConfigurationProperties并指明要加载哪个bean,如果不写ConfigBean.class,在bean类那边添加

@SpringBootApplication
@EnableConfigurationProperties({ConfigBean.class})
public class Chapter2Application {

    public static void main(String[] args) {
        SpringApplication.run(Chapter2Application.class, args);
    }
}

3、最后在Controller中引入ConfigBean使用即可,如下:

@RestController
public class UserController {
    @Autowired
    ConfigBean configBean;

    @RequestMapping("/")
    public String hexo(){
        return configBean.getName()+configBean.getId();
    }
}

四、自定义配置文件时需要注意的问题

1、在properties文件中添加空格

转载自:https://blog.csdn.net/u014218318/article/details/79076089

key1 = value1
key2 = value2

\u0020  #英文状态下空格
\u3000  #中文状态下空格

(未完待续)

猜你喜欢

转载自blog.csdn.net/ladysosoli/article/details/84314422