SpringBoot
SpringBoot是一个框架合集,其存在的核心意义在于简化流程,自动装配。
第一个SpringBoot项目
部署
在SpringBoot官网直接创建:
创建之后下载文件即可通过Maven部署。
万能的IDEA集成了该网站,一般我们会直接在IDEA创建SpringBoot项目:
生成的SpringBoot项目:
Application是我们的程序主入口,我们的所有项目都应该配置在主入口同级目录下,否则路径无效。
运行SpringBoot程序
我们将HelloController配置成一个接口:
package com.rsp2012.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
//设置前端的请求路径
@RequestMapping("/hello")
public String hello(){
//调用业务生成前端参数
return "Hello,World";
}
}
运行
可以发现SpringBoot使用内置的Tomcat运行,并且端口为8080。
访问
SpringBoot组成部分
pom.xml
SpringBoot依赖项通过maven加载,默认maven有一个远程的父maven,所以SpringBoot的maven依赖可以不用写版本号,通过父maven继承过来。
启动器
在SpringBoot中maven的依赖其实是一个一个启动器:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
启动器就是Springboot的启动场景,一个启动器含有这个场景的所以依赖。
换句话说,我们在SpringBoot中所需要使用的所有场景只需要找到对应的启动器即可。
主程序入口
package com.rsp2012.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//注解,标注该类是一个SpringBoot应用,SpringBoot的核心,套娃了N多个注解,含有自动装配的原理
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
//主程序入口,一个run方法,反射一个类,
SpringApplication.run(DemoApplication.class, args);
}
}
全局配置文件
-
application.properties
-
application.yaml
两者除了语法区别外,yaml支持各种数据的存储,甚至可以给实体类赋值,而properties只有键值对。
官方虽然默认自带使用properties文件,但是推荐使用的是yaml文件。
properties简单易懂,yaml结构清晰明了。
可以同时存在多个配置文件,不会冲突,而且都会生效,对于冲突的设置,生效优先级为yaml>properties。
application.properties语法:
#设置启动Logo
spring.banner.location=banner.txt
#设置Tomcat默认端口
server.port=8080
application.yaml语法:
#设置启动Logo
spring:
banner:
location: banner.txt
#设置Tomcat默认端口
server:
port: 8080
一两句可能没有什么区别,但是如果配置的语句多了会发现yaml结构真是太香了。
拓展:.xml设置端口语法
<server>
<port>8080<port>
</server>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南