news 2026/4/16 17:46:20

application.properties

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
application.properties

[Spring Boot] Java开发实战:Spring Boot应用详解

引言

Spring Boot是Java开发中一个非常重要的框架,它简化了Spring应用的初始搭建和开发过程。作为一年经验的Java开发者,我们需要学习它是因为现在大部分企业级项目都在使用Spring Boot。在实际工作中,无论是开发Web应用、微服务还是简单的后台管理系统,Spring Boot都是我们的首选框架。

核心概念解析

Spring Boot的核心思想是"约定优于配置"。简单来说,它提供了很多默认配置,我们不需要像以前用Spring那样写一大堆XML配置文件。它内置了Tomcat服务器,可以直接运行,还提供了很多"starter"依赖,让我们只需要引入一个依赖就能使用完整的功能模块。

实际开发示例

下面我展示一个最常用的Web应用开发示例:

// 主启动类 - 这是Spring Boot应用的入口 @SpringBootApplication // 这个注解包含了@Configuration、@EnableAutoConfiguration、@ComponentScan public class DemoApplication { public static void main(String[] args) { // 启动Spring Boot应用 SpringApplication.run(DemoApplication.class, args); } } // 控制器类 - 处理HTTP请求 @RestController // 这个注解表示这是一个REST风格的控制器,返回JSON数据 @RequestMapping("/api") // 定义基础路径,所有这个控制器的方法都会以/api开头 public class UserController { // 模拟一个用户列表 private List<User> users = new ArrayList<>(); // 构造函数中初始化一些测试数据 public UserController() { users.add(new User(1, "张三", 25)); users.add(new User(2, "李四", 30)); } // GET请求示例:获取所有用户 @GetMapping("/users") // 处理GET请求,访问路径为/api/users public List<User> getAllUsers() { return users; // Spring Boot会自动将List转换为JSON格式返回 } // POST请求示例:添加新用户 @PostMapping("/users") // 处理POST请求 public User addUser(@RequestBody User user) { // @RequestBody表示从请求体中获取JSON数据 users.add(user); return user; // 返回创建的用户 } // GET请求示例:根据ID获取用户 @GetMapping("/users/{id}") // {id}是路径参数 public User getUserById(@PathVariable int id) { // @PathVariable获取路径参数 return users.stream() .filter(u -> u.getId() == id) .findFirst() .orElse(null); } } // 简单的用户实体类 class User { private int id; private String name; private int age; // 必须要有无参构造函数,否则JSON转换会出错 public User() {} public User(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } // 必须要有getter和setter方法,否则JSON转换时无法获取属性值 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }

常见问题与解决

问题1:启动时报端口被占用

我第一次用Spring Boot时,启动应用经常遇到端口被占用的问题。Spring Boot默认使用8080端口,如果这个端口已经被其他程序占用,就会启动失败。

解决方法:application.propertiesapplication.yml配置文件中修改端口:

server.port=8081 # 修改为其他可用端口 # 或者使用application.yml(注意格式) server: port: 8081

问题2:依赖冲突

在引入多个starter依赖时,可能会遇到版本冲突问题。

解决方法:

  1. 使用Maven的依赖树查看命令:mvn dependency:tree
  2. 在pom.xml中使用<exclusions>排除冲突的依赖
  3. 让Spring Boot管理版本,尽量使用Spring Boot提供的starter依赖

学习建议

对于刚接触Spring Boot的开发者,我建议的学习路径是:

  1. 第一步:从官网的Quick Start开始,先跑通第一个Hello World程序
  2. 第二步:学习最常用的几个注解:@SpringBootApplication、@RestController、@GetMapping、@PostMapping等
  3. 第三步:学习配置文件的使用(application.properties/yml)
  4. 第四步:学习连接数据库(Spring Data JPA或MyBatis)
  5. 第五步:学习异常处理、日志配置等进阶内容

推荐资源:

  • Spring Boot官方文档(有中文版)
  • B站上的Spring Boot入门视频教程
  • GitHub上找一些简单的开源项目学习

记住,不要一开始就追求深入底层原理,先学会怎么用,在实际项目中多练习,遇到问题多搜索,慢慢就会熟练起来。我刚开始的时候也是边做项目边学习,遇到问题就查资料,现在用起来已经很顺手了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 11:29:41

9、Eclipse集成开发环境:C/C++开发全流程指南

Eclipse集成开发环境:C/C++开发全流程指南 1. Eclipse界面元素概述 Eclipse的工作区窗口包含编辑器(Editors)、视图(Views)和透视图(Perspectives)。 - 编辑器 :允许打开、编辑和保存对象,遵循打开 - 保存 - 关闭的生命周期,与基于文件系统的工具类似,但更紧密…

作者头像 李华
网站建设 2026/4/15 19:06:30

外部连接 redis-server 相关配置

1&#xff0c;修改绑定ip redis默认绑定本地环回ip127.0.0.1:6379 能看出&#xff1a;Redis 仅绑定本机回环 IP&#xff08;127.0.0.1&#xff09;&#xff0c;只能在 CentOS 虚拟机内部访问&#xff0c;外部&#xff08;比如你的主机、其他设备&#xff09;无法连接。 cd /usr…

作者头像 李华
网站建设 2026/4/8 14:22:42

计算机毕业设计springboot在线香水销售系统 基于SpringBoot的香水电商管理平台 SpringBoot驱动的线上香氛商城系统

计算机毕业设计springboot在线香水销售系统91wiq80a &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。香水消费正在快速“触网”&#xff0c;但国内垂直香氛赛道仍缺一个轻量、高颜…

作者头像 李华
网站建设 2026/4/15 15:59:47

Draco 3D压缩终极指南:如何高效处理大型3D模型文件

Draco 3D压缩终极指南&#xff1a;如何高效处理大型3D模型文件 【免费下载链接】draco Draco is a library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics. 项目地址: h…

作者头像 李华
网站建设 2026/4/16 12:10:49

FreeRTOS源码深入研究:6.软件定时器(software timer)

一、软件定时器的特性软件定时器是由FreeRTOS内核提供的纯软件功能&#xff0c;通过守护任务&#xff08;prvTimerTask&#xff09;统一管理所有定时器&#xff0c;不依赖于硬件定时器外设。软件定时器可以让某个任务只执行一次&#xff08;一次性&#xff1a;启动后&#xff0…

作者头像 李华