1.配置好maven项目
2.测试springboot项目、
1.创建controller包下面的hello测试类
@Controller:标识此类负责 接收 和 处理 HTTP请求。
@RequestMapping():资源的访问路径
@RsponseBody:将java对象转为json格式的数据。
2.启动Springboot01Application主程序类,进行测试。springboot项目默认的端口号是8080.
3.项目启动成功,在浏览器中打开。
输入本机地址、端口号和资源的访问路径
3.resources文件夹中的目录结构
1.static:保存所有的静态资源:js css images;
2.templates:保存所有的模板页面;(Springboot默认jar)
可以使用模板引擎(freemarker,thymeleaf);
3.application.properties:spring boot应用的配置文件,
也可以修改一些配置。
sprinboot的默认配置文件是 .properties,也可以是yml.或者.xml。
如何写配置文件:
* 配置例子
* .properties:
* sever.port=8801
* .yml: server:
* port:8801
* .xml: <sever>
* <port>8801</port>
* </sever>
4.YAML文件
1.yml基础语法:
使用缩进表示层级关系。
* 缩进时不允许使用 Tab 键,只允许使用空格。
* 缩进的空格数不重要,但同级元素必须左侧对齐。
* 大小写敏感。
* #表示注释。
*
* k:(空格)v:表示一对键值对(空格必须有);
* 以空格的缩进来控制层级关系,只要是左对齐的一列数据都是同一层级的。
* 如:
* sever:
* port:(空格)8802 端口号
* path:(空格)/hello 访问路径
* address:(空格)127.0.0.1 ip地址
*name: abc
* 大小写敏感
* 字面量: 普通的值
2.yml的数据结构
**********************YAML的数据结构**************
对象:键值对的集合。
person:
name: zhangsan
#行内写法
person: {name: zhangsan}
数组:一组按次序排列的值
address:
- beijing
- shanghai
#行内写法
address: [beijing, shanghai]
纯量:单个的、不可再分的值。
msg1: 'hello \n word' # 单引号忽略转义字符 、就是原样输出包括\n,一段输出。
msg2: 'hello \n wprd' # 双引号识别转义字符,会识别\n这个换行符,两段输出。
代码示例:
3.对修改的YML配置文件进行测试:
有三种方式读取配置文件:这里只介绍前两种。具体操纵步骤以@Value为例讲解。
一、
有@Value(name)、@Value(person.name)
private String name
System.out.println(name);
二、
@Autowired
private Environment env;
System.out.println(env.getProperty("name"));
第一步:使用@Value注解读取配置文件的信息,并进行打印测试。
package com.test.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class hello {
@Value("${name}")
private String name;
@Value("${person.name}")
private String name01;
@Value("${msg1}")
private String msg1;
@Value("${msg2}")
private String msg2;
@Value("${address[0]}")
private String address01;
@Value("${address[1]}")
private String address02;
@ResponseBody
@RequestMapping("/hello")
public String hero(){
System.out.println(name);
System.out.println(name01);
System.out.println(msg1);
System.out.println(msg2);
System.out.println(address01);
System.out.println(address02);
return " hello springboot";
}
}
第二步:运行springboot项目,然后再次浏览器访问。
可以看到项目的端口号已经从8080改成了8083。
这里注意,端口号已经变成了8083。
返回控制台。这时的值已经被打印出来了。
5.profile配置方式
补充:profile是用来完成不同坏境下,配置动态能力的。
第一种:多prifile文件方式: 提供多个配置文件,每一个代表一种坏境
* application-dev.properties/yml 开发环境
* application-test.properties/yml 测试坏境
* application-pro.properties/yml 生产环境
在每一个环境下写入端口号:
application-dev.properties:
server.port=8081
application-pro.properties:
server.port=8082
application-test.properties:
server.port=8084
对配置文件进行激活:
在配置文件中配置:spring.profiles.active=test
在application.properties:文件种输入:
application-test.properties:
启动项目
动态激活完成, 端口号成功修改。
第二种: yml多分档方式:在yml中使用 ---分隔不同配置
为了测试,将上面所有以.properties的配置文件全部删除。
application.yml:
---
server:
port: 8086
spring:
profiles:
default: pro
---
server:
port: 8087
spring:
profiles:
default: dev
---
server:
port: 8088
spring:
profiles:
default: test
---
spring:
profiles:
active: dev
启动项目,这时你的动态修改成功。
6.知识补充
***********************内部配置加载的顺序*****************
* springboot程序启动时,会从以下位置加载配置文件
* 1.file:./config/ : 当前项目的/config目录下
* 2.file:./ : 当前项目的根目录
* 3.classpath:./config/ :classpath的/config目录
* 4.classpath:/ :classpath的根目录
* 注意:加载顺寻为上文的排列顺序,高优先级配置的属性会生效。