【Spring Boot】快速入门

这篇具有很好参考价值的文章主要介绍了【Spring Boot】快速入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、引言

1、什么是spring boot?

        Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

2、特点

Spring Boot还提供了强大的监控能力,可以监控应用程序的运行状态。这些特点使得Spring Boot成为Java开发人员的首选框架之一。

  1. 独立运行:Spring Boot可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs。
  2. 无XML配置:Spring Boot简化了配置过程,它采用约定优于配置的方式,通过自动化配置和默认设置来简化开发者的配置工作,减少了繁琐的配置代码。同时,它也支持外部化配置,应用程序的配置更加灵活和可管理。
  3. 嵌入式Web容器:Spring Boot内置了多种常用的Web容器,如Tomcat、Jetty、Undertow等,使得构建独立的Web应用程序变得更加简单。
  4. 自动管理依赖:Spring Boot通过提供一系列的"starter"依赖,自动管理应用程序的依赖关系,简化了依赖管理的工作。
  5. 丰富的开发者工具:Spring Boot提供了丰富的开发者工具,如热部署、自动重启、自动配置报告等,提高了开发效率。
  6. 可扩展性:基于Spring框架,Spring Boot支持丰富的扩展点和插件,使得应用程序的功能可以方便地进行扩展和定制。

二、快速搭建

1、新建

  1. 新建项目
  2. 选择好你项目的位置项目名
  3. 设置阿里的服务器:start.aliyun.com
  4. 选择你的语言Java和类型maven
  5. 选择你的jdk版本。

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

2、选择依赖

我们选择一些必要的一些依赖,spring boot的版本我们尽量不要去动,选择它自己匹配的版本就行。

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

目录介绍

  • src/main/java:主程序入口 Application,可以通过直接运行该类来启动SpringBoot应用

  • src/main/resources:配置目录,该目录用来存放应用的一些配置信息,比如应用名、服务端口、数据库配置等。由于我们应用了Web模块,因此产生了 static目录与templates目录,前者用于存放静态资源,如图片、CSS、JavaScript等;后者用于存放Web页面的模板文件。

  • src/test:单元测试目录,生成的 ApplicationTests 通过 JUnit4实现,可以直接用运行 SpringBoot应用的测试。

  • application.properties/application.yml:Ø 用于存放程序的各种依赖模块的配置信息,比如:服务端口,数据库连接配置等。

3、配置修改

把我们的配置文件application.properties修改成application.yml文件。

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

mybatis:
  # 设置mapper文件的位置
  mapper-locations: classpath:mappers/*xml
  # 设置实体类的别名
  type-aliases-package: com.example.springboot01.mybatis.entity
server:
  # 设置端口号
  port: 8080
  # 项目名
  servlet:
    context-path: /

如果定义了这两个依赖我们需要进行注释才能运行。

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>
         <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

4、运行

进入我们的主程序入口,运行即可。

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

三、集成mybatis数据库连接

1、配置

在application.yml里面配置MySQLmybatis

配置你的数据库用户、密码,还有你的xml文件位置实体类别名

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

mybatis:
  # 设置mapper文件的位置
  mapper-locations: classpath*:mapper/*.xml
  # 设置实体类的别名
  type-aliases-package: com.example.springboot01.entity
server:
  # 设置端口号
  port: 8080
  # 项目名
  servlet:
    context-path: /
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.zaxxer.hikari.HikariDataSource
    url: jdbc:mysql://localhost:3306/bookshop?useUnicode=true&characterEncoding=utf8
    username: root
    password: 123456

确保你的pom.xml里面有mybatisMySQL的依赖

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

2、生成代码

确保你的idea里面有以下这个插件

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

用idea连接你的数据库右键你的数据表【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

  1. 项目路径
  2. 生成路径
  3. 基本路径
  4. 包名

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

选择Lombok

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

3、测试

在实体类添加有参无参【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

编写号调用的接口方法等

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

编写Controller

package com.example.springboot01.controller;

import com.example.springboot01.entity.TBook;
import com.example.springboot01.service.TBookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/book")
public class TBookController {
    @Autowired
    private TBookService tBookService;

    // http://127.0.0.1:8080/book/name=lisi
    @RequestMapping("/list")
    public Object list() {
        List<TBook> tBooks = tBookService.selectAll();
        return tBooks;
    }

}

【注意】mapper所在的包必须要在启动类开启扫描:@MapperScan

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

启动测试:http://localhost:8080/book/list【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

四、集成pagehelper分页

1、配置插件及文件

pom.xml里面添加插件

        <!--   分页插件     -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.6</version>
        </dependency>

配置application.yml

#pagehelper分页插件配置
pagehelper:
  # 数据库方言
  helperDialect: mysql
  # 是否启用 reasonable
  reasonable: true
  # 是否支持方法参数
  supportMethodsArguments: true
  # 参数
  params: count=countSql

2、优化分页

编写分页实体

package com.example.springboot01.page;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class PageBean {

    private Integer page = 1;
    private Integer rows = 5;
    private Long total = 0L;
    private boolean open = true;

    public int start() {
        return (page - 1) * rows;
    }

    public int previous() {
        return Math.max(this.page - 1, 1);
    }

    public int next() {
        return Math.min(this.page + 1, maxPage());
    }

    public int maxPage() {
        return (int) Math.ceil(this.total.intValue() / (this.rows * 1.0));
    }

}

编写分页注解

package com.example.springboot01.page;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface PageAnnotation {
}

编写切面

package com.example.springboot01.page;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class PageAspect {

    @Pointcut("@annotation(PageAnnotation)")
    public void cut() {
    }

    @Around("cut()")
    public Object aroundHandler(ProceedingJoinPoint point) throws Throwable {
        Object[] args = point.getArgs();
        PageBean pageBean = new PageBean().setOpen(false);
        for (Object arg : args) {
            if (arg instanceof PageBean) pageBean = (PageBean) arg;
        }
        PageHelper.startPage(pageBean.getPage(), pageBean.getRows(), pageBean.isOpen());
        Object val = point.proceed();
        if (pageBean.isOpen()) {
            Page<?> page = (Page<?>) val;
            pageBean.setTotal(page.getTotal());
        }
        return val;
    }

}

3、实例

编写接口类,调用分页注解:    @PageAnnotation 

package com.example.springboot01.service.impl;

import com.example.springboot01.entity.TBook;
import com.example.springboot01.mapper.TBookMapper;
import com.example.springboot01.page.PageAnnotation;
import com.example.springboot01.page.PageBean;
import com.example.springboot01.service.TBookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @软件包名 com.example.springboot01.service.impl
 * @用户 tgq
 * @create 2023-12-12 下午3:33
 * @注释说明:
 */
@Service
public class TBookServiceImpl implements TBookService {
    @Autowired
    private TBookMapper tBookMapper;

    @Override
//    分页注解
    @PageAnnotation
    public List<TBook> selectAll(PageBean pageBean) {
        return tBookMapper.selectAll();
    }

}

Controller层方法调用

    @RequestMapping("/list")
    public Object list2(PageBean pageBean) {
        List<TBook> tBooks = tBookService.selectAll(pageBean);
        return tBooks;
    }

运行结果:

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

五、集成druid数据库连接池

1、导入插件

 <!--        连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.16</version>
        </dependency>

2、配置

在yml里面配置

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      # 初始化时建立物理连接的个数
      initial-size: 5
      # 最小连接池数量
      min-idle: 5
      # 最大连接池数量
      max-active: 20
      #配置获取连接等待超时的时间
      max-wait: 60000
      #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      time-between-eviction-runs-millis: 60000
      # 一个连接在池中最小生存的时间,单位是毫秒
      min-evictable-idle-time-millis: 30000
      # 用来检测连接是否有效的 sql,要求是一个查询语句
      validation-query: SELECT 1 FROM DUAL
      # 建议配置为 true,不影响性能,并且保证安全性
      test-while-idle: true
      # 申请连接时执行 validationQuery 检测连接是否有效
      test-on-borrow: true
      # 归还连接时执行 validationQuery 检测连接是否有效
      test-on-return: false
      # 是否缓存 preparedStatement,即 PsCache
      # PSCache 对支持游标的数据库性能提升巨大,比如说 oracle,而 mysql 则建议关闭
      pool-prepared-statements: true
      # 要启用 PSCache,必须配置大于0
      max-pool-prepared-statement-per-connection-size: 20
      # 配置监控统计拦截的filters,去掉后监控界面sql无法统计
      filter:
        stat:
          merge-sql: true
          slow-sql-millis: 5000
      # 基础监控配置
      web-stat-filter:
        enabled: true
        url-pattern: /*
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
        session-stat-enable: true
        session-stat-max-count: 100
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        reset-enable: true
        login-username: admin #设置监控页面的登录名和密码
        login-password: admin
        allow: 127.0.0.1 #deny: 192.168.1.100

六、整合Log日志

1、配置

配置application.yml

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

#日志配置。
logging:
  level:
    com.example.springboot01.mapper: debug

重新运行即可,可看到SQL语句等

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

七、打包

1、打包方式

在pom文件里面如果没有填写需要打包的方式,可以自己进行添加。可选择jar包和war

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

2、更改配置

pom.xml文件里面更改配置。

<skip>true</skip>改成false

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

3、打包

我们右键选择按照步骤进行操作【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

target里面找到我们的jar

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

4、运行

把我们打好的jar包放到随意的一个地方运行命令

java -jar springboot01-0.0.1-SNAPSHOT.jar

springboot01-0.0.1-SNAPSHOT.jar:为你的jar包名。

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

我们进入浏览器进行访问即可

【Spring Boot】快速入门,spring系列,spring boot,java,后端,spring

🐉spring boot 常问的⑧个问题

在Spring Boot面试中,面试官通常会问一些关于Spring Boot基础知识、配置、应用场景、最佳实践以及性能优化等方面的问题。以下是一些常见的面试问题及回答建议:

  1. 什么是Spring Boot?
    回答:Spring Boot是一个基于Java的开源框架,它旨在简化Spring应用程序的创建和部署。通过使用约定大于配置的方法,Spring Boot可以自动配置大部分常见的设置,让开发者能够快速搭建应用程序框架并专注于业务逻辑。

  2. Spring Boot有哪些优点?
    回答:Spring Boot的优点包括:

    • 简化开发:通过自动配置和约定大于配置的方法,减少了开发者的配置工作量。
    • 快速构建:提供了大量内置的功能和库,加快了应用程序的开发速度。
    • 易于部署:内置了嵌入式服务器,可以轻松地将应用程序部署到云端或本地服务器。
    • 丰富的插件:支持各种第三方库和插件,方便扩展功能。
  3. Spring Boot的核心概念是什么?
    回答:Spring Boot的核心概念包括自动配置、约定大于配置、分离关注点、单一职责原则等。其中,自动配置是通过使用Java Config或XML配置文件来定义应用程序的组件和属性;约定大于配置是指Spring Boot根据约定来自动配置应用程序,减少开发者的手动配置工作;分离关注点是指将应用程序拆分为多个独立的模块,降低耦合性;单一职责原则是指每个组件应该只负责一个功能,提高代码的可读性和可维护性。

  4. 如何创建一个Spring Boot应用程序?
    回答:创建一个Spring Boot应用程序需要以下几个步骤:

    • 添加依赖:在pom.xml文件中添加Spring Boot Starter依赖。
    • 创建主类:创建一个包含main()方法的类作为应用程序的入口。
    • 配置文件:在src/main/resources目录下创建application.properties或application.yml文件,用于配置应用程序的属性。
    • 创建控制器:创建Java类并使用@RestController或@Controller注解来定义应用程序的路由和请求处理方法。
  5. 如何配置Spring Boot应用程序?
    回答:在Spring Boot中,可以通过application.properties或application.yml文件来配置应用程序。常见的配置包括数据库连接、端口号、日志级别等。同时,也可以使用@Configuration类来定义自定义的配置类,并在其中声明Bean组件和属性。

  6. Spring Boot中有哪些常用的注解?
    回答:Spring Boot中常用的注解包括@Component、@Service、@Repository、@Controller、@RequestMapping等。这些注解可以用于定义组件、请求处理方法、路由等。此外,还有@Autowired、@Qualifier等注解用于实现依赖注入等功能。

  7. Spring Boot的最佳实践有哪些?
    回答:Spring Boot的最佳实践包括:

    • 使用Lombok库减少模板代码的编写。
    • 使用@Valid注解进行表单验证。
    • 使用@RequestParam注解获取请求参数。
    • 使用@RequestBody注解获取请求体中的数据。
    • 使用@GetMapping和@PostMapping注解替代@RequestMapping注解来简化请求处理方法的定义。
  8. 如何优化Spring Boot应用程序的性能?
    回答:优化Spring Boot应用程序的性能可以考虑以下几个方面:

    • 使用适当的缓存策略,如使用Redis缓存数据库查询结果等。
    • 优化数据库查询语句,避免使用SELECT *语句,只查询需要的字段。
    • 使用Gzip压缩响应内容,减少传输的数据量。
    • 优化代码逻辑,避免冗余计算和重复查询。

我的分享就到这里!!!感谢大家在评论区交流文章来源地址https://www.toymoban.com/news/detail-761505.html

到了这里,关于【Spring Boot】快速入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 微信小程序的授权登录-Java 后端 (Spring boot)

    微信开发文档链接:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 一个可以测试的微信小程序 此微信小程序的APPID和APPscret(至开发者后台获取) 从时序图我们可以了解到流程大致分为两步: 小程序端获取code后传给Java后台 Java后台获取code后向微信后台接口

    2024年02月09日
    浏览(48)
  • Spring Boot快速入门:构建简单的Web应用

      Spring Boot是一个用于简化Spring应用程序开发的框架,它通过提供开箱即用的配置和一组常用的功能,使得构建高效、可维护的应用变得非常容易。在本篇博客中,我们将一步步地介绍如何快速入门Spring Boot,并构建一个简单的Web应用。 步骤1:准备开发环境 Java Development

    2024年02月07日
    浏览(12)
  • 快速入门:使用 Spring Boot 构建 Web 应用程序

    快速入门:使用 Spring Boot 构建 Web 应用程序

    本文将讨论以下主题: 安装 Java JDK、Gradle 或 Maven 和 Eclipse 或 IntelliJ IDEA 创建一个新的 Spring Boot 项目 运行 Spring Boot 应用程序 编写一个简单的 Web 应用程序 打包应用程序以用于生产环境 通过这些主题,您将能够开始使用 Spring Boot 并创建自己的 Web 应用程序。 Spring Boot是一个

    2024年02月07日
    浏览(41)
  • “深入解析Spring Boot:快速开发Java应用的利器“

    标题:深入解析Spring Boot:快速开发Java应用的利器 摘要:Spring Boot是一个开发Java应用的利器,它简化了Spring应用的配置和部署过程,提供了快速构建和开发Java应用的能力。本文将深入解析Spring Boot的核心特性和优势,并通过示例代码来展示如何使用Spring Boot进行快速应用开发

    2024年02月16日
    浏览(16)
  • Spring Boot 3.x 系列【34】Actuator入门案例及端点配置

    有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.0.5 源码地址:https://gitee.com/pearl-organization/study-spring-boot3 在生产环境很有必要对应用进行 监控、追踪、审计、控制 ,假如数据库突然挂了,直到客户打电话骂娘时~ 我们才知道这回事,就很尴尬了🤣🤣🤣 Sp

    2024年02月05日
    浏览(10)
  • 使用Spring Boot和Docker快速部署Java应用程序

    随着微服务的兴起,容器化技术已成为现代应用程序开发和部署的关键部分。Docker作为一种流行的容器化解决方案,广泛应用于企业和开发者社区。与此同时,Spring Boot作为一种优秀的Java开发框架,大大简化了基于Spring的应用程序开发。在本文中,我们将探讨如何将Spring Bo

    2024年02月01日
    浏览(11)
  • 基于Spring boot和Mybatis外卖项目瑞吉外卖Day9-Redis的快速入门

    基于Spring boot和Mybatis外卖项目瑞吉外卖Day9-Redis的快速入门

    4.1 Redis数据结构介绍 Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样: 贴心小建议:命令不要死记,学会查询就好啦 Redis为了方便我们学习,将操作不同数据类型的命令也做了分组,在官网( https://redis.io/commands )可以查看到不同的命令: 当然我们

    2023年04月09日
    浏览(13)
  • Spring Boot 整合 Shiro(后端)

    Spring Boot 整合 Shiro(后端)

    1 Shiro 什么是 Shiro 官网: http://shiro.apache.org/ 是一款主流的 Java 安全框架,不依赖任何容器,可以运行在 Java SE 和 Java EE 项目中,它的主要作用是对访问系统的用户进行身份认证、 授权、会话管理、加密等操作。 Shiro 就是用来解决安全管理的系统化框架。 2 Shiro 核心组件 用

    2024年02月09日
    浏览(18)
  • Android前端+Spring Boot后端 登录功能实现

    Android前端+Spring Boot后端 登录功能实现

    创建项目后,自己添加包,框架如下   userController里的一些内容,只供参考,代码不全,无法实现 数据库是直接在社区版IDEA里连接Mysql,在控制台端创建的数据库和user表,用于数据交互。 Activity包里是Activity Java类,主要响应layout包里activity_login.xml等页面布局内的按钮响应 a

    2024年02月12日
    浏览(16)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包