2019-02-10第11天
1. 使用springInitializer快速创建springboot项目
1.IDEA使用spring Initializer快速创建项目
联网创建的boot项目,主程序都已经写好了,我们只用写需要的逻辑
resouress文件目录结构
static:保存所有的静态资源(js,css)
templates:保存所有的模板页面(springboot默认jar包嵌入式Tomcat,默认不支持jsp页面)
可以使用模板引擎(free marker...)
application.properties:springboot应用的配置文件,可以修改一些默认配置
springboot的配置文件
springboot使用一个全局的配置文件,修改默认配置信息
application.properties
application.yml
配置文件放在src/main/resources目录或者类路径/config下
yml是YAML(YAML Ain't Markup Language )语言的文件,以数据为中心,比json和xml等更适合做配置文件
yml语法参考规则
例:
server:
port: 8081
基本语法:
k:(空格)v:(空格) 表示一个键值对(空格必须要有)
以空格的缩进来控制层级关系:只要左对齐的一系列数据,yml都会解析为同一级别的
server:
port: 8081
path:/hello
注意:yml语法是大小写敏感的
2.值的语法
字面量:普通的值(数字,字符串,布尔)
k: v: 字面量的值
字符串默认不用加单引号或双引号;
"":双引号不会转义字符串里面的特殊字符;特殊字符会做为本身想表达的意思
name:"zhansan \n lisi "输出:zhangsan 换行 lisi
'':'zhansan \n lisi ' 输出:zhansan \n lisi
对象:map(值与属性)(键值对)
k: v: 在下一行来写对象的属性和值的关系(注意缩进)
对象还是以k: v: 的方式
friend:
lastName:zhansan
行内写法:
friends: {lastName: zhansan,age: 20}
数组(list set):
用- 值来表示数组中的一个元素
pests:
- cat
- dog
- pig
行内写法:
peats:[cat,dog,pig]
配置文件注入
yml文件或者properties文件,两种写法都可以
#properties文件,IDEA默认使用的是UTF-8编码,配置
配置person里面的属性值
person.age=12
person.birth=1998/01/01
person.boss=false
person.last-name=小虎
person.maps.k1=v1
person.maps.k2=v2
person.lists=a,b,c
person.dog.name=小狗
person.dog.age=23
#yml文件
person:
lastName: 站三
age: 18
boos: true
birth: 1998/2/12
maps:
k1: v2
k2: v3
lists:
- lisi
- zhaowu
Dog:
name: 小虎
age: 2
server:
port:
//JavaBean
/**
* 将配置文件的每一个属性的值,都映射到这个组件中
* @ConfigurationProperties:告诉Springboot将本类中的所有属性和配置文件中的相关配置进行绑定
* prefix = "Person" :配置中的哪个下面的所有属性进行映射,映射的文件是yml或者properties文件
* 只有这个组件是容器中的组件,才能给容器提供Configuration
*/
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String lastName;
private Integer age;
private boolean boss;
private Date birth;
private Map<String,Object> maps;
private List<Object> lists;
private Dog dog;
...
get和set方法
导入依赖
这里会碰到的一个问题是,官网上的描述的那个直接套用在你的pom.xml中可能是会报错的,因为版本号不同的原因。在Maven Repository中可以找到正确的依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
可以在单元测试进行查看
/**
* SpringBoot的单元测试
* 可以在测试期间很方便,类似于编码一样的运行自动注入等容器功能
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBoot01HelloworldQuickApplicationTests {
@Autowired
Person person = new Person();
@Test
public void contextLoads() {
System.out.println(person.toString());
}
}