spring boot的一课一得及心得体会

​编辑

.关于spring boot

二.关于SpringBoot的核心特性介绍

三.关于spring boot的学习成果

四.关于学习spring boot全过程总结。


    Spring boot心得体会

一.关于spring boot


Spring Boot是一个用于创建独立的、基于Spring的应用程序的框架。它简化了Spring应用程序的配置和部署过程,并提供了一套开发工具和约定,帮助开发人员快速构建高效、可靠的应用程序。

在学习Spring Boot的过程中,我们需要掌握以下几个关键概念和技术:

1.自动配置:Spring Boot通过自动配置机制,根据应用程序的依赖和配置,自动配置Spring应用程序的各个组件。这样可以减少开发人员的配置工作,提高开发效率.

2.起步依赖:Spring Boot提供了一系列的起步依赖,用于快速集成常用的第三方库和框架。通过引入相关的起步依赖,我们可以快速构建出一个具有特定功能的应用程序。

3.内嵌服务器:Spring Boot内置了多种服务器,如TomcatJetty等,可以通过简单的配置,将应用程序打包为可执行的JAR文件,直接运行在内嵌的服务器上。

4.简化的配置:Spring Boot提供了一种简化的配置方式,可以通过配置文件、注解或代码来配置应用程序的各个组件。这样可以减少繁琐的XML配置,提高代码的可读性。

5.统一的监控和管理:Spring Boot提供了一套统一的监控和管理功能,可以通过Actuator模块来监控应用程序的运行状态、性能指标等,并提供了一些健康检查、审计日志等功能。

6.总的来说,学习Spring Boot可以帮助我们快速构建高效、可靠的应用程序,提高开发效率和代码质量。它是构建微服务架构和云原生应用的理想选择。

二.关于SpringBoot的核心特性介绍

首先,SpringBoot是一个用于简化Spring应用程序开发的框架,它提供了一系列核心特性,使得开发者能够更快速、更简单地构建和部署Spring应用程序。


1. 独立运行的Spring应用程序

SpringBoot允许开发者创建独立运行的Spring应用程序,因此,开发者无需部署到外部应用服务器,就可以直接运行Spring应用程序,使得运行spring boot的应用程序的步骤更为方便。

1.1 内嵌Servlet容器

SpringBoot内置了多种Servlet容器,开发者可以根据需要选择合适的Servlet容器。内嵌Servlet容器,使得开发者不需要去额外配置和部署应用服务器,简化了应用程序的部署过程。

1.2 可执行JAR和WAR文件

SpringBoot支持将应用程序打包成可执行的JAR或WAR文件,这能让开发者可以轻松地将应用程序部署到任何支持Java的环境中。除此之外,可执行JAR文件还可以包含应用程序的所有依赖,简化了应用程序的分发和部署。

1.3 简化的启动和关闭过程

SpringBoot提供了一个名为SpringApplication的类,用于简化应用程序的启动和关闭过程。开发者只需调用SpringApplication.run()方法,就可以启动应用程序。


2. 自动配置

SpringBoot通过自动配置功能,可以帮助开发者快速地配置和使用各类Spring组件。自动配置根据应用程序的依赖和配置文件,自动地为开发者创建、配置Bean。

2.1 基于条件的自动配置

SpringBoot的自动配置功能基于条件,即只有当满足特定条件时,才会自动配置某个Bean。这些条件包括类路径中存在特定的类、配置文件中存在特定的属性等。这使得自动配置既灵活,可控。

2.2 自定义自动配置

虽然SpringBoot提供了大量的自动配置,但开发者仍然可以根据需要自定义自动配置。通过创建自定义的自动配置类,并使用@EnableAutoConfiguration注解,开发者可以轻松地实现自定义的自动配置。

2.3 自动配置报告

为了帮助开发者了解自动配置的详细情况,SpringBoot提供了自动配置报告功能。通过--debug选项启动应用程序,开发者可以查看自动配置报告,了解哪些自动配置被启用,哪些被禁用,以及原因。


3. 灵活的配置管理

SpringBoot提供了一套灵活的配置管理机制,使得开发者可以轻松地管理应用程序的配置信息。

3.1 外部化配置

SpringBoot支持将配置信息外部化,即将配置信息存储在外部文件(如application.properties或application.yml)中。这使得开发者可以在不修改代码的情况下,轻松地修改应用程序的配置信息。

3.2 配置文件的优先级

SpringBoot支持多种配置文件,并为这些配置文件定义了优先级。当存在多个配置文件时,高优先级的配置文件会覆盖低优先级的配置文件。这使得开发者可以根据需要灵活地组合和覆盖配置信息。

3.3 环境变量和命令行参数

除了配置文件,SpringBoot还支持通过环境变量和命令行参数设置配置信息。这使得开发者可以在不修改配置文件的情况下,为不同的环境和场景提供不同的配置信息。


4. 丰富的生产级功能

SpringBoot提供了一系列生产级功能,帮助开发者构建可靠、高性能的应用程序。

4.1 健康检查和监控

SpringBoot提供了健康检查和监控功能,使得开发者可以轻松地了解应用程序的运行状况。通过/actuator/health端点,开发者可以查看应用程序的健康状况;通过/actuator/metrics端点可以查看应用程序的性能指标。

4.2 日志管理

SpringBoot提供了强大的日志管理功能,支持多种日志框架(如Logback、Log4j2和JDK Logging)。通过配置文件,开发者可以轻松地设置日志级别、日志格式和日志输出目标。

4.3 安全管理

SpringBoot集成了Spring Security,提供了一套完善的安全管理机制。通过简单的配置,开发者可以实现身份认证、权限控制和安全防护等功能。

5. 易于扩展

SpringBoot具有良好的扩展性,使得开发者可以轻松地为其添加新功能。


5.1 自定义Starter

开发者可以创建自定义的Starter,将常用的功能封装成可重用的模块。通过添加自定义Starter的依赖,开发者可以轻松地为应用程序添加新功能。

5.2 事件监听和发布

SpringBoot支持事件监听和发布机制,使得开发者可以在应用程序的生命周期中,监听和发布各种事件。通过实现ApplicationListener接口,开发者可以监听特定类型的事件;通过ApplicationEventPublisher接口,开发者可以发布自定义事件。

5.3 集成第三方库和框架

SpringBoot提供了丰富的集成选项,使得开发者可以轻松地将第三方库和框架集成到应用程序中。通过添加相应的依赖和配置,开发者可以使用各种流行的数据库、缓存、消息队列和搜索引擎等技术。


6.数据层框架的整合和使用,如mybatis、mybatis-plus、Jpa的原理和简单使用

数据层框架是用于简化数据库操作的开发工具,它们提供了一种将对象和数据库之间进行映射的方式,使得开发人员可以使用面向对象的方式来操作数据库。


MyBatis:

原理:MyBatis是一种基于SQL的持久层框架,它通过XML或注解的方式将数据库操作语句与Java代码进行映射。它将SQL语句和参数传递给数据库执行,并将查询结果映射为Java对象。
简单使用:使用MyBatis需要定义Mapper接口和Mapper XML文件。Mapper接口定义了数据库操作的方法,Mapper XML文件中定义了SQL语句和结果映射规则。通过使用SqlSessionFactory创建SqlSession对象,然后使用SqlSession对象执行Mapper接口中定义的方法来进行数据库操作。

MyBatis-Plus:

原理:MyBatis-Plus是在MyBatis的基础上进行封装的一款持久层框架,它提供了更简洁的API和更强大的功能。它通过代码生成器自动生成Mapper接口和实体类,简化了开发流程。
简单使用:使用MyBatis-Plus需要定义实体类和Mapper接口。使用代码生成器生成Mapper接口和实体类后,可以直接使用这些接口进行数据库操作,无需编写SQL语句。

JPA(Java Persistence API):

原理:JPA是一种Java持久化规范,它定义了一套标准的API接口,用于将Java对象持久化到数据库中。JPA通过注解或XML配置的方式来描述对象和数据库之间的映射关系,并提供了一套API来进行数据库操作。
简单使用:使用JPA需要定义实体类和Repository接口。实体类通过注解或XML配置与数据库表之间的映射关系,Repository接口定义了数据库操作的方法。通过使用EntityManagerFactory创建EntityManager对象,然后使用EntityManager对象执行Repository接口中定义的方法来进行数据库操作。


7.前端模板引擎Thymeleaf的整合和使用

Thymeleaf是一种Java模板引擎,用于在服务器端生成HTML页面。它与Spring框架紧密集成,可以在Spring MVC应用程序中方便地使用。
下面是将Thymeleaf集成到Spring MVC应用程序中的步骤:

添加依赖:在项目的构建文件(如pom.xml)中添加Thymeleaf和Spring MVC的依赖。例如,在Maven项目中,可以添加以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>


配置Thymeleaf:在Spring MVC配置文件(如application.properties或application.yml)中添加Thymeleaf的相关配置。例如,可以添加以下配置:

spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.cache=false

这些配置指定了Thymeleaf模板文件的位置、后缀和是否开启缓存。

创建Thymeleaf模板:在项目的资源目录下创建一个名为"templates"的文件夹,并在该文件夹下创建HTML模板文件。例如,可以创建一个名为"index.html"的文件:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Thymeleaf Example</title>
</head>
<body>
    <h1 th:text="${message}">Hello Thymeleaf!</h1>
</body>
</html>


8.Spring boot常用注解介绍

@SpringBootApplication: 这是一个组合注解,用于标注Spring Boot应用的主类。它包含了@Configuration、@EnableAutoConfiguration和@ComponentScan注解。


@Controller: 用于标注一个控制器类,处理HTTP请求。


@RestController: 与@Controller注解类似,但是它还包含了@ResponseBody注解,用于将方法返回的对象直接转换为JSON格式的响应。


@RequestMapping: 用于映射HTTP请求的URL路径到控制器的处理方法。


@GetMapping、@PostMapping、@PutMapping、@DeleteMapping: 这些注解分别表示GET、POST、PUT和DELETE请求的映射。


@PathVariable: 用于将URL路径中的变量绑定到控制器方法的参数上。


@RequestParam: 用于将HTTP请求中的参数绑定到控制器方法的参数上。


@RequestBody: 用于将HTTP请求的请求体绑定到控制器方法的参数上。


@ResponseBody: 用于将方法返回的对象直接转换为HTTP响应的响应体。


@Autowired: 用于自动注入依赖对象。


@Service: 用于标注一个服务类。


@Repository: 用于标注一个数据访问对象类。


@Component: 用于标注一个普通的Spring组件类。


@Configuration: 用于标注一个配置类,其中定义了一些配置方法。


@EnableAutoConfiguration: 用于开启Spring Boot的自动配置功能。


@EnableConfigurationProperties: 用于开启对@ConfigurationProperties注解的支持,将配置文件中的属性值绑定到对应的属性上。


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


三.关于spring boot的学习成果

出现的问题:安装位置错误,版本错误。

解决方法:寻求老师帮助,重新下载安装新版本。

    1. 关于idea的安装

出现的问题:安装版本错误,前期配置出问题

解决方法:去相关网站下载合适的版本

文件链接如下

链接:https://pan.baidu.com/s/12WR6A-9Uc2-U1y0cb2WHuw 提取码:fsw2

    1. maven的配置

出现问题:英语水平较低,无法理解

解决方法:通过对插件的搜索和下载安装,将idea文字调整为中文

maven文件提取链接如下

链接:https://pan.baidu.com/s/1n1IxUnxCjlpZkd9NjWw1rw 提取码:nxgy

             

  • 学会了项目的创建,以及首次运行成功。

过程总结经验:多看书,不会就问,多看代码,检查配置以及jdk版本号。

  • 关于数据库依赖的添加,以及MySQL的安装和运行。

1.首先,在依赖上,每一个符号以及版本号必须认真对待,错误一个符号都会导致大片依赖报错。

     2.MySQL的安装以及运行屡次受阻,其中出现了无法安装,无法启动,密码错误等问题,最后通过求教老师以及强行修改root密码完成该任务。

启用实现代码

net start mysql;

mysql - uroot -p密码;

use springboot;

     

  • 关于配置文件的以及端口号的应用
  • spring.datasource.druid.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&useSSL=false
    spring.datasource.druid.username=root
    spring.datasource.druid.password=123456
    spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.druid.initial-size=5
    spring.datasource.druid.max-active=30
    spring.datasource.druid.min-idle=5
    spring.datasource.druid.max-wait=60000
    spring.datasource.druid.time-between-eviction-runs-millis=60000
    spring.datasource.druid.min-evictable-idle-time-millis=300000
    spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
    spring.datasource.druid.test-while-idle=true
    spring.datasource.druid.test-on-borrow=false
    spring.datasource.druid.test-on-return=false
    spring.datasource.druid.pool-prepared-statements=true
    spring.datasource.druid.max-pool-prepared-statement-per-connection-size=50
    spring.datasource.druid.filters=stat,wall
    spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.sta t.slowSqlMillis=500
    spring.datasource.druid.use-global-data-source-stat=true
    spring.datasource.druid.stat-view-servlet.login-username=admin
    spring.datasource.druid.stat-view-servlet.login-password=123
    spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,".ico,/druid/*
    
    server.port=8081

使用该方法完成了对端口号的配置,并实现访问本地文件

四.关于maven的理解

Maven是一个构建工具,用于管理Java项目的构建、依赖和文档等方面。它提供了一种统一的项目结构和自动化构建过程,简化了项目的管理和构建。

Maven使用一个项目对象模型(Project Object Model,POM)来描述项目的结构和依赖关系。POM是一个XML文件,包含了项目的基本信息、依赖关系、插件配置等。

Maven提供了一组命令和生命周期(lifecycle),用于执行各种构建任务。通过执行特定的命令或阶段,Maven可以自动下载依赖、编译源代码、运行单元测试、打包项目等。这样可以大大简化构建过程,提高开发效率。

Maven还提供了中央仓库(Central Repository)和插件仓库(Plugin Repository),用于存储和共享项目依赖和插件。开发者可以通过配置POM文件,指定项目所需的依赖和插件,Maven会自动从仓库中下载并安装。

另外,Maven还支持多模块项目的管理。通过将项目拆分为多个子模块,可以更好地组织和管理项目的结构和依赖关系。

总之,Maven是一个功能强大的构建工具,可以帮助开发者自动化构建和管理Java项目,提高开发效率和项目的可维护性。

五.实现增删查改

package Controller;

import com.example.demo.entity.Customer;
import com.example.demo.servcie.CustomerServcie;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class CustomerController {

    @Autowired
    CustomerServcie customerServcie;

    @GetMapping("/save")
    public String saveCustomer() {

        Customer customer = new Customer();
        customer.setJobNo("J00353");
        customer.setName("张三峰");
        customer.setDepartment("软件与大数据学院");

        int result = customerServcie.saveCustomer(customer);

        if (result > 0) {
            return "添加员工成功!";
        } else {
            return "添加员工失败!";
        }

    }

    @GetMapping("/getAll")
    public String getAllCustomer() {
        return customerServcie.getAllCustomer().toString();
    }

    //根据ID查询客户信息
    @GetMapping("/getCustomer/{id}")
    public Customer getCustomerById(@PathVariable Integer id) {
        return customerServcie.getCustomerById(id);
    }

    //修改客户信息
    @GetMapping("/update")
    public String updateCustomer(Customer customer) {
        customer.setId(9);
        customer.setName("孙贺祥");
        customer.setJobNo("J00110");
        customer.setDepartment("软件学院");
        int result = customerServcie.updateCustomer(customer);
        if (result > 0) {
            return "修改员工成功啦!";
        } else {
            return "修改员工失败啦!";
        }

    }

    //删除客户信息
    @GetMapping("/delete/{id}")
    public String deleteCustomer(@PathVariable Integer id) {
        int result = customerServcie.deleteCustomer(id);
        if (result > 0) {
            return "删除员工成功啦!";
        } else {
            return "删除员工失败!";
        }
    }
}

-----------------------------------------------------

package entity;

import lombok.Data;

@Data
public class Customer {
    private Integer id;
    private String jobNo;
    private String name;
    private String department;


    public Customer() {
    }

    public Customer(Integer id, String jobNo, String name, String department) {
        this.id = id;
        this.jobNo = jobNo;
        this.name = name;
        this.department = department;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getJobNo() {
        return jobNo;
    }

    public void setJobNo(String jobNo) {
        this.jobNo = jobNo;
    }

    public String getName() {
        return name;
    }

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

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }

    @Override
    public String toString() {
        return "Customer{" +
                "id=" + id +
                ", jobNo='" + jobNo + '\'' +
                ", name='" + name + '\'' +
                ", departMent='" + department + '\'' +
                '}';
    }
}

六.关于基于Spring Boot的微信小程序在线点餐系统的设计与实现


四.关于学习spring boot全过程总结。

学习Spring Boot的课程后,我对该框架有了更深入的了解和掌握。以下是我对课后的总结:
1.Spring Boot是一个用于构建独立的、生产级别的Spring应用程序的框架。它简化了Spring应用程序的配置和部署过程,提供了自动配置和约定大于配置的原则,使开发人员能够更加专注于业务逻辑的实现。


2.Spring Boot的核心特点是自动配置和起步依赖。自动配置可以根据应用程序的类路径和对应的依赖自动配置Spring应用程序,大大简化了配置的过程。起步依赖是一种可以一站式引入所有需要的依赖的方式,可以方便地构建应用程序。


3.Spring Boot提供了丰富的开箱即用的功能,包括Web开发、数据访问、安全认证、消息队列等。这些功能可以通过简单的配置和注解来使用,极大地提高了开发效率。


4.在学习Spring Boot的过程中,我学会了如何创建一个Spring Boot应用程序,包括创建项目、配置文件、编写控制器和服务等。我也了解了如何使用Spring Boot的自动配置和起步依赖来简化应用程序的开发过程。


5.学习Spring Boot的过程中,我还学会了如何使用Spring Boot的测试框架进行单元测试和集成测试。测试是保证应用程序质量的重要手段,能够帮助发现和修复潜在的问题。
Spring Boot还提供了丰富的监控和管理功能,可以通过Actuator模块来监控应用程序的运行状态和性能指标,并提供了一系列的端点来获取应用程序的信息。

6.学习工程中,发现了根据spring boot的优劣势,可利用其优点快速搭建程序的框架,进行业务开发和程序开发。

7 通过学习Spring Boot,我对微服务架构有了更深入的理解。Spring Boot天生支持微服务架构,通过使用Spring Boot可以快速地构建和部署微服务应用程序。Spring Boot提供了丰富的微服务相关的功能和工具,如服务注册与发现、负载均衡、熔断器等,帮助我们构建健壮、可扩展的微服务应用程序。

8.在学会spring boot中新的知识点时,自行去试验在spring boot框架中的使用,印证其合理性,完成对该知识点的印证,加深对知识点的理解。

9.多看源码,多求助老师。学习任何东西都需要去借鉴他人的作品和请教指导老师,不可骄傲自满,认为自己可以解决所有问题,如此下来只会拖累学习进度。

10. 通过这次的Spring Boot课程学习,我深刻体会到了Spring Boot的强大和便捷性。它不仅提供了快速开发的特性,还提供了优秀的开发体验和强大的生态系统。通过学习Spring Boot,我对微服务架构有了更深入的理解。总的来说,学习Spring Boot让我对Spring框架有了更深入的了解,也提高了我的开发效率和代码质量。我相信通过不断的实践和学习,我能够更好地运用Spring Boot来构建高质量的应用程序。学好spring boot,对于我以后的工作有着莫大的帮助,该课程为我未来的发展方向提供了一条新的路。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值