SpringBoot的创建及配置文件

news2024/11/24 10:01:28

文章目录:一.Spring项目的创建(1)SpringBoot的含义

                                                      (2)SpringBoot的优点

                                                       (3)项目目录的运行和介绍

                                                         

                   二.SpringBoot的配置文件

                                                          (1)配置文件的作用

                                                             (2)两种主要的配置文件:properties、yml语法和优缺点

                                                                        

                   三.设置不同环境的配置文件

一.Spring项目的创建

1.SpringBoot含义

SpringBoot是简化Spring程序开发的脚手架

2.SpringBoot的优点

(1)快速集成框架:SpringBoot在创建的时候提供了添加依赖的功能,不再需要手动往配置文件里添加依赖

(2) 内置运行容器,不需要再配置Tomcat等Web容器,直接运行和部署程序

(3)快速部署项目,无需任何外部容器即可启动并运行项目

(4)可以不再用xml的方式,使用注解和配置的方式进行开发

(5)支持更多的监控的指标,可以更好的了解项目的运行情况

3.Spring项目的创建

(1)安装SpringBoot Helper插件

(2)创建Spring项目 

 

 (2)

注意:第一次打开SpringBoot项目加载可能会比较慢,因为SpringBoot里添加的第三方框架并不在本地仓库,如果长时间加载,或者加载失败,我们需要检查是否配置了国内源

(3)项目目录的介绍和运行

(4)启动类 

下面我们用SpringBoot项目来实现和浏览器和用户的交互 

我们发送一个请求然后最终在客户端上返回个hello

这里@ResponseBody注解表示的是:表示当前类中的所有方法返回的都是非静态页面的数据

 二.SpringBoot的配置文件

1.配置文件的作用:

用于存放数据库的信息(url、用户名、密码)

用于设置项目端口

第三方系统的调用密钥等信息

可用于设置普通日志和异常日志,用于定位和发现问题

如果没有配置文件,那么项目就不能连接数据库,也没法用日志来排查问题

2.SpringBoot的配置文件主要有两种配置文件:

properties配置文件

(1)properties语法

采用键值对的方式,key和Value之间采用=连接

server.port=8080
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/java_114?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root

javaclass=106
studentid=3

(2)读取properties配置文件

采用注解@Value  注意使用"${}"格式来读取

public class Bup {
    @Value("${server.port}")
    public int port;
    @Value("${javaclass}")
    public int javaclass;

    @Value("${studentid}")
    public int studentid;
    @Value("${spring.datasource.url}")
    public String url;
    @Value("${spring.datasource.username}")
    public String username;
    @Value("${spring.datasource.password}") 
}

(3)properties配置文件优点和缺点

(1)key会出现很多的冗余信息

(2) 只支持java一种编程语言

优点:SpringBoot项目默认的配置文件,且它的优先级比yml文件高,当出现相同的配置项时,以properties配置文件为主。

yml配置文件

(1)yml基本语法

yml是树形结构的配置文件。它的基础是“key: value”,注意key和Value之间使用英文冒号加空格的方式组成,其中的空格不可省略

server:
  port: 8080
string: java
student:
 id: 2
 name: xiohai
 age: 18
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/java_114?characterEncoding=utf8
    username: root
    password: root

 (2)yml配置读取

和properties配置文件读取一样,都使用注解@Value即可

注意事项:value 值加单双引号

string:
  str1: hello \n root
  str2: 'hello \n root'
  str3: "hello \n root"
@RestController
@Component
@ResponseBody
public class Bup {
    @Value("${string.str1}")
    public String str1;
    @Value("${string.str2}")
    public String str2;
    @Value("${string.str3}")
    public String str3;

    @PostConstruct
    public void doPostConstruct()
    {
        System.out.println("str1:"+str1);
        System.out.println("str2:"+str2);
        System.out.println("str3:"+str3);

    }
   


}

我们来看一下打印结果:

从结果我们可以看出:字符串 默认不加上单引号或双引号、单引号会转义特殊字符成一个普通的字符,而双引号不会转义特殊字符里面的普通字符,特殊字符表达它本身含义。

配置对象:

student:
 id: 2
 name: xiohai
 age: 18

或者是行内写法:

student: {id: 2,name: xiaohai,age: 18}

这时候我们不再用Value注解来读取了,而是使用@ConfigurationProperties

@ConfigurationProperties("student")
@Component
@Setter
@Getter
@ToString
public class student {
    public int id;
    public String name;
    public int age;

}

 注意原则上这个类里面我们必须写所有属性的Getter和Setter方法,为这个里我们写了Setter和Getter注解,所以可以省去

然后把student对象注入到Bup类里

@RestController
@Component
@ResponseBody
public class Bup {

    @Autowired
    public student cup;

    @PostConstruct
    public void doPostConstruct() {
        System.out.println(cup);

    }
}

我们看一下打印结果:

(3)yml优点:

可以更好的解决冗余问题 

更具通用性,可以支持多种编程语言

 三.设置不同环境的配置文件

1.创建不同环境的配置文件:

application-dev.tml(开发环境)

application-prod.yml(生产环境)

application-test(测试环境)

2.在application.yml中设置运行环境

spring:
  profiles:
    active: dev   //表示当前项目所处的环境为开发环境

我们将开发的环境项目端口号设为 :7089,生产环境端口号设为:8056,测试环境端口号:7077,我们将当前项目的环境设为开发环境:我们看一下用的端口号,

 这表示我们当前确实处在开发的环境。

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

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

相关文章

E5--Aurora 8/10Bip核实现光纤接口通信2023-04-22

1.场景 使用两块开发板A和B,通过光纤接口将在A板上ROM中存储的图片数据转发到B板并显示在B板连接的显示屏上,实现光纤接口通信。 具体场景是,由于A735T片上资源有限,因此ROM IP存储了一张1024*600(LVDS屏幕&#xff0…

集成光子学在计算领域的机会与挑战【光子学公开课 第133期】

没有听懂,自己浅浅记录一下 背景 深度学习与大模型带来的算力需求(需要的算力指数型提高) 解决方案 算力池化和算力网络 传统的主机服务,可能会存在闲置资源。 ->改变商业模式:不是出售硬件服务,…

【Makefile通用模板】入门必看篇,超详细

工程目录 假如我们有以下目录结构&#xff1a; . ├── inc │ ├── add.h │ └── sub.h ├── main.c └── src├── add.c└── sub.c文件中的内容如下&#xff1a; //main.c #include <stdio.h> #include "add.h" #include "sub.h&q…

nodejs+vue 智慧餐厅点餐餐桌预订系统

现在社会的生活节奏越来越快&#xff0c;人们对互联网的需求也越来越大&#xff0c;不仅要求使用方便&#xff0c;而且对于功能及扩展性也有了更高的要求&#xff0c;最能达到要求莫过于利用计算机网络&#xff0c;将所需功能要求和计算机网络结合起来&#xff0c;就形成了本智…

FOSSASIA Summit 的参会为 openEuler 全球化注入强心剂

2023年4月15日&#xff0c;亚洲顶级开源盛会FOSSASIA Summit 2023在新加坡落幕。openEuler作为白金赞助级别参会。 自2009年成立以来&#xff0c;除因疫情中断3年之外&#xff0c;FOSSASIA Summit已累计举办11年。作为亚洲年度开源技术旗舰活动&#xff0c;FOSSASIA Summit吸引…

C/C++ 常见编译器说明

文章目录 window下常用的编译器如何获取MSVCMinGW Linux和MaxOS下的编译器gcc和g的区别 window下常用的编译器 window下并不提供原生的类似gcc/g的类unix系统下的C/C编译器。常用的是 MSVC&#xff08;Microsoft Visual C/C&#xff09;编译器&#xff0c;在我们安装完visual …

python 获取脚本所在存储目录

获取.py文件所在目录 问题背景问题原因解决方法 问题背景 项目需要使用到当前脚本所在的目录然后保存文件 我像之前一样&#xff0c;使用了os.getcwd() 去获取脚本目录&#xff0c;保存文件&#xff0c;程序正常运行&#xff0c;但设定路径下没有任何文件&#xff0c;没有头脑…

读 AI学者生存策略

链接&#xff1a;https://arxiv.org/pdf/2304.06035.pdf 作者&#xff1a;Julian Togelius and Georgios N. Yannakakis 随着大模型 和 大数据的出现&#xff0c; AI研究者 都会感到焦虑。 没有计算资源 &#xff0c;没有标注的人力&#xff0c;很难做出突破性的研究。即使很多…

FFmpeg 中 RTSP推流桌面和Android设备延时测试

文章目录 1. FFMPEG 推流&#xff1a;1.1 FFmpeg 源码准备1.2 RTSP 推流服务器 2. 执行流程2.1 启动服务器2.2 执行桌面推流2.3 播放 3. 安卓测试 1. FFMPEG 推流&#xff1a; 1.1 FFmpeg 源码准备 官网&#xff0c;GitHub&#xff0c;CSDN中选一个就好&#xff1a; ● 官网…

在线图片编辑网站汇总

目录 前言一、在线抠图工具1. 佐糖2. remove.bg3. Clipping Magic4. 起兮深深5. BgSub6. 改图神器7. PIXLR 二、其他工具1. 压缩图2. AI人工智能图片放大 前言 本文收录了多个可以在线抠图、在线编辑图片的网站。 一、在线抠图工具 1. 佐糖 官网&#xff1a;链接 特点&#x…

一本通 3.4.4 并查集

1346&#xff1a;【例4-7】亲戚(relation) 【题目描述】 或许你并不知道&#xff0c;你的某个朋友是你的亲戚。他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。如果能得到完整的家谱&#xff0c;判断两个人是否是亲戚应该是可行的&#xff0c;但如果两个人的最近公共祖…

企业想注销境外投资备案应该怎么做?

我们今天就来说一下关于境外投资备案的注销&#xff0c;有办理的需求&#xff0c;当然就有注销的需求。如果您当初想去海外投资并购一家公司&#xff0c;因此办理了境外投资备案&#xff0c;但是由于种种原因可能没有办法投资下去了&#xff0c;那么这个时候我们就需要做境外投…

【Linux网络服务】SSH远程访问及控制

一、openssh服务器 1.1ssh协议 SSH&#xff08;Secure Shell&#xff09;是一种安全通道协议&#xff0c;主要用来实现字符界面的远程登录、远程 复制等功能&#xff1b; SSH 协议对通信双方的数据传输进行了加密处理&#xff0c;其中包括用户登录时输入的用户口令&#xff1…

测试月入30K,Soeasy?测试这一行涨薪机制被我摸透了...

1.软件测试如何实现涨薪 首先涨薪并不是从8000涨到9000这种涨薪&#xff0c;而是从8000涨到15K加到25K的涨薪。基本上三年之内就可以实现。 如果我们只是普通的有应届毕业生或者是普通本科那我们就只能从小公司开始慢慢往上走。 有些同学想去做测试&#xff0c;是希望能够日…

nodejs+vue 智能餐厅菜品厨位分配管理系统

系统功能主要介绍以下几点&#xff1a; 本智能餐厅管理系统主要包括三大功能模块&#xff0c;即用户功能模块和管理员功能模块、厨房功能模块。 &#xff08;1&#xff09;管理员模块&#xff1a;系统中的核心用户是管理员&#xff0c;管理员登录后&#xff0c;通过管理员功能来…

BPF之前端工具BCC与bpftrace

BPF前端工具BCC与bpftrace 一、概述 BCC和bpftrace到底是什么&#xff0c;与BPF是什么关系呢&#xff1f; 经过上一篇的介绍&#xff0c;BPF是内核中的执行引擎&#xff0c;BCC和bpftrace则是两个前端工具&#xff0c;比如用户可以直接使用的命令行工具。 BCC与bpftrace又有…

Stable Diffusion Lora模型训练详细教程

1. 介绍 通过Lora小模型可以控制很多特定场景的内容生成。 但是那些模型是别人训练好的&#xff0c;你肯定很好奇&#xff0c;我也想训练一个自己的专属模型&#xff08;也叫炼丹&#xff5e;_&#xff5e;&#xff09;。 甚至可以训练一个专属家庭版的模型&#xff08;fami…

JDK JRE JVM之间的关系

文章目录 1.从定义的角度解释JDK、JRE、JVM2、详细介绍JDK3、详细介绍JRE4、详细介绍JVM1、JVM内部区域划分 5、如何运行一个java程序&#xff1f; 本篇文章仅仅是个人片面观点&#xff0c;可能有错误或者表述不清的地方 1.从定义的角度解释JDK、JRE、JVM JDK&#xff1a;Java…

ArcGIS面要素最小外接矩形、外接圆的绘制方法

本文介绍在ArcMap软件中&#xff0c;基于一个面图层&#xff0c;绘制其中面要素的最小外接矩形、最小外接圆等的方法。 首先&#xff0c;我们来看一下本文需要实现的需求。现有一个面要素图层&#xff0c;其中包含多个面要素&#xff0c;如下图所示。我们希望绘制这个面要素图层…

【Redis】Redis十大数据类型—列表List

介绍 List列表是简单的字符串列表&#xff0c;按照插入顺序排序&#xff0c;可以从头部或尾部向List列表添加元素。 列表的最大长度是2^32-1&#xff0c;也就是每个列表支持超过40亿个元素。 实现 底层数据结构是由双向链表或压缩列表实现。 如果列表的元素个数小于 512 个…