【Spring Boot】Day01

news2025/7/9 17:05:44

文章目录

  • 一、Spring Boot的引入
    • 创建
    • 总结
    • 演示
    • 运行
    • 可能出现的错误
  • 二、使用idea创建Spring Boot
    • 创建
    • 运行`http://localhost:8080/hello`
  • 三、介绍配置文件
    • 介绍application.yml

一、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(),输出检测:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/5764.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5G核心网技术基础自学系列 | SMF提供的服务

书籍来源&#xff1a;《5G核心网 赋能数字化时代》 一边学习一边整理内容&#xff0c;并与大家分享&#xff0c;侵权即删&#xff0c;谢谢支持&#xff01; 附上汇总贴&#xff1a;5G核心网技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 SMF提供两种服务&#xff0c; 即N…

图文详解Linux基础经典教程(06)——CentOS安装JDK

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 概述 从本节教程开始&#xff0c;我们尝试在CentOS上搭建Java开发环境&#xff0c;即在CentOS中安装&#xff1a;JDK、Tomcat、MySQL等开发工具。 这些工具均可选用YUM或压…

225. 用队列实现栈、232. 用栈实现队列、622. 设计循环队列

LeetCode题解前言用队列实现栈用栈实现队列循环队列总结前言 这三道题都是比较经典的一道题&#xff0c;主要想要考察我们对于栈、队列的性质的应用&#xff0c;也是笔试题的常客&#xff01;&#xff01;&#xff01;接下来就让我们一起来手撕它&#xff01;&#xff01;&…

【C】程序环境和预处理

&#x1f648;个人主页&#xff1a;阿伟t &#x1f449;系列专栏&#xff1a;【C语言–大佬之路】 &#x1f388;今日心语&#xff1a;你所看到的惊艳&#xff0c;都曾被平庸所历练。 本章重点&#xff1a; 程序的翻译环境程序的执行环境详解&#xff1a;C语言程序的编译链接…

next-key lock案例

1. 加锁规则 在默认的可重复读的隔离级别下&#xff0c;加锁规则可以总结为&#xff1a;两个原则&#xff0c;两个优化和一个bug。 原则1&#xff1a;加锁的基本单位是next-key lock。next-key lock是前开后闭的区间原则2&#xff1a;查询过程中访问到的对象才会加锁优化1&am…

计算机网络-数据交换技术

数据交换&#xff1a;实现在大规模网络核心上进行数据传输的技术基础。 常见的数据交换技术包括&#xff1a;电路交换、报文交换和分组交换。 一、电路交换 电路&#xff1a;通过中间交换结点为两台主机之间建立一条专用的通信线路。电路交换&#xff1a;是最早出现的一种交换…

这个神器,让我的 Python 代码运行速度快了100倍

Python 已经得到了全球程序员的喜爱&#xff0c;连续多期稳坐编程语言排行榜第一把交椅。但是还是遭到一些人的诟病&#xff0c;原因之一就是认为它运行缓慢。 要是有一款能够自动优化我们代码的神器该有多好啊&#xff01; 于是&#xff0c;大家都在想尽各种办法来提高 Pytho…

弘扬企业家精神!闪马智能创始人兼CEO彭垚再获殊荣

随着新业态、新活力涌现&#xff0c;诞生了一批又一批新的优秀企业家。11月8日&#xff0c;闪马智能创始人兼CEO彭垚荣膺胡润百富“2022青年产业领袖”。 自2016年起&#xff0c;彭垚连续创业&#xff0c;7年内成功培育并壮大了两家行业独角兽企业&#xff0c;2019年4月成立闪…

创龙AD+全志T3 ad_display 开发案例 (2)

上一篇&#xff1a;创龙AD全志T3 ad_display 开发案例(1) 前 言 本文主要介绍基于全志科技T3(ARM Cortex-A7)处理器的8/16通道AD采集开发案例&#xff0c;使用核芯互联CL1606/CL1616AD芯片&#xff0c;亦适用于ADI AD7606/AD7616。CL1606/CL1616与AD7606/AD7616软硬件兼容。 …

OpenCV图像处理——图像梯度

总目录 图像处理总目录←点击这里 七、图像梯度 7.1、图像梯度-Sobel算子 原图 直接计算 不建议这么算 sobelxycv2.Sobel(img,cv2.CV_64F,1,1,ksize3) sobelxy cv2.convertScaleAbs(sobelxy) cv_show(sobelxy,sobelxy)分别计算——合并 当前位置的像素值等于sobel算…

spring security调用过程;及自定义改造

认证/授权概述 一般系统都有登录接口来校验用户是否存在&#xff0c;密码是否正确&#xff0c;然后会颁发一个token给客户端&#xff0c;后续客户端就可以带着这个token来请求&#xff0c;代表自己是合法请求。 spring security责任链 请求->UsernamePasswordAuthenticati…

【MFC】打砖块小游戏(上)(5)

创建WIN32项目的时候&#xff0c;可以去掉勾选【空项目】可以减少工作量。 创建项目 文件-》新建-》 项目-》WIN32项目-》取消勾选空项目&#xff0c;完成创建 创建完成后&#xff0c;多出了很多文件&#xff0c;当然很多代码是前面已经手动写过了的&#xff1a; stdafx.h …

聚醚羰基铑功能化离子液体{[CH3O(CH2CH2O)nmim][Rhx(CO)y]}

聚醚羰基铑功能化离子液体{[CH3O(CH2CH2O)nmim][Rhx(CO)y]} 离子液体种类 目前研究较多的离子液体阳离子&#xff0c;根据有机母体的不同主要可分四种&#xff0c;即咪唑类离子[R1R3Im]、吡啶类离子[RPy]、烷基季铵类离子[NRxH4-x]以及烷基季膦类离子[PRxH4-x]。这四类阳离子…

【Designing ML Systems】第 9 章 :生产中的持续学习和测试

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

MySQL数据库的约束

文章目录一、约束是什么&#xff1f;二、约束的具体操作Not NULLUNIQUE约束的组合使用PRIMARY KEYDEFAULTFOREIGN KEY一、约束是什么&#xff1f; 约束就是&#xff0c;在创建表的时候&#xff0c;对表设置一些规则&#xff0c;只有满足这些规则&#xff0c;才可以插入数据&am…

【微服务】Nacos通知客户端服务变更以及重试机制

&#x1f496;Spring家族源码解析及微服务系列 ✨【微服务】Nacos服务发现源码分析 ✨【微服务】SpringBoot监听器机制以及在Nacos中的应用 ✨【微服务】Nacos客户端微服务注册原理流程 ✨【微服务】SpringCloud中使用Ribbon实现负载均衡的原理 ✨【微服务】SpringBoot启动流程…

字节一面后,我又看了一遍ThreadLocal核心原理

前言&#xff1a;上周在面试字节的时候&#xff0c;问到了ThreadLocal的核心原理&#xff0c;由于这个知识点当时有些淡忘&#xff0c;因此作此篇文章进行知识的记录&#xff0c;同时希望能够帮助到其他的小伙伴儿们。 本篇文章记录的基础知识&#xff0c;适合在学Java的小白&a…

动态 SQL

文章目录一、学习目的二、动态 SQL 中的元素三、条件查询操作四、更新操作五、复杂查询操作1.foreach 元素中的属性2.foreach 元素迭代数组3.foreach 元素迭代 List4.foreach 元素迭代 Map一、学习目的 在实际项目的开发中&#xff0c;开发人员在使用 JDBC 或其他持久层框架进…

【汇编 C++】多态底层---虚表、__vfptr指针

前言&#xff1a;如果对多态不太了解的话&#xff0c;可以看我的这篇文章《C多态》&#xff0c;另外本文中出现到的汇编代码&#xff0c;我都会予以解释&#xff0c;看不懂没关系&#xff0c;知道大概意思就行&#xff0c;能不讲汇编的地方我就不讲&#xff1b; 本文使用到的工…

networkx学习记录

networkx学习记录networkx学习记录1. 创建图表2. 节点3. 边4.检查图的元素5.从图中删除元素6.使用图构造函数7.访问边和邻居8.向图、节点和边添加属性9.有向图10. 绘制图形networkx学习记录 1. 创建图表 创建一个空图 import networkx as nx G nx.Graph()此时如果报以下错误…