为了账号安全,请及时绑定邮箱和手机立即绑定

Springboot项目开发学习入门教程

标签:
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 包含以下主要特性:

  1. 自动配置:通过约定优于配置的方式自动配置项目,减少开发人员的配置工作量。
  2. 起步依赖:通过引入简单依赖自动管理库依赖及版本,简化项目依赖管理。
  3. 嵌入式容器:内置了Tomcat、Jetty或Undertow等服务器,无需额外配置即可直接运行。
  4. 命令行接口:提供了命令行工具,可执行脚本、测试或打包等操作。
  5. 监控和诊断:提供了Actuator模块,用于监控应用状态,提供了许多端点信息。
  6. 生产就绪功能:提供日志、健康检查、外部配置、性能指标等。

Spring Boot的优势

  1. 简化Spring应用开发:提供自动配置功能,大大简化Spring应用开发过程,减少配置文件编写。
  2. 减少依赖管理负担:提供大量起步依赖,自动管理库依赖及版本。
  3. 快速上线应用:通过嵌入式容器快速启动应用。
  4. 支持多种开发框架:支持多种视图模板,如Thymeleaf、Freemarker等,快速开发Web应用。
  5. 支持多种数据访问方式:支持JPA、MyBatis等数据访问技术,提供丰富的数据访问解决方案。
  6. 灵活的扩展机制:可根据需要选择功能模块,自由组合使用。
开发环境搭建

下载和安装JDK

  1. 访问Oracle官方下载页面,选择合适的JDK版本。
  2. 下载JDK安装包后,双击安装包,按照安装向导进行安装。
  3. 安装完成后,在环境变量中配置JDK相关路径。

示例配置环境变量:

JAVA_HOME=C:\Program Files\Java\jdk1.8.0_251
PATH=%JAVA_HOME%\bin;%PATH%

安装IDE(如IntelliJ IDEA或Eclipse)

  1. 访问 IntelliJ IDEA 或 Eclipse 官方下载页面,下载对应版本的安装包。
  2. 下载完成后,双击安装包,按照向导进行安装。
  3. 安装完成后,打开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创建项目

  1. 访问Spring Boot CLI下载页面,下载对应版本的安装包。
  2. 安装完成后,通过命令行创建Spring Boot项目。
  3. 使用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项目步骤

  1. 在IDE中创建Maven项目。
  2. 在pom.xml文件中添加Spring Boot依赖。
  3. 创建应用主类,并使用@SpringBootApplication注解进行标注。
  4. 编写启动方法,使用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应用实例

  1. 创建HelloController类,使用@RestController注解标注为控制器。
  2. 在控制器中定义一个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!";
    }
}

运行和测试应用

  1. 在IDE中运行应用,或者使用命令行启动应用。
  2. 访问http://localhost:8080/hello地址,查看返回的字符串。

示例启动命令:

mvn spring-boot:run
Spring Boot核心配置

application.properties和application.yml配置文件详解

Spring Boot支持使用application.propertiesapplication.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的使用,提供统一的编程模型,简化数据访问层的开发。

  1. 在pom.xml文件中添加JPA依赖。
  2. 创建实体类,使用@Entity注解标注为实体。
  3. 创建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层的抽象。

  1. 在pom.xml文件中添加JDBC依赖。
  2. 在配置文件中配置数据源。
  3. 创建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数据库的步骤和示例代码

  1. 在pom.xml文件中添加MySQL驱动依赖。
  2. 在application.properties文件中配置MySQL数据源。
  3. 创建实体类和仓库接口。
  4. 编写测试代码,进行数据库操作。

示例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平台中使用,也可以在服务端和客户端使用。

  1. 在pom.xml文件中添加Thymeleaf依赖。
  2. 创建Thymeleaf模板文件。
  3. 编写控制器,返回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应用的工具,提供了丰富的监控信息,如健康检查、性能指标等。

  1. 在pom.xml文件中添加Spring Boot Admin依赖。
  2. 创建Spring Boot Admin服务端应用。
  3. 创建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容器

  1. 使用Maven或Gradle打包应用。
  2. 将打包好的应用部署到Tomcat或其他Java Web容器。

示例打包命令:

mvn clean package

示例部署到Tomcat:

  1. 将打包生成的*.war文件复制到Tomcat的webapps目录下。
  2. 启动Tomcat,应用会在http://localhost:8080/应用名地址访问。

示例启动Tomcat命令:

cd /path/to/tomcat
./bin/catalina.sh run
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消