Springboot项目开发学习入门教程
Spring Boot是一个用于简化新Spring应用初始搭建以及开发过程的框架,支持自动配置和嵌入式容器。本文将详细介绍Spring Boot项目开发学习的内容,包括环境搭建、第一个Spring Boot应用创建以及核心配置。Spring Boot项目开发学习涵盖了数据访问开发和框架集成与部署,帮助开发者快速构建独立的生产级别应用。
Spring Boot简介Spring Boot是什么
Spring Boot 是一个用于简化新Spring应用初始搭建及开发过程的框架。它通过配置文件简化Spring应用的外部配置,并内置大量常用库依赖,使开发者无需关心版本不一致等兼容性问题。
Spring Boot的核心是约定优于配置,支持自动配置,帮助开发者快速构建独立的、生产级别的基于Spring的应用程序。Spring Boot内置了Tomcat、Jetty或Undertow作为应用容器,简化部署。
Spring Boot的主要特性
Spring Boot 包含以下主要特性:
- 自动配置:通过约定优于配置的方式自动配置项目,减少开发人员的配置工作量。
- 起步依赖:通过引入简单依赖自动管理库依赖及版本,简化项目依赖管理。
- 嵌入式容器:内置了Tomcat、Jetty或Undertow等服务器,无需额外配置即可直接运行。
- 命令行接口:提供了命令行工具,可执行脚本、测试或打包等操作。
- 监控和诊断:提供了Actuator模块,用于监控应用状态,提供了许多端点信息。
- 生产就绪功能:提供日志、健康检查、外部配置、性能指标等。
Spring Boot的优势
- 简化Spring应用开发:提供自动配置功能,大大简化Spring应用开发过程,减少配置文件编写。
- 减少依赖管理负担:提供大量起步依赖,自动管理库依赖及版本。
- 快速上线应用:通过嵌入式容器快速启动应用。
- 支持多种开发框架:支持多种视图模板,如Thymeleaf、Freemarker等,快速开发Web应用。
- 支持多种数据访问方式:支持JPA、MyBatis等数据访问技术,提供丰富的数据访问解决方案。
- 灵活的扩展机制:可根据需要选择功能模块,自由组合使用。
下载和安装JDK
- 访问Oracle官方下载页面,选择合适的JDK版本。
- 下载JDK安装包后,双击安装包,按照安装向导进行安装。
- 安装完成后,在环境变量中配置JDK相关路径。
示例配置环境变量:
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_251
PATH=%JAVA_HOME%\bin;%PATH%
安装IDE(如IntelliJ IDEA或Eclipse)
- 访问 IntelliJ IDEA 或 Eclipse 官方下载页面,下载对应版本的安装包。
- 下载完成后,双击安装包,按照向导进行安装。
- 安装完成后,打开IDE,进行基本设置,如安装插件、配置代码风格等。
示例安装Eclipse:
对于Linux环境:
# 下载Eclipse安装包
wget https://download.eclipse.org/releases/latest/eclipse-java-latest-linux-gtk-x86_64.tar.gz
# 解压安装包
tar -xzf eclipse-java-latest-linux-gtk-x86_64.tar.gz
# 进入安装目录
cd eclipse
# 打开Eclipse
./eclipse
对于Windows环境:
- 下载Eclipse安装包。
- 双击安装包,按照安装向导进行安装。
- 安装完成后,打开Eclipse,进行基本设置。
下载并安装Spring Boot CLI或使用Spring Initializr创建项目
- 访问Spring Boot CLI下载页面,下载对应版本的安装包。
- 安装完成后,通过命令行创建Spring Boot项目。
- 使用Spring Initializr创建项目:
- 访问 Spring Initializr页面。
- 填写项目信息,如项目名称、语言(Java)、Spring Boot版本、依赖等。
- 点击Generate生成项目压缩包。
- 解压压缩包,导入到IDE中进行开发。
示例安装Spring Boot CLI:
# 下载Spring Boot CLI安装包
wget https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-cli/2.3.4.RELEASE/spring-boot-cli-2.3.4.RELEASE-bin.zip
# 解压安装包
unzip spring-boot-cli-2.3.4.RELEASE-bin.zip
# 进入安装目录
cd spring-boot-cli-2.3.4.RELEASE
# 配置环境变量
export PATH=$PATH:$(pwd)/bin
# 使用CLI创建Spring Boot项目
spring init --dependencies=web myproject
创建Spring Boot项目步骤
- 在IDE中创建Maven项目。
- 在pom.xml文件中添加Spring Boot依赖。
- 创建应用主类,并使用
@SpringBootApplication
注解进行标注。 - 编写启动方法,使用
SpringApplication.run()
启动应用。
示例pom.xml文件:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
编写第一个Spring Boot应用实例
- 创建
HelloController
类,使用@RestController
注解标注为控制器。 - 在控制器中定义一个GET请求处理方法,返回简单的字符串。
示例HelloController.java:
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}
运行和测试应用
- 在IDE中运行应用,或者使用命令行启动应用。
- 访问http://localhost:8080/hello地址,查看返回的字符串。
示例启动命令:
mvn spring-boot:run
Spring Boot核心配置
application.properties和application.yml配置文件详解
Spring Boot支持使用application.properties
和application.yml
两种格式的配置文件,可以用来配置各种选项,如数据源配置、端口号等。
application.properties
示例:
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/testdb
spring.datasource.username=root
spring.datasource.password=root
application.yml
示例:
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/testdb
username: root
password: root
自动配置原理
Spring Boot的自动配置原理是通过@SpringBootApplication
注解自动扫描相关的配置类,并加载这些配置类中的配置信息。Spring Boot会根据类路径下的依赖,自动配置一些常用的SpringBeans。
使用注解@EnableAutoConfiguration和@SpringBootApplication
@EnableAutoConfiguration
注解用于开启自动配置功能。@SpringBootApplication
注解是组合注解,它包括@Configuration
、@EnableAutoConfiguration
和@ComponentScan
三个注解。
示例主类:
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);
}
}
数据访问开发
使用Spring Data JPA进行数据库操作
Spring Data JPA是Spring Data项目的一部分,用于简化JPA的使用,提供统一的编程模型,简化数据访问层的开发。
- 在pom.xml文件中添加JPA依赖。
- 创建实体类,使用
@Entity
注解标注为实体。 - 创建JPA仓库接口,继承
JpaRepository
接口。
示例pom.xml文件:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
示例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.AUTO)
private Long id;
private String name;
private String email;
// 构造函数、getter、setter省略
}
示例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> {
}
集成JDBC访问数据库
Spring Boot也支持通过JDBC访问数据库,这种方式更直接,可以绕过ORM层的抽象。
- 在pom.xml文件中添加JDBC依赖。
- 在配置文件中配置数据源。
- 创建JdbcTemplate工具类,用于执行数据库操作。
示例pom.xml文件:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
示例application.properties文件:
spring.datasource.url=jdbc:mysql://localhost:3306/testdb
spring.datasource.username=root
spring.datasource.password=root
示例DatabaseUtil.java工具类:
package com.example.demo.util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import javax.sql.DataSource;
@Component
public class DatabaseUtil {
@Autowired
private DataSource dataSource;
public JdbcTemplate getJdbcTemplate() {
return new JdbcTemplate(dataSource);
}
public void createTable() {
String sql = "CREATE TABLE IF NOT EXISTS users (id BIGINT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255))";
JdbcTemplate jdbcTemplate = getJdbcTemplate();
jdbcTemplate.execute(sql);
}
}
连接MySQL数据库的步骤和示例代码
- 在pom.xml文件中添加MySQL驱动依赖。
- 在application.properties文件中配置MySQL数据源。
- 创建实体类和仓库接口。
- 编写测试代码,进行数据库操作。
示例pom.xml文件:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
示例application.properties文件:
spring.datasource.url=jdbc:mysql://localhost:3306/testdb
spring.datasource.username=root
spring.datasource.password=root
示例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.AUTO)
private Long id;
private String name;
private String email;
// 构造函数、getter、setter省略
}
示例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> {
}
示例UserService.java服务类:
package com.example.demo.service;
import com.example.demo.model.User;
import com.example.demo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public User saveUser(User user) {
return userRepository.save(user);
}
public List<User> getAllUsers() {
return userRepository.findAll();
}
}
框架集成与部署
集成Thymeleaf实现前端模板渲染
Thymeleaf是一个适用于Web和独立环境的现代模板引擎,可以在任何Java平台中使用,也可以在服务端和客户端使用。
- 在pom.xml文件中添加Thymeleaf依赖。
- 创建Thymeleaf模板文件。
- 编写控制器,返回Thymeleaf模板页面。
示例pom.xml文件:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
示例index.html模板文件:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Spring Boot Thymeleaf Example</title>
</head>
<body>
<h1 th:text="'Hello, ' + ${name} + '!'"></h1>
</body>
</html>
示例HelloController.java控制器:
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(Model model) {
model.addAttribute("name", "World");
return "index";
}
}
使用Spring Boot Admin监控应用
Spring Boot Admin是一个集中管理Spring Boot应用的工具,提供了丰富的监控信息,如健康检查、性能指标等。
- 在pom.xml文件中添加Spring Boot Admin依赖。
- 创建Spring Boot Admin服务端应用。
- 创建Spring Boot Admin客户端应用,并将其注册到服务端。
示例服务端pom.xml文件:
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>
示例服务端application.properties文件:
spring.boot.admin.notify.mail.from=from@example.com
spring.boot.admin.notify.mail.to=to@example.com
server.port=8081
示例服务端主类:
package com.example.demo.admin.server;
import de.codecentric.boot.admin.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@EnableAdminServer
@SpringBootApplication
public class AdminServerApplication {
public static void main(String[] args) {
SpringApplication.run(AdminServerApplication.class, args);
}
}
示例客户端pom.xml文件:
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
示例客户端application.properties文件:
spring.boot.admin.client.url=http://localhost:8081
management.endpoints.web.exposure.include=*
打包Spring Boot应用并部署到Tomcat或Java Web容器
- 使用Maven或Gradle打包应用。
- 将打包好的应用部署到Tomcat或其他Java Web容器。
示例打包命令:
mvn clean package
示例部署到Tomcat:
- 将打包生成的
*.war
文件复制到Tomcat的webapps
目录下。 - 启动Tomcat,应用会在
http://localhost:8080/应用名
地址访问。
示例启动Tomcat命令:
cd /path/to/tomcat
./bin/catalina.sh run
共同学习,写下你的评论
评论加载中...
作者其他优质文章