近两年火热的微服务springboot不同配置文件详细讲解

点击上方“好好学java”,选择“置顶公众号”

优秀学习资源、干货第一时间送达!

 精彩内容 

java实战练习项目教程

2018微服务资源springboot、springcloud、docker、dubbo实战等倾心分享

2018年java架构师全套学习教程

最新大数据培训完整视频教程

2018年java最新全套培训学习教程

一、配置文件

SpringBoot使用一个全局的配置文件,配置文件名是固定的

  • application.properties

  • application.yml

配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;

YAML(YAML Ain't Markup Language)

YAML是“YAML不是一种标记语言”的外语缩写 [1]  (见前方参考资料原文内容);但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名。它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。

标记语言:

以前的配置文件;大多都使用的是 xxxx.xml文件;

YAML:以数据为中心,比json、xml等更适合做配置文件;

YAML:配置例子

server:
    port: 8080

如果是xml:

<server>
    <port>8080</port>
</server>

二、YAML语法介绍

1、基本语法

k:(空格)v表示一对键值对(空格必须有)

以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的

server:
    port: 8080
    path: /hello

属性和值也是大小写敏感;

2、值的写法

字面量:普通的值(数字,字符串,布尔)

k: v:字面直接来写;
字符串默认不用加上单引号或者双引号;

"":双引号不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思

name: "sihai\n lisi"

输出: sihai换行 lisi

'':单引号会转义特殊字符,特殊字符最终只是一个普通的字符串数据

name: ‘sihai\n lisi’:输出;sihai\n lisi

对象、Map(属性和值)(键值对)

k: v:在下一行来写对象的属性和值的关系;注意缩进
对象还是k: v的方式

user:
    name: sihai
    age: 20

行内写法:

user: {name: sihai, age: 18}

数组(List、Set)

- 值表示数组中的一个元素

pets:
- cat
- dog
- pig

行内写法:

pets: [cat,dog,pig]

三、配置文件值注入

配置文件

user:
    name: sihai
    age: 20
    lists:
        - lisi
        - zhangsan
    pig:
        name: 小猪
        age: 10

在javabean中的使用:

/**
* 将配置文件中配置的每一个属性的值,映射到这个组件中
* 
* @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;
* 
* prefix = "person":配置文件中哪个下面的所有属性进行一一映射
*
* 只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties功能;
*
*/
@Component
@ConfigurationProperties(prefix = "user")
public class User{
    private String name;
    private int age;

    private List<Object> lists;
    private Pig pig;
}

另外,我们可以导入配置文件处理器,以后编写配置就有提示了。

<!‐‐导入配置文件处理器,配置文件进行绑定就会有提示‐‐>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring‐boot‐configuration‐processor</artifactId>
    <optional>true</optional>
</dependency>
1、properties配置文件在idea中默认utf-8乱码解决

2、@Value获取值和@ConfigurationProperties获取值比较
@ConfigurationProperties@Value
功能批量注入配置文件中的属性
松散绑定(松散语法)支持
SpEL不支持
JSR303数据校验支持
复杂类型封装支持 不支持

到底如何在哪个场景使用这两个获取配置文件的值呢?

如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;
如果说,我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;

3、配置文件注入值数据校验
@Component
@ConfigurationProperties(prefix = "user")
public class User{
    //使用value获取一个值
    @Value("${user.name}")
    private String name;
    private int age;

    private List<Object> lists;
    private Pig pig;
}
4、@PropertySource&@ImportResource&@Bean

@PropertySource:加载指定的配置文件

/**
* 将配置文件中配置的每一个属性的值,映射到这个组件中
* @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;
* prefix = "person":配置文件中哪个下面的所有属性进行一一映射
*
* 只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties功能;
* @ConfigurationProperties(prefix = "person")默认从全局配置文件中获取值;
*
*/
@PropertySource(value = {"classpath:user.properties"})
@Component
@ConfigurationProperties(prefix = "user")
public class User{
    //使用value获取一个值
    @Value("${user.name}")
    private String name;
    private int age;

    private List<Object> lists;
    private Pig pig;
}

@ImportResource:导入Spring的配置文件,让配置文件里面的内容生效

Spring Boot里面没有Spring的配置文件,我们自己编写的配置文件,也不能自动识别;
想让Spring的配置文件生效,加载进来;@ImportResource标注在一个配置类上

//导入Spring的配置文件让其生效
@ImportResource(locations = {"classpath:beans.xml"})

由于springboot推荐使用全注解的方式,所以我们可以使用全注解的方式来改造以前的bean 的配置方式

spring配置文件:

<?xml version="1.0" encoding="UTF‐8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema‐instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring‐beans.xsd">

<bean id="helloService" class="com.sihai.springboot.service.HelloService"></bean>
</beans>

springboot全注解方式:

1、配置类@Configuration对应Spring配置文件

2、使用@Bean给容器中添加组件

/**
* @Configuration:指明当前类是一个配置类;就是来替代之前的Spring配置文件
*
* 在配置文件中用<bean><bean/>标签添加组件
*
*/
@Configuration
public class MyAppConfig {
    //将方法的返回值添加到容器中;容器中这个组件默认的id就是方法名
    @Bean
    public HelloService helloService(){
        System.out.println("配置类@Bean给容器中添加组件了...");
        return new HelloService();
    }
}

四、profile讲解

1、多Profile文件

我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml

默认使用application.properties的配置。

2、yml支持多文档块方式
server:
    port: 8080
spring:
    profiles:
        active: prod
‐‐‐
server:
    port: 8083
spring:
    profiles: dev
‐‐‐
server:
    port: 8084
spring:
    profiles: prod #指定属于哪个环境
3、激活指定profile

有一下几种方式:

1、在配置文件中指定

spring.profiles.active=dev

2、命令行:

java -jar spring-boot-02-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

可以直接在测试的时候,配置传入命令行参数

3、虚拟机参数;

-Dspring.profiles.active=dev


1. java实现图片文字识别

2. springmvc入门

3. servlet就是这么简单

4. 重温javaweb过滤器filter

附上热门QQ群,存放资源和历史资料,2000容量(低门槛付费群),长按二维码入群

已标记关键词 清除标记
<p> <strong><span style="font-size:16px;color:#337FE5;"><b><a target="_blank" href="https://edu.csdn.net/bundled/detail/308"></a><a target="_blank" href="https://edu.csdn.net/bundled/detail/308"><span> </span></a></b></span></strong> </p> <p class="ql-long-39788408" style="font-size:11pt;color:#494949;"> <strong><b><strong><a class="ql-link ql-size-12 ql-author-39788408" href="https://edu.csdn.net/bundled/detail/298" target="_blank">[本课程属于AI完整学习路线套餐,该套餐已“硬核”上线,点击立即学习!]</a></strong> </b></strong> </p> <p class="ql-long-39788408" style="font-size:11pt;color:#494949;"> <br /> </p> <p> <strong><span style="font-size:16px;color:#337FE5;"><img src="https://img-bss.csdnimg.cn/202011090216454206.png" alt="" /><br /> </span></strong> </p> <p> <strong><span style="font-size:16px;color:#337FE5;"><br /> </span></strong> </p> <p> <strong><span style="font-size:16px;color:#337FE5;">【为什么要学习深度学习和计算机视觉?】</span></strong> </p> <p> <span style="font-family:"background-color:#FFFFFF;">AI人工智能现在已经成为人类发展中最火热的领域。而计算机视觉(CV)是AI中最热门,也是落地最多的一个应用方向<span style="font-family:"background-color:#FFFFFF;">(人脸识别,自动驾驶,智能安防,车牌识别,证件识别)</span>。</span><span style="font-family:"background-color:#FFFFFF;">所以基于人工智能的计算视觉行业必然会诞生大量的工作和创业的机会。如何能快速的进入CV领域,同时兼备理论基础和实战能力,就成了大多数学习者关心的事情,而这门课就是因为这个初衷而设计的。<br /> </span> </p> <p style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;"> <br /> </p> <p style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;"> <span style="font-size:16px;color:#337FE5;"><strong>【讲师介绍】</strong></span> </p> <p style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;"> <span style="font-size:16px;color:#337FE5;"><strong>CH<strong><span style="font-family:"color:#222226;font-size:16px;background-color:#FFFFFF;font-weight:700;">ARLIE 老师</span></strong></strong></span> </p> 1、人工智能算法科学家<br /> 2、深圳市海外高层次人才认定(孔雀人才)<br /> 3、美国圣地亚哥国家超算中心博士后<br /> 4、加利福尼亚大学圣地亚哥全奖博士<br /> 5、参与美国自然科学基金(NSF)及加州能源局 (CEC)资助的392MW IVANPAH等智慧电网项目<br /> 6、21篇国际期刊文章(sci收录17篇),总引用接1000<br /> 7、第一作者发明专利11份<br /> <p> <br /> </p> <p class="ql-long-24357476" style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;"> <span style="font-family:"color:#337FE5;"><span><span style="font-size:16px;"><strong>【推荐你学习这门课的理由:</strong></span><span style="color:#E53333;font-size:16px;"><strong>知识体系完整+丰富学习资料】</strong></span></span></span> </p> <p class="ql-long-24357476" style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;"> <span class="ql-author-24357476" style="font-family:""></span> </p> <p class="MsoNormal" style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;"> 1、本课程总计9大章节,是一门系统入门计算机视觉的课程,未来将持续更新。 </p> <p class="MsoNormal" style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;"> <span>2</span>、<span>课程从计算机视觉理论知识出发,理论结合实战,手把手的实战代码实现(霍夫变换与模板匹配,</span><span>AlexNet OCR</span><span>应用</span><span>,VGG</span><span>迁移学习,多标签分类算法工程)</span> </p> <p class="MsoNormal" style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;"> <span>3</span>、<span>带你了解最前沿技术,</span><span>各类型算法的优点和缺点,掌握数据增强,</span><span>Batchnormalization, Dropout</span><span>,迁移学习等优化技巧,搭建实用的深度学习应用模型</span> </p> <p class="MsoNormal" style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;"> <span>4</span>、学习完后,你将具有深度学习与计算视觉的项目能力,比如大学生学完可以具备独立完成机器视觉类毕业设计的能力,在求职过程中可以体系化的讲解机器视觉核心知识点,初步达到人工智能领域机器视觉工程师的水平 </p> <span style="color:#222226;font-family:PingFangSC-Regular, "font-size:14px;background-color:#FFFFFF;"></span> <p style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;"> <br /> </p> <p class="ql-long-24357476" style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;"> <strong><span style="color:#337FE5;font-size:16px;">【学完后我将达到什么水平?】</span></strong> </p> <p class="ql-long-24357476"> <span>1、<span style="font-family:"">零基础入门计算视觉,学习掌握并应用从经典图像处理到深度学习分类任务的要点知识</span></span> </p> <p class="ql-long-24357476"> <span>2、<span style="font-family:"">掌握数据增强,迁移学习等优化技巧,搭建实用的深度学习应用模型</span></span> </p> <p class="ql-long-24357476"> <span>3、<span style="font-family:"">学习完课程,可以独立应用多个经典算法和深度学习算法</span></span> </p> <p class="ql-long-24357476"> <span>4、<span style="font-family:"">以</span><span style="font-family:"">大学毕业设计,面试找工作为目标,</span><span style="font-family:"">手把手带大家编程,即使没有太多计算视觉的背景知识也可以循序渐进完成课程,获得实战项目的经验</span></span> </p> <p class="ql-long-24357476"> <br /> </p> <p class="ql-long-24357476"> <span style="color:#337FE5;"><b><span style="background-color:#FFFFFF;color:#337FE5;"><span style="font-size:16px;color:#337FE5;">【面向人群】</span></span></b></span> </p> <p class="ql-long-24357476"> <span>1、对AI感兴趣,想要系统学习计算机视觉的学员</span> </p> <p class="ql-long-24357476"> <span>2、<span style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;">需要毕业设计的大学生</span></span> </p> <p class="ql-long-24357476"> <span>3、<span style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;">做图像分析或相关数据分析的研究生</span></span> </p> <p class="ql-long-24357476"> <span>4、<span style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;">准备面试计算视觉和深度学习岗位的应聘者</span></span> </p> <p class="ql-long-24357476"> <span>5、<span style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;">希望在项目中引入计算视觉</span><span style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;">/</span><span style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;">深度学习技术的开发人员</span></span> </p> <p class="ql-long-24357476"> <br /> </p> <p class="ql-long-24357476"> <b><span style="font-family:"font-size:16px;background-color:#FFFFFF;color:#337FE5;"><span style="font-size:16px;color:#337FE5;">【课程知识体系图</span><span style="font-size:16px;color:#337FE5;">】</span></span></b> </p> <p class="ql-long-24357476"> <span><b><img src="https://img-bss.csdnimg.cn/202007140746422581.png" alt="" /></b></span> </p> <p class="ql-long-24357476"> <span><b><br /> </b></span> </p> <p class="ql-long-24357476"> <span style="font-size:16px;color:#337FE5;"><b>【实战项目】</b></span> </p> <p class="ql-long-24357476"> <b><img src="https://img-bss.csdnimg.cn/202007150352244062.png" alt="" /><img src="https://img-bss.csdnimg.cn/202007150517376530.png" alt="" /></b> </p> <p class="ql-long-24357476"> <br /> </p>
相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值