springboot 框架知识总结

一,Spring Boot基础应用

1.Spring Boot特征

概念:

约定优于配置,简单来说就是你所期待的配置与约定的配置一致,那么就可以不做任何配置,约定不符合期待时才需要对约定进行替换配置。

特征:

1. SpringBoot Starter:他将常用的依赖分组进行了整合,将其合并到一个依赖中,这样就可以一次性添加到项目的Maven或Gradle构建中。

2,使编码变得简单,SpringBoot采用 JavaConfig的方式对Spring进行配置,并且提供了大量的注解,极大的提高了工作效率,比如@Configuration和@bean注解结合,基于@Configuration完成类扫描,基于@bean注解把返回值注入IOC容器。

3.自动配置:SpringBoot的自动配置特性利用了Spring对条件化配置的支持,合理地推测应用所需的bean并自动化配置他们。

4.使部署变得简单,SpringBoot内置了三种Servlet容器,Tomcat,Jetty,undertow.我们只需要一个Java的运行环境就可以跑SpringBoot的项目了,SpringBoot的项目可以打成一个jar包。

2.配置JDK和Maven

IDEA中如何配置JDK:https://juejin.cn/post/7024078227282853924

IDEA中如何配置Maven:https://juejin.cn/post/6844904096961396749?searchId=20230905154132D113B687F6BB6AD98CC3

 3.Spring Boot依赖

Spring Boot提供了许多starter依赖,用于快速配置和集成常见功能。在项目的构建配置文件(如pom.xml或build.gradle)中,添加所需的Spring Boot依赖。

springboot项目的总(父)依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.7.15</version>
</parent>

当我们使用 spring 或 spring-boot 开发项目时,需要引入很多依赖,包括 spring 本身的组件、各种 spring-boot-starter、以及其它第三方依赖(如:slf4j、redis)。依赖多了,版本的选择是个问题,就怕哪个版本选择的不对导致出现一些意想不到的 BUG。

4.创建项目

使用Spring Initializer快速创建Spring Boot项目

 创建Spring Boot项目
  1. 打开 IntelliJ IDEA,选择 "File" -> "New" -> "Project"。

  2. 在左侧面板中选择 "Spring Initializr",然后点击 "Next"。

  3. 在 "Project SDK" 中选择你想要使用的 JDK 版本,然后点击 "Next"。

  4. 在 对话框中,配置项目的基本信息:

    1. Group: 设置项目的 GroupId,例如 com.lzzy

    2. Artifact: 设置项目的唯一标识符,一般和项目名相同,例如 my-spring-boot1

    3. Name: 设置项目的名称

    4. Version:使用默认生成的版本号

 创建用于Web访问的请求处理控制类

创建一个控制器类来处理 HTTP 请求。例如,创建一个名为 HelloController.java 的类:

package com.example;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/hello")
public class HelloController {

    @GetMapping
    public String hello() {
        return "Hello, world!";
    }
}
 运行项目

运行 Spring Boot 应用程序:右键点击 Application 类,选择 "Run Application.main()",或者点击类上方的绿色三角形按钮。

打开浏览器,并访问 http://localhost:8080/hello,你将会看到输出 Hello, world!

5.核心配置与注解

Spring Boot中有许多常用的注解,它们可以帮助简化开发并提高代码的可读性和可维护性。以下是一些常见的Spring Boot注解及其简要介绍:

  1. @SpringBootApplication:用于标注主程序类,表明这是一个Spring Boot应用的入口。

  2. @Controller:将类标识为Spring MVC控制器,处理HTTP请求。

  3. @RestController:结合了@Controller@ResponseBody,常用于编写RESTful风格的接口。

  4. @RequestMapping:用来映射Web请求,可以用在类或方法上,指定处理的URL路径。

  5. @Autowired:用于自动装配Bean,可以标注在属性、构造方法、Setter方法上。

  6. @Component:通用的Spring组件注解,表示一个受Spring管理的组件。

  7. @Service:标注服务层组件。

  8. @Repository:标注数据访问组件,通常用于DAO类。

  9. @Configuration:指示类包含Spring应用程序上下文的bean定义。

  10. @Value:用于将配置文件中的值注入到属性中。

  11. @Qualifier:在进行自动装配时指定需要注入的Bean名称。

  12. @Async:标注异步方法或类,告诉Spring这是一个异步方法。

6. 数据层框架的整合和使用

数据层框架在Spring Boot中起着至关重要的作用,它们可以帮助我们简化数据库操作、提高开发效率。下面我将简要介绍JdbcTemplate、MyBatis和MyBatis-Plus这三种数据层框架的原理以及在Spring Boot中的应用实现。

  1. JdbcTemplate

    • 原理:JdbcTemplate是Spring提供的基于JDBC的模板类,通过它可以方便地进行数据库操作,包括增删改查等操作。
    • 应用实现:在Spring Boot中,可以通过注入JdbcTemplate实例来进行数据库操作,JdbcTemplate封装了JDBC的繁琐操作,使用起来更加方便。
  2. MyBatis

    • 原理:MyBatis是一种基于Java的持久层框架,它将SQL语句与Java方法相映射,通过XML或注解的方式配置SQL映射关系。
    • 应用实现:在Spring Boot中整合MyBatis通常需要配置SqlSessionFactoryBean、MapperScannerConfigurer等bean,同时编写对应的Mapper接口和SQL映射文件。MyBatis能够提供灵活的SQL编写方式,适用于需要定制化SQL的场景。
  3. MyBatis-Plus

    • 原理:MyBatis-Plus是在MyBatis基础上进行了扩展的增强工具,提供了更多便捷的CRUD操作、条件构造器、分页插件等功能。
    • 应用实现:在Spring Boot中整合MyBatis-Plus相对简单,只需引入相应的依赖,并且创建对应的实体类即可使用MyBatis-Plus提供的丰富功能,大大简化了数据库操作。
 整合和使用Thymeleaf

在Spring Boot中整合和使用Thymeleaf非常常见,Thymeleaf是一个用于Web和独立环境的现代化服务器端Java模板引擎,它能够处理HTML、XML、JavaScript、CSS甚至纯文本。

下面是在Spring Boot中整合和使用Thymeleaf的基本步骤:

  1. 引入Thymeleaf依赖: 在pom.xml文件中引入Thymeleaf的依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
  1. 配置Thymeleaf: Spring Boot会自动加载Thymeleaf模板,一般情况下不需要进行额外的配置。如果需要进行自定义配置,可以在application.propertiesapplication.yml中设置相关属性。

  2. 创建Thymeleaf模板文件: 在src/main/resources/templates目录下创建Thymeleaf模板文件,例如index.html,并使用Thymeleaf的语法编写页面。

  3. 在Controller中使用Thymeleaf: 在Controller中返回Thymeleaf模板的名称,Spring Boot会根据模板的名称自动寻找对应的Thymeleaf模板文件进行渲染。

  4. 使用Thymeleaf语法: 在Thymeleaf模板文件中可以使用Thymeleaf的语法,包括表达式、循环、条件判断等,来动态渲染页面内容。

举个例子,在Controller中返回index作为模板名称:

@Controller
public class MyController {
    @GetMapping("/hello")
    public String hello(Model model) {
        model.addAttribute("name", "Thymeleaf");
        return "index";
    }
}

index.html中使用Thymeleaf语法:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Hello Thymeleaf</title>
</head>
<body>
    <p th:text="'Hello, ' + ${name} + '!'"></p>
</body>
</html>

当访问/hello路径时,将会渲染index.html页面,并将Hello, Thymeleaf!显示在页面上。

总的来说,Thymeleaf作为Spring Boot的默认模板引擎,能够与Spring Boot完美整合,通过简单的配置和使用Thymeleaf的语法,可以快速地开发出美观、动态的页面。

 整合和应用Bootstrap

在Spring Boot项目中整合和应用Bootst

rap前端框架是非常常见的,Bootstrap是一个流行的开源前端框架,提供了响应式布局、UI组件、jQuery插件等,可以帮助我们快速构建现代化的Web页面。

以下是在Spring Boot中整合和应用Bootstrap前端框架的基本步骤:

  1. 引入Bootstrap依赖: 在pom.xml文件中引入Bootstrap的相关依赖。Bootstrap通常通过CDN(内容分发网络)引入,也可以将其下载到本地并引入。

<!-- 通过CDN引入 Bootstrap 的 CSS 文件 -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<!-- 引入 Bootstrap 的 JavaScript 文件 -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
  1. 创建页面: 在Spring Boot项目中创建HTML页面,并在页面中使用Bootstrap提供的CSS类、组件以及JavaScript插件来构建页面。

  2. 利用Thymeleaf动态渲染页面(可选): 如果在Spring Boot中使用Thymeleaf模板引擎,可以结合Thymeleaf的语法和Bootstrap来动态地渲染页面内容。

举个例子,假设我们在Thymeleaf页面中使用Bootstrap的网格系统和按钮组件:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Bootstrap Integration</title>
    <!-- 引入 Bootstrap 的 CSS 文件 -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
</head>
<body>
    <div class="container">
        <h1 th:text="${pageTitle}">Hello, Bootstrap!</h1>
        <div class="row">
            <div class="col-md-6">
                <button type="button" class="btn btn-primary">Primary Button</button>
            </div>
            <div class="col-md-6">
                <button type="button" class="btn btn-secondary">Secondary Button</button>
            </div>
        </div>
    </div>
    <!-- 引入 Bootstrap 的 JavaScript 文件 -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
</body>
</html>

 在上述例子中,我们在Thymeleaf页面中引入了Bootstrap的CSS和JavaScript文件,并使用了Bootstrap提供的网格系统和按钮组件来构建页面。

 7.练习

下面是我上课做的比较好的练习。在Spring Boot中实现实体类的增删改查操作的示例项目。

假设我们有一个简单的实体类Product,它包含idnameprice属性,我们希望在Spring Boot中实现对这个实体类的增删改查操作。

  1. 创建实体类: 首先创建Product实体类,定义相应的属性和方法:

    public class Product {
        private Long id;
        private String name;
        private BigDecimal price;
    
        // 省略构造函数和其他方法
        
        // getter 和 setter 方法
    }
    

     创建Repository接口: 创建ProductRepository接口,继承自Spring Data JPA的JpaRepository接口,用于对数据库进行CRUD操作:

public interface ProductRepository extends JpaRepository<Product, Long> {
}

创建Controller: 创建ProductController,处理HTTP请求并调用Service层完成业务逻辑:

@RestController
@RequestMapping("/products")
public class ProductController {
    @Autowired
    private ProductRepository productRepository;

    // 处理获取所有产品的请求
    @GetMapping
    public List<Product> getAllProducts() {
        return productRepository.findAll();
    }

    // 处理创建产品的请求
    @PostMapping
    public Product createProduct(@RequestBody Product product) {
        return productRepository.save(product);
    }

    // 处理更新产品的请求
    @PutMapping("/{id}")
    public Product updateProduct(@PathVariable Long id, @RequestBody Product product) {
        if (productRepository.existsById(id)) {
            product.setId(id);
            return productRepository.save(product);
        } else {
            return null; // 返回适当的错误信息
        }
    }

    // 处理删除产品的请求
    @DeleteMapping("/{id}")
    public void deleteProduct(@PathVariable Long id) {
        productRepository.deleteById(id);
    }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值