JavaWeb每日学习记录(第15天):Spring Boot入门与快速开发
今天是JavaWeb学习的第十五天,我正式开始学习Spring Boot框架。Spring Boot是基于Spring框架的进一步封装,旨在简化Spring应用的初始搭建和开发过程。它通过“约定优于配置”的理念,极大地减少了开发中的繁琐配置,使得开发者能够更专注于业务逻辑的实现。今天我主要学习了Spring Boot的基本概念、项目搭建以及如何快速开发一个简单的Web应用。
一、Spring Boot入门
Spring Boot的核心优势在于它的自动化配置(Auto-Configuration)和独立运行能力。通过spring-boot-starter
模块,Spring Boot能够自动配置Spring和相关依赖,从而实现“开箱即用”。
示例1:创建第一个Spring Boot项目
1.使用Spring Initializr快速生成项目
我通过Spring Initializr生成了一个基础的Spring Boot项目,选择了以下依赖:
• Spring Web
• Spring Data JPA
• MySQL Driver
• Thymeleaf(作为模板引擎)
2.项目结构
生成的项目结构如下:
my-spring-boot-app/
├── src/
│ ├── main/
│ │ ├── java/com/example/demo/
│ │ │ └── DemoApplication.java
│ │ ├── resources/
│ │ │ ├── application.properties
│ │ │ └── templates/
│ │ └── web/
│ │ └── static/
│ └── test/
│ └── java/com/example/demo/
│ └── DemoApplicationTests.java
└── pom.xml
3.启动Spring Boot应用
package com.example.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}
}
通过@SpringBootApplication
注解,Spring Boot自动开启了Spring的自动化配置功能。运行main
方法后,应用会自动启动一个内嵌的Tomcat服务器,默认监听8080端口。
二、开发一个简单的Web应用
为了更好地理解Spring Boot的开发模式,我尝试开发一个简单的用户管理系统,支持用户注册和列表展示功能。
示例2:用户管理系统
1.创建用户实体类(User.java
)
package com.example.demo.model;import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;@Entity
public class User {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;private String username;private String email;// Getter和Setter方法
}
2.创建用户仓库接口(UserRepository.java
)
package com.example.demo.repository;import com.example.demo.model.User;
import org.springframework.data.jpa.repository.JpaRepository;public interface UserRepository extends JpaRepository<User, Long> {
}
3.创建用户控制器(UserController.java
)
package com.example.demo.controller;import com.example.demo.model.User;
import com.example.demo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;@Controller
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserRepository userRepository;@GetMapping("/register")public String showRegisterForm(Model model) {model.addAttribute("user", new User());return "register";}@PostMapping("/register")public String registerUser(@ModelAttribute("user") User user) {userRepository.save(user);return "redirect:/user/list";}@GetMapping("/list")public String listUsers(Model model) {model.addAttribute("users", userRepository.findAll());return "userList";}
}
4.创建视图页面
使用Thymeleaf模板引擎创建用户注册表单(register.html
)和用户列表页面(userList.html
)。
register.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head><title>Register</title>
</head>
<body><h1>User Registration</h1><form th:action="@{/user/register}" method="post">Username: <input type="text" name="username"><br>Email: <input type="email" name="email"><br><input type="submit" value="Register"></form>
</body>
</html>
userList.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head><title>User List</title>
</head>
<body><h1>User List</h1><table border="1"><tr><th>ID</th><th>Username</th><th>Email</th></tr><tr th:each="user : ${users}"><td th:text="${user.id}"></td><td th:text="${user.username}"></td><td th:text="${user.email}"></td></tr></table>
</body>
</html>
通过Spring Boot的自动化配置和Thymeleaf模板引擎,我能够快速开发出一个功能完整的用户管理系统,而无需手动配置大量的XML文件。
三、Spring Boot的自动化配置
Spring Boot的核心功能之一是自动化配置。通过application.properties
文件,我可以轻松地自定义应用的配置,例如数据库连接、服务器端口等。
application.properties
# 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=password# JPA配置
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true# 服务器端口
server.port=8080
通过这些配置,Spring Boot能够自动配置数据源、JPA和内嵌的Tomcat服务器,极大地简化了开发过程。
四、总结
今天我学习了Spring Boot框架的基本概念和快速开发模式。通过Spring Initializr,我能够快速生成一个基础的Spring Boot项目,并通过自动化配置减少了大量的繁琐配置。同时,我开发了一个简单的用户管理系统,进一步巩固了Spring Boot的开发模式。
Spring Boot是现代JavaWeb开发中不可或缺的框架,它极大地提升了开发效率,使得开发者能够更专注于业务逻辑的实现。明天,我计划深入学习Spring Boot的高级功能,如自定义自动化配置、集成外部服务(如Redis、RabbitMQ)等,进一步提升我的Spring Boot开发能力。