亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Springboot框架入門:新手必讀教程

標簽:
SpringBoot
概述

Spring Boot框架入门介绍了如何快速搭建和开发Spring Boot应用,涵盖了环境搭建、项目创建、数据库集成、RESTful服务开发以及应用打包和部署等关键步骤,帮助开发者高效利用Spring Boot框架进行项目开发。

Spring Boot简介

Spring Boot是什么

Spring Boot是由Pivotal团队提供的一个用于简化Spring应用开发的框架。它在Spring框架的基础上,通过约定优于配置的方式提供了一套快速构建独立的、生产级别的应用的服务。Spring Boot旨在简化新Spring应用的初始搭建以及开发过程,使开发人员能够快速搭建项目并执行。

Spring Boot的优势

  1. 自动配置: Spring Boot可以自动配置大多数常用的场景,减少了开发者配置的复杂度。
  2. 快速集成: Spring Boot能够快速集成各种常用库和框架,如数据库、缓存、消息代理等。
  3. 独立运行: Spring Boot应用可以打包成独立的可执行JAR文件,通过嵌入式的Tomcat容器或其他Servlet容器运行。
    4..
  4. 无依赖配置: 强调“约定优于配置”,大部分情况下不需要编写XML或properties等配置文件。
  5. 健康检查: 提供了应用健康检查的功能,便于开发人员监控应用的状态。

Spring Boot 2.x版本的新特性

  • 多环境支持: 更好的支持多环境配置,例如开发、测试、生产等。
  • 增强的WebFlux: 引入了对响应式编程的支持,支持WebFlux,可以更好地处理异步操作。
  • 更好的日志支持: 提供了对Logback、Log4j等日志框架的支持改进。
  • Spring Cloud集成: 更好的与Spring Cloud集成,简化微服务开发。
  • Spring Boot Admin: 提供了Spring Boot Admin,可以更方便地监控和管理Spring Boot应用。
  • Spring Boot Actuator: 提供了更丰富的健康检查和监控功能,包括指标、审计、日志等。

开发环境搭建

选择开发工具

可以选择 IntelliJ IDEA 或 Eclipse 等主流IDE作为开发工具。这里以 IntelliJ IDEA 为例。

  1. 官方下载页面: https://www.jetbrains.com/idea/
  2. 安装 IntelliJ IDEA。
  3. 打开 IntelliJ IDEA,进行新项目的创建。

对于 Eclipse 用户,可以参考以下步骤:

  1. 官方下载页面: https://www.eclipse.org/downloads/
  2. 安装 Eclipse。
  3. 打开 Eclipse,选择 File -> New -> Spring Starter Project
  4. 输入项目信息,选择Spring Boot依赖,点击 Next,然后选择项目保存路径,点击 Finish

安装Java开发环境

  1. 官方下载页面: https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
  2. 安装 JDK 11 或更高版本。
  3. 验证安装:在命令行中输入 java -versionjavac -version 确认版本信息。

构建Spring Boot项目

使用 IntelliJ IDEA 创建 Spring Boot 项目:

  1. 打开 IntelliJ IDEA,选择 File -> New -> Project
  2. 选择 Spring Initializr
  3. 输入项目信息:
    • Project SDK: 选择安装的 JDK 版本。
    • Group: 组名,例如 com.example
    • Artifact: 项目名,例如 demo
    • Version: 项目版本,例如 0.0.1-SNAPSHOT
    • Name: 项目名称,例如 demo
  4. 选择项目依赖:
    • Spring Web:用于构建Web应用。
    • Spring Boot DevTools:开发工具,提供自动重启功能。
  5. 点击 Next,选择项目保存路径,然后点击 Finish

项目创建成功后,IDEA会自动下载依赖并配置项目。

第一个Spring Boot应用

创建Spring Boot项目

按照上一节的方法创建一个Spring Boot项目。这里假设项目名为 demo

编写简单的Controller

src/main/java/com/example/demo 目录下创建一个 Controller 类 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 sayHello() {
        return "Hello, Spring Boot!";
    }
}

这个 Controller 用于处理 /hello 地址的GET请求,并返回 "Hello, Spring Boot!"。

运行和测试项目

在 IntelliJ IDEA 中,右键 Application.java 选择 Run 'DemoApplication.main()',或者选择 Run 'DemoApplication'。项目将启动,并显示应用的启动信息。

打开浏览器,访问 http://localhost:8080/hello,可以看到返回信息为 Hello, Spring Boot!

Spring Boot核心配置

配置文件简介

Spring Boot使用application.propertiesapplication.yml文件进行配置。

示例 application.properties 文件:

server.port=8081
spring.application.name=MyApp

示例 application.yml 文件:

server:
  port: 8081
spring:
  application:
    name: MyApp

Spring Boot自动配置

Spring Boot通过@EnableAutoConfiguration注解自动配置Spring Bean。不需要手动配置Bean,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@Configuration@EnableAutoConfiguration@ComponentScan注解的组合。

自定义配置属性

通过Java配置类和@ConfigurationProperties注解来自定义配置属性。

创建一个配置类 MyAppConfig.java

package com.example.demo;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "myapp")
public class MyAppConfig {
    private String name;
    private String version;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }
}

application.properties 文件中配置:

myapp.name=MyApp
myapp.version=v1.0

常用功能实践

使用Spring Boot集成数据库

  1. 添加依赖:
    pom.xml 文件中添加 Spring Data JPAH2 数据库依赖:

    <dependencies>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-data-jpa</artifactId>
       </dependency>
       <dependency>
           <groupId>com.h2database</groupId>
           <artifactId>h2</artifactId>
       </dependency>
    </dependencies>
  2. 配置数据库:
    application.properties 文件中添加 H2 数据库配置:

    spring.datasource.url=jdbc:h2:mem:testdb
    spring.datasource.driverClassName=org.h2.Driver
    spring.datasource.username=root
    spring.datasource.password=root
    spring.h2.console.enabled=true
    spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
  3. 定义实体类:
    创建一个 User 实体类:

    package com.example.demo.entity;
    
    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 name;
       private String email;
    
       public Long getId() {
           return id;
       }
    
       public void setId(Long id) {
           this.id = id;
       }
    
       public String getName() {
           return name;
       }
    
       public void setName(String name) {
           this.name = name;
       }
    
       public String getEmail() {
           return email;
       }
    
       public void setEmail(String email) {
           this.email = email;
       }
    }
  4. 创建 Repository 接口:
    创建 UserRepository.java

    package com.example.demo.repository;
    
    import com.example.demo.entity.User;
    import org.springframework.data.jpa.repository.JpaRepository;
    
    public interface UserRepository extends JpaRepository<User, Long> {
    }
  5. 创建 Service 类:
    创建 UserService.java

    package com.example.demo.service;
    
    import com.example.demo.entity.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 List<User> findAll() {
           return userRepository.findAll();
       }
    }
  6. 创建 Controller 用于测试:
    创建 UserController.java

    package com.example.demo.controller;
    
    import com.example.demo.entity.User;
    import com.example.demo.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.List;
    
    @RestController
    @RequestMapping("/users")
    public class UserController {
       @Autowired
       private UserService userService;
    
       @GetMapping
       public List<User> getAllUsers() {
           return userService.findAll();
       }
    }

使用Spring Boot集成MyBatis

  1. 添加依赖:
    pom.xml 文件中添加 MyBatis 依赖:

    <dependency>
       <groupId>org.mybatis.spring.boot</groupId>
       <artifactId>mybatis-spring-boot-starter</artifactId>
       <version>2.1.3</version>
    </dependency>
  2. 配置 application.properties

    spring.datasource.url=jdbc:mysql://localhost:3306/mydb
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    mybatis.type-aliases-package=com.example.demo.entity
    mybatis.mapper-locations=classpath:mapper/*.xml
  3. 创建实体类:

    package com.example.demo.entity;
    
    public class User {
       private Long id;
       private String name;
       private String email;
    
       public Long getId() {
           return id;
       }
    
       public void setId(Long id) {
           this.id = id;
       }
    
       public String getName() {
           return name;
       }
    
       public void setName(String name) {
           this.name = name;
       }
    
       public String getEmail() {
           return email;
       }
    
       public void setEmail(String email) {
           this.email = email;
       }
    }
  4. 创建 Mapper 接口:

    package com.example.demo.mapper;
    
    import com.example.demo.entity.User;
    import org.apache.ibatis.annotations.Mapper;
    import org.apache.ibatis.annotations.Select;
    
    import java.util.List;
    
    @Mapper
    public interface UserMapper {
       @Select("SELECT * FROM user")
       List<User> findAll();
    }
  5. 创建 Mapper XML 文件:
    src/main/resources/mapper/UserMapper.xml 创建 XML:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper
       PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
       "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.example.demo.mapper.UserMapper">
       <select id="findAll" resultType="com.example.demo.entity.User">
           SELECT * FROM user
       </select>
    </mapper>
  6. 创建 Service 类:

    package com.example.demo.service;
    
    import com.example.demo.entity.User;
    import com.example.demo.mapper.UserMapper;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    @Service
    public class UserService {
       @Autowired
       private UserMapper userMapper;
    
       public List<User> findAll() {
           return userMapper.findAll();
       }
    }
  7. 创建 Controller 用于测试:

    package com.example.demo.controller;
    
    import com.example.demo.entity.User;
    import com.example.demo.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.List;
    
    @RestController
    @RequestMapping("/users")
    public class UserController {
       @Autowired
       private UserService userService;
    
       @GetMapping
       public List<User> getAllUsers() {
           return userService.findAll();
       }
    }

使用Spring Boot开发RESTful服务

  1. 添加依赖:
    pom.xml 文件中添加 Spring Web 依赖:

    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
  2. 创建实体类:

    package com.example.demo.entity;
    
    public class Book {
       private Long id;
       private String title;
       private String author;
    
       public Long getId() {
           return id;
       }
    
       public void setId(Long id) {
           this.id = id;
       }
    
       public String getTitle() {
           return title;
       }
    
       public void setTitle(String title) {
           this.title = title;
       }
    
       public String getAuthor() {
           return author;
       }
    
       public void setAuthor(String author) {
           this.author = author;
       }
    }
  3. 创建 Repository 接口:

    package com.example.demo.repository;
    
    import com.example.demo.entity.Book;
    import org.springframework.data.jpa.repository.JpaRepository;
    
    public interface BookRepository extends JpaRepository<Book, Long> {
    }
  4. 创建 Service 类:

    package com.example.demo.service;
    
    import com.example.demo.entity.Book;
    import com.example.demo.repository.BookRepository;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    @Service
    public class BookService {
       @Autowired
       private BookRepository bookRepository;
    
       public List<Book> findAll() {
           return bookRepository.findAll();
       }
    }
  5. 创建 Controller 用于测试:

    package com.example.demo.controller;
    
    import com.example.demo.entity.Book;
    import com.example.demo.service.BookService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.List;
    
    @RestController
    @RequestMapping("/books")
    public class BookController {
       @Autowired
       private BookService bookService;
    
       @GetMapping
       public List<Book> getAllBooks() {
           return bookService.findAll();
       }
    }

Spring Boot项目打包与部署

打包Spring Boot应用

在 IntelliJ IDEA 中,选择 File -> Project Structure -> Artifacts,添加新的构建工件:

  1. 选择 JAR -> Empty JAR
  2. 设置主类为 DemoApplication
  3. 点击 OK,然后点击 ApplyOK

在命令行中运行 mvn package 命令来打包项目。

部署到Tomcat服务器

  1. 下载并安装 Tomcat:
  2. 将打包后的 JAR 文件复制到 Tomcat 的 webapps 目录。
  3. 启动 Tomcat:
    • cd <tomcat_home>
    • ./bin/startup.sh
  4. 访问应用:http://localhost:8080/<app_name>/hello

部署到云平台

以阿里云为例:

  1. 登录阿里云控制台,创建一个ECS实例。
  2. 登录ECS实例。
  3. 安装Java环境和Tomcat。
  4. 将打包后的 JAR 文件上传到ECS实例。
  5. 启动 Tomcat,将应用部署到 Tomcat。
  6. 访问应用:http://<ecs_public_ip>:8080/<app_name>/hello

在实际部署中,可以使用 Docker 或者云原生的部署方式,以获得更好的可移植性和扩展性。

总结

通过以上教程,我们了解并掌握了Spring Boot的基本开发流程,包括环境搭建、项目创建、数据库集成、RESTful服务开发,以及应用打包和部署。Spring Boot的强大功能和易用性使得开发高效、简洁的Java应用变得更为简单。

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消