轻量级前端框架助力开发者提升项目效率与性能
1299
2022-10-28
SpringBoot中的配置文件详解(yml、properties全局配置和自定义配置、有趣的banner图配置)
全局配置文件
全局配置文件能够对一些默认配置值进行修改。Spring Boot使用一个application.properties或者application.yaml的文件作为全局配置文件,该文件存放在src/main/resource目录或者类路径的/config,一般会选择resource目录。接下来,将针对这两种全局配置文件进行讲解∶
application.properties配置文件
使用Spring lnitializr方式构建Spring Boot项目时,会在resource目录下自动生成一个空的application.properties文件,Spring Boot项目启动时会自动加载application.properties文件。我们可以在application.properties文件中定义Spring Boot项目的相关属性,当然,这些相关属性可以是系统属性、环境变量、命令参数等信息,也可以是自定义配置文件名称和位置。
server.port=17006 spring.config.name=zjq spring.application.name=zjq-properties spring.redis.host=localhost spring.redis.port=6039 spring.redis.password= spring.redis.database=0
接下来,通过一个案例对Spring Boot项目中application.properties配置文件的具体使用进行讲解。演示:准备两个实体类文件,演示将application.properties配置文件中的自定义配置属性注入到PropertiesConfig实体类的对应属性中
创建两个实体类Goods和PropertiesConfig @Data public class Goods { private Integer id; private String name; }
@ConfigurationProperties(prefix = "zjq-prop")br/>@Component@Datapublic class PropertiesConfig {
private Integer id; private String username; private List hobby; private String[] family; private Map map; private Goods goods;
}
`@ConfigurationProperties`: 将配置文件中以zjqProp开头的属性通过setXxx方法注入到该类的属性中
`@Component`: 把PropertiesConfig类作为Bean到spring容器中,只有这样才能@ConfigurationProperties注解进行赋值
2. 在resources目录下创建的application.properties文件配置如下:
![image.png](https://s2./images/blog/202207/22091646_62d9fa7e7d96214724.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
编写application.properties配置文件时,由于要配置的PropertiesConfig对象属性是我们自定义的,Spring Boot无法自动识别,所以不会有任何书写提示。在实际开发中,为了出现代码提示的效果来方便配置,在使用@ConfigurationProperties注解进行配置文件属性值注入时,可以在pom.xml文件中添加一个SpringBoot提供的配置处理器依赖:
```xml
@Configuration注解表示当前类是一个自定义配置类,并添加为Spring容器的组件,这里也可以使用传统的@Component注解; @PropertySource("classpath:zjq.properties")注解指定了自定义配置文件的位置和名称,此示例表示自定义配置文件为classpath类路径下的test.properties文件; @ConfigurationProperties(prefix = "zjq")注解将上述自定义配置文件zjq.properties中以zjq开头的属性值注入到该配置类属性中。 如果配置类上使用的是@Component注解而非@Configuration注解,那么@EnableConfigurationProperties注解还可以省略。 进行测试 @Autowired private CustomPropertiesConfig customPropertiesConfig; @Testpublic void customPropertiesConfigTest(){System.out.println(customPropertiesConfig);} 可以正常输出配置。 ![image.png](https://s2./images/blog/202207/22091646_62d9fa7e8aa7180132.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 使用@Configuration编写自定义配置类 在Spring Boot框架中,推荐使用配置类的方式向容器中添加和配置组件。 在Spring Boot框架中,通常使用`@Configuration`注解定义一个配置类,Spring Boot会自动扫描和识别配置类,从而替换传统Spring框架中的XML配置文件。 当定义一个配置类后,还需要在类中的方法上使用`@Bean`注解进行组件配置,将方法的返回对象注入到Spring容器中,并且组件名称默认使用的是方法名,当然也可以使用@Bean注解的name或value属性自定义组件的名称 **演示:**
${AnsiColor.BRIGHT_RED}:设置控制台中输出内容的颜色 ${application.version}:用来获取MANIFEST.MF文件中的版本号 ${application.formatted-version}:格式化后的${application.version}版本信息 ${spring-boot.version}:Spring Boot的版本号 ${spring-boot.formatted-version}:格式化后的${spring-boot.version}版本信息
我的banner.txt文件配置如下:
${AnsiColor.BRIGHT_BLUE} ${spring-boot.version} /$$$$$$ /$$$$$$ /$$ /$$__ $$ /$$__ $$ | $$ /$$$$$$$$ /$$ /$$$$$$ | $$ \__/ /$$$$$$ | $$ \__/ /$$$$$$ /$$$$$$ | $$ |____ /$$/|__/ /$$__ $$| $$$$$$ /$$__ $$| $$ /$$__ $$ /$$__ $$| $$ /$$$$/ /$$| $$ \ $$ \____ $$| $$ \ $$| $$ | $$ \ $$| $$ \ $$| $$ /$$__/ | $$| $$ | $$ /$$ \ $$| $$ | $$| $$ $$| $$ | $$| $$ | $$| $$ /$$$$$$$$| $$| $$$$$$$| $$$$$$/| $$$$$$/| $$$$$$/| $$$$$$/| $$$$$$/| $$ |________/| $$ \____ $$ \______/ \______/ \______/ \______/ \______/ |__/ /$$ | $$ | $$ | $$$$$$/ | $$ \______/ |__/ //////////////////////////////////////////////////////////////////// // _ooOoo_ // // o8888888o // // 88" . "88 // // (| ^_^ |) // // O\ = /O // // ____/`---'\____ // // .' \\| |// `. // // / \\||| : |||// \ // // / _||||| -:- |||||- \ // // | | \\\ - /// | | // // | \_| ''\---/'' | | // // \ .-\__ `-` ___/-. / // // ___`. .' /--.--\ `. . ___ // // ."" '< `.___\_<|>_/___.' >'"". // // | | : `- \`.;`\ _ /`;.`/ - ` : | | // // \ \ `-. \_ __\ /__ _/ .-` / / // // ========`-.____`-.___\_____/___.-`____.-'======== // // `=---=' // // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // // 佛祖保佑 永不宕机 永无BUG // //////////////////////////////////////////////////////////////////// 更多banner参考网站: http://patorjk.com/software/taag/#p=display&f=Graffiti&t=zjq https://degraeve.com/img2txt.php#sample
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~