搭建工具:IDEA
目标:创建Controller,在网页输出 “hello controller!”
(1) 新建项目: File -> New -> Project
(2) 按照图中选择文件类型,点击Next
注意:该创建项目的前提下是需要联网
(3) 为目标文件编辑相关信息,可参考下图
(4) 选择Web ->Spring Web
(5) 文件进行加载,加载后目录如下图所示
(5) 点击右上角运行图标,若出现下列图标,说明启动没有问题
(6) 在 com.example.demo 包下新建 HelloController.java文件,编辑代码
代码如下:
package com.example.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("hello")
public String hello(){
return "hello controller!";
}
}
(7) 在任意一个浏览器输入 http://localhost:8080/hello
,运行结果如图所示
spring-boot-starter-parent:
SpringBoot是基于约定的,很多配置都有默认值,可以使用 application.properties 或者 application.yml ( application.yaml ) 进行配置。以默认的端口号为例,properties 和 yml 代码如下
(1)properties:
server.port = 8080
(2)yml:(注意,port 和 8080之间有空格,且必须)
server:
port: 8080
特点: 简洁,以数据为中心
(1)YAML语法如下:
(1)对象(map):键值对的集合
注意:行内写法person
与大括号之间有空格,括号内name
与zhangsan
之间有空格
person:
name: zhangsan
#行内写法
person: {name: zhangsan}
(2)数组:一组按次序排列的值,使用 “-”表示数组每个元素
address:
- beijing
- shanghai
#行内写法
address: [beijing,shanghai]
(3)纯良:单个的,不可再分的值
msg1: 'hello \n world' #单引号忽略转义字符
msg2: "hello \n world" #双引识别转义字符
(4)参数引用:$()
name: lisi
person:
name: $(name) #引用上边定义的name值
(1)在resources文件夹下创建application.yaml文件,编辑代码,如图所示:
需要掌握的知识点如下:
Environment
批量获取。@Value
获取将会产生很多重复的代码,Environment
获取需要封装,此时我们可以使用ConfigurationProperties
,一个SpringBoot已经封装好的注解。(1) 首先,打开HelloController文件,编辑代码如图所示。
(2)在网页输入http://localhost:8080/hello2
,若是没有运行点击刷新,运行结果如下所示:
(3)上述这是对于普通的变量name
进行的演示,若要使用@Value
获取对象,数组或纯量,HelloController
的代码和运行结果如下所示:
package com.example.demo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@Value("${name}")
private String name;
//对象使用
@Value("${person.name}")
private String name2;
//数组取值: 用中括号取他们的角标
@Value("${address[0]}")
private String address1;
//纯量
@Value("${msg1}")
private String msg1;
@Value("${msg2}")
private String msg2;
@RequestMapping("hello2")
public String hello2(){
//验证,输出数据
System.out.println(name);
System.out.println(name2);
System.out.println(address1);
System.out.println(msg1);//不会识别转义字符\n,会原样输出
System.out.println(msg2);//会识别转义字符
return "hello world!";
}
}
(1)Environment
:Environment
是import org.springframework.core.env.Environment
包下的。
(2)Environment
对数组和对象的使用过程在HelloController
的核心代码如下所示:
@RestController
public class HelloController {
@Autowired
private Environment env;
@RequestMapping("hello2")
public String hello2(){
//要用getProperty()获取属性
System.out.println(env.getProperty("person.name")); //对象
System.out.println(env.getProperty("address[0]"));
return "hello world!";
}
}
(1)针对application.yaml(配置文件)中的person对象为例,先在包下新建Person
类
其中,Person
类中核心代码如下:
@Component //表示下面这个Person类被spring所识别
@ConfigurationProperties(prefix = "person")//prefix 是前缀
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
(2)新建Person
类后,在HelloControlle
中运行测试。其中HelloController.java
的核心代码如下:
@RestController
public class HelloController {
@Autowired
private Person person;
@RequestMapping("hello2")
public String hello2(){
System.out.println(person); //输出对象
return "hello person!";
}
}
补充(3):上面那个红条的bug修复,只是用于提示,并不影响运行,但是也可以去除,方法如下:
首先点击按钮如下:
自动跳转页面如下,补充依赖,加到pom.xml
文件中去
profile: 我们在开发SpringBoot应用时,通常同一套程序会被安装到不同环境,比如开发,测试,生产等。其中数据地址,服务器端口等等配置都不同,比如每次打包时,都要修改配置文件,那么非常麻烦。profile功能就是来进行动态配置切换的。
1)profile配置方式
2)profile 激活方式
Springboot程序启动时:会从以下位置加载配置文件:
加载顺序为上文的排列顺序,高优先级配置的属性会生效
以下是可以设置配置文件的位置:
(1)上述第4个加载文件位置如下图:
(2)上述第3个配置文件首先需要在resources
文件夹下建立config
包,其次需要在该包下建立application.properties
文件:
(3)上述第2个配置文件 首先需要如下图Project—> Project Files, 其次建立application.properties
文件(也可以直接复制在下面)
(4)上述第1个配置文件首先如上图roject—> Project Files,其次在下面建立config
包在建立application.properties
文件
(1)Condition:Condition是在Spring 4.0 增加的条件判断功能,通过这个功能可以实现选择性的创建Bean操作。