飞道的博客

【Spring Boot】Day01

333人阅读  评论(0)

一、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
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场