当前位置: 首页 > news >正文

崛起于Springboot2.X之配置文件详解(10)

为什么80%的码农都做不了架构师?>>>   hot3.png

序言:针对公司开发配置文件的一些基础常识

1、核心配置文件

springboot框架也被我认为一个工具,它的主要核心文件为application.properties,又可以命名为application.yml亦或者application.yaml,所有的与springboot集成框架等的配置属性都可以在它里面配置。

    1.1 application.properties风格

server.port=8080

    1.2 application.yml 风格

server:
   port: 8080

注意冒号后面加空格,在填写具体之

    1.3 @Value取值

列入:

mujiutian.haha=566

b8701b87f076fdb75b0f3a4334a168a31c5.jpg

java类取值为:

@Value("${mujiutian.haha}")
private String aa;

这样就可以获取到配置文件中的值。

但是如果你输入的是中文的话,会出现乱码,所以在配置文件中添加配置:

spring.http.encoding.charset=utf-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true

同时,在IDEA中的setting的文件编码也需要一致,不然不会正常显示中文,有的默认是GBK

5119d3ff524a793a09abdf91ceed3ff04b2.jpg

这样获取配置文件中即便是中文的值也会正常显示

    1.4 @ConfigurationProperties 取值

这个注解也能够取配置文件中的注解,不过一般主要用于一个配置类中,将配置文件的那些属性集中到一个具体java类,然后同意组成一个实体类对他封装,一般用于mysql,redis等配置文件中

配置文件:

mujiutian.haha=爱你

具体类:

@Component
@ConfigurationProperties(prefix = "mujiutian")
public class TestConfig {

    private String haha;

    public String getHaha() {
        return haha;
    }

    public void setHaha(String haha) {
        this.haha = haha;
    }
}

最后在controller中获取:

@Controller
public class Test1Controller {

    @Autowired
    TestConfig testConfig;

    @RequestMapping(value = "/test")
    public @ResponseBody String test1(){
        return testConfig.getHaha();
    }
}

也能够取出相同的值。两种注解用于不同的场景。

    1.5 多配置文件切换

 一般我们自己开发使用的数据库与产品上线使用的数据库是不一样的,以前的ssm框架我们是在xml中注释这个xml文件,然后打开线上的库,而现在springboot不同了,改变不是那么的大,我们分别创建多余的两个配置文件,名字不同,application-dev.properties和application-pro.properties这两个配置文件我们配置同样的属性,比如一个是server.port=8080,而另一个是server.port=8098,我们正常开发使用8080端口,线上环境切换到8098的端口,然后在主配置文件application.properties中配置为:

spring.profiles.active=dev

后面的dev 就是我们自己多添加文件的application-{name}.properties,当我们想切换那个配置文件的时候,我们可以根据这个就可以了。

转载于:https://my.oschina.net/mdxlcj/blog/1852861

相关文章:

  • Dijkstra算法 C++
  • 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错
  • Oracle学习笔记——imp还原数据库
  • Nginx proxy pass路由转发简单用法
  • [译]D3.js 之 d3-selection 原理
  • 高并发和大流量解决方案--数据库缓存
  • js将日期格式转换为YYYY-MM-DD HH:MM:SS
  • 给 smox 加上翅膀,不断进步的 react 状态管理
  • expect(spawn) 自动化git提交和scp拷贝---centos(linux)
  • new和delete
  • 论文笔记系列-Neural Architecture Search With Reinforcement Learning
  • Linux iptables命令
  • Dubbo2.7源码分析-Dubbo是如何整合spring-framework的
  • Mozilla推出兼容iOS的Face ID密码管理器Firefox Lockbox
  • Shareinstall——精确监测与推广APP的完美神器!
  • JS 中的深拷贝与浅拷贝
  • 分享一款快速APP功能测试工具
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【5+】跨webview多页面 触发事件(二)
  • Apache Pulsar 2.1 重磅发布
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • ES6--对象的扩展
  • ES6系统学习----从Apollo Client看解构赋值
  • golang中接口赋值与方法集
  • js递归,无限分级树形折叠菜单
  • MySQL的数据类型
  • PHP的类修饰符与访问修饰符
  • Spring Cloud Feign的两种使用姿势
  • SQLServer插入数据
  • supervisor 永不挂掉的进程 安装以及使用
  • SwizzleMethod 黑魔法
  • Vue ES6 Jade Scss Webpack Gulp
  • XForms - 更强大的Form
  • Zepto.js源码学习之二
  • 仿天猫超市收藏抛物线动画工具库
  • 前端存储 - localStorage
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 数据结构java版之冒泡排序及优化
  • 微信小程序:实现悬浮返回和分享按钮
  • #define用法
  • #Lua:Lua调用C++生成的DLL库
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (12)Hive调优——count distinct去重优化
  • (C++)八皇后问题
  • (Note)C++中的继承方式
  • (十) 初识 Docker file
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)Sublime Text3配置Lua运行环境
  • .equals()到底是什么意思?
  • .net framework 4.0中如何 输出 form 的name属性。
  • .net 使用ajax控件后如何调用前端脚本
  • .net/c# memcached 获取所有缓存键(keys)
  • .Net开发笔记(二十)创建一个需要授权的第三方组件