spingboot学习(二)

1.使用Spring Initializer快速创建Spring Boot项目
IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目;

选择我们需要的模块;向导会联网创建Spring Boot项目;

默认生成的Spring Boot项目;

  • 主程序已经生成好了,我们只需要我们自己的逻辑
  • resources文件夹中目录结构
    • static:保存所有的静态资源; js css images;
    • templates:保存所有的模板页面;(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页面);可以使用模板引擎(freemarker、thymeleaf);
    • application.properties:Spring Boot应用的配置文件;可以修改一些默认设置;

二、配置文件

1、配置文件

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

•application.properties
•application.yml

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

2、YAML语法:
1、基本语法
k:(空格)v:表示一对键值对(空格必须有);(空格很重要 )
以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的

server:
    port: 8081
    path: /hello

属性和值也是大小写敏感;
2.yaml写法
①第一种写法:(类似k:v键值对形式)
字符串默认不用加上单引号或者双引号;(解释:类似于上面的yaml代码写法)
双引号和单引号在yaml中的区别:
spingboot学习(二)
spingboot学习(二)
②第二种写法:类似(对象:map(键值对))
spingboot学习(二)

还可以这样来写:(行内写法)
spingboot学习(二)
接下来说一下@ConfigurationProperties这个注解的使用(默认从springboot的全局配置文件application.properties文件中读取值)
spingboot学习(二)
spingboot学习(二)
上面的关于person的属性全都写在application.properties中,但是如果我们不写在application.properties中,而是新建应该person.properties,那么应该怎么注入到Class Person类上呢?
解答:这个时候可以使用@PropertySource:加载指定的配置文件;person.properties是我们自己新建的
spingboot学习(二)
spingboot学习(二)

接下来再说应该注解@ImportResource
@ImportResource:导入Spring的配置文件,让配置文件里面的内容生效;
Spring Boot里面没有Spring的配置文件,我们自己编写的配置文件,也不能自动识别;
想让Spring的配置文件生效,加载进来;@ImportResource标注在一个配置类上

spingboot学习(二)

以上这些都用到了配置文件,但是spring boot说好的实现无配置文件,完全注解化的呢?看下文就知道了
我们编写一个配置类(在类上加@Configuration)
spingboot学习(二)
如果我们非要使用配置文件也可以,我们可以在配置文件中使用配置文件占位符
4、配置文件占位符
1、随机数
spingboot学习(二)
2、占位符获取之前配置的值,如果没有可以是用:指定默认值
spingboot学习(二)
接下来我们看一下springboot的配置文件的加载位置顺序
spingboot学习(二)
springboot的还可以加载外部的配置文件:具体信息看下面
spingboot学习(二)
解析:这里对常用的上图中标红的5中方法做解析
首先看命令行参数法;
所有的配置都可以在命令行上进行指定
java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --server.port=8087 --server.context-path=/abc
多个配置用空格分开; --配置项=值
然后再看第6-9条方式,什么是jar包外部和内部?见下图
spingboot学习(二)

上一篇:Spingboot整合Rides:RedisTemplate自动注入失败的原因


下一篇:小白历险记:spingboot之helloworld