1、springboot简介
简化spring应用开发的一个框架
整个spring技术栈的一个大整合
j2ee开发的一站式解决
2、微服务
微服务:架构放个(服务简化)
一个应用应该是一组小的服务,可以通过HTTP的方式进行通信,每一个功能元素都是一个可以独立替换和提升的组件
3.环境准备
idea maven 的配置
file->setting->build....->build tools->maven 下设置成自己所下载配置的maven
4.使用springboot写一个hello world
浏览器发送一个请求服务器接受并处理请求 响应一个hello world
1.点击file -》 new project 创建一个spring boot项目
点击next并修改自己自定义的项目名称
创建完后应为该图项目结构 现在的是一个项目的启动类也就是以后需要运行该类来启动项目
2.在src-》main-》Java-》项目名称 下新建controller包 在包下新建控制类
/hello是待会需要访问的URL路径
执行主程序
出现以上信息证明项目启动成功 8080为项目端口 到浏览器输入localhost://8080/hello
5.springboot 的简化部署 也就是将应用打成jar包(依据上面的hello demon)
一、在maven文件中加入 来引用插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
二、点击右侧的maven按钮 点击package 点运行 打包
然后再复制该文件到桌面运行
6
6.场景启动器
引用博客
7.yml简介
springboot是使用一个全局的配置文件来修改默认信息的
↓
application.properties
server.port = 8081
application.yml(yml文件是以数据为中心,避免了xml中大量重复的标签)
server:
port: 8081 (父目录与子目录之间有suo)缩进
8.yml语法
1.基本语法(属性 值 大小写敏感)
以空格的缩进来控制继承关系,只要左对齐的一系列数据yml都会看成同一级别。
2.值的语法
字面量:普通的值(数字 字符 布尔)
字符串默认不需要使用单双引号
“ ”:不会转移字符串里面的特殊字符
“zhangsan \n lisi” zhangsan 换行 lisi
' ' : 会转移字符串里面的特殊字符
“zhangsan \n lisi” zhangsan \n lisi
对象
hunman:
age: 20
name: zhangsan
数组
9.yml配置文件中值的获取
分别创建personlei类和dog类 和编写配置文件
package com.example.demo;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;
/*
* @Component把普通pojo实例化到spring容器中,相当于配置文件中的
<bean id="" class=""/>
* */
@Component
@ConfigurationProperties(prefix = "person")//将文件对应类进行映射
public class Person {
private String name;
private Integer age;
private boolean boss;
private Date birthday;
private Map<String,Object> maps;
private List<Object> lists;
private Dog dog;
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
public void setBoss(boolean boss) {
this.boss = boss;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public void setMaps(Map<String, Object> maps) {
this.maps = maps;
}
public void setLists(List<Object> lists) {
this.lists = lists;
}
public void setDog(Dog dog) {
this.dog = dog;
}
public String getName() {
return name;
}
public Integer getAge() {
return age;
}
public boolean isBoss() {
return boss;
}
public Date getBirthday() {
return birthday;
}
public Map<String, Object> getMaps() {
return maps;
}
public List<Object> getLists() {
return lists;
}
public Dog getDog() {
return dog;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", boss=" + boss +
", birthday=" + birthday +
", maps=" + maps +
", lists=" + lists +
", dog=" + dog +
'}';
}
}
package com.example.demo;
public class Dog {
private String name;
private Integer age;
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public Integer getAge() {
return age;
}
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
server:
port: 8081
person:
name: zhangsan
age: 20
boss: true
birthday: 1998/02/07
maps:
k1: v1
k2: v2
lists:
- lisi
- zhangsan
dog:
name: xiaohu
age: 1
测试类中书写
package com.example.demo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootDemon01ApplicationTests {
@Autowired
Person person;
@Test
public void contextLoads() {
System.out.println(person);
}
}