一、Spring Boot的引入
创建
总结
# 项目中集成spring和springmvc
1. 新建项目
2. 拷贝jar包(maven)
(场景启动器)
3. 配置spring.xml springmvc.xml
4. 配置web.xml
5. 配置tomcat
springboot 就是优化了这些配置
# springboot使用
1. 创建maven项目
2. 继承父模块
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.2.RELEASE</version>
</parent>
3. 引入web场景启动器
<!--引入场景启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
4. 添加Controller
@Controller
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String hello(){
return "hello";
}
}
5. 配置启动器类
@SpringBootApplication
public class App
{
public static void main( String[] args ){
SpringApplication.run(App.class);
}
}
演示
pom.xml
##
运行
成功!
可能出现的错误
启动失败,端口号占用
添加配置文件application.properties
二、使用idea创建Spring Boot
创建
创建完成之后
正确的结构
之后pom.xml自动创建
如果没有包,先创建包,也没有标记,再记得标记,然后再创建HelloCtroller,再运行。
运行http://localhost:8080/hello
三、介绍配置文件
两种同种效果
介绍application.yml
需要导入一个依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
编写配置文件
、
server:
port: 8080
# 配置人的信息
person:
# 数据使用键值对形式
#使用空格缩进来表示数据层级关系
#字符串类型
name: lisi
#整数
age: 18
#日期
birth: 2020//1/1
#boolean
b: false
#list类型
lists:
- lisi
- wangwu
#map 类型
maps: {
k1: v1, k2: v2}
dog:
name: xiaogou
age: 10
然后创建一个Person类,生成get,set,tostring
- 读取配置文件中的数据,映射到此类的同名属性
@ConfigurationProperties
prefix = “person”: 读取person节点的数据
@Component:让spring容器管理此类
注意:类中的变量要与配置文件中的属性名最好要一致,比较规范,但是如java中的lastName属性,在yml中使用lastName或 last-name都可正确映射!【参考:https://blog.csdn.net/ThinkWon/article/details/100642870】
并且类中全部的类型都是大写!!!!
package com.zy.springboot.bean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;
/***
*
* 读取配置文件中的数据,映射到此类的同名属性
* @ConfigurationProperties
* prefix = "person": 读取person节点的数据
* @Component:让spring容器管理此类
*
*
*/
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String name;
private Integer age;
private Date birth;
private Boolean b;
private List<String> lists;
private Map<String,String> maps;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
public Boolean getB() {
return b;
}
public void setB(Boolean b) {
this.b = b;
}
public List<String> getLists() {
return lists;
}
public void setLists(List<String> lists) {
this.lists = lists;
}
public Map<String, String> getMaps() {
return maps;
}
public void setMaps(Map<String, String> maps) {
this.maps = maps;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", birth=" + birth +
", b=" + b +
", lists=" + lists +
", maps=" + maps +
'}';
}
}
测试
再创建一个Dog类:
package com.zy.springboot.bean;
public class Dog {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
然后在person类中添加private Dog dog;生成get\set方法,并重新tostring(),输出检测:
转载:https://blog.csdn.net/weixin_44926962/article/details/127836820
查看评论