springboot一课一得心得体会总结

1.引言

1.1.SpringBoot简介

1.1.1什么是Spring Boot

SpringBoot是一个可使用Java构建微服务的微框架。是Spring框架及其社区对“约定优先于配置”理念的最佳实践。Sping Boot的设计目的是让你尽可能快地启动和运行,而无需预先配置Spring。Spring Boot以以一种固定的方式来构建可用于生产级别的应用程序。
一般把Spring Boot称为搭建程序的脚手架或者说是便捷搭建基于Spring的工程脚手架。其最主要作用就是帮助开发人员快速的构建庞大的spring项目,并且尽可能的减少一切xml配置,做到开箱即用,迅速上手,让开发人员关注业务而非配置。

1.1.2 Spring的发展历史

Spring1.x时代 在Spring1.x时代,都是通过xml文件配置bean,随着项目的不断扩大,需要将xml配置分放到不同的配置文件中,需要频繁的在java类和xml配置文件中切换。

Spring2.x时代 随着JDK 1.5带来的注解支持,Spring2.x可以使用注解对Bean进行声明和注入,大大的减少了xml配置文件,同时也大大简化了项目的开发。

那么,问题来了,究竟是应该使用xml还是注解呢?

最佳实践:

1、 应用的基本配置用xml,比如:数据源、资源文件等;

2、 业务开发用注解,比如:Service中注入bean等;

Spring3.x到Spring4.x到Spring5.x 从Spring3.x开始提供了Java配置方式,使用Java配置方式可以更好的理解你配置的Bean,现在我们就处于这个时代,并且Spring4.x和Springboot都推荐使用java配置的方式
 

1.2.为何学习Spring Boot

java一直被人诟病的一点就是臃肿、麻烦。当我们还在辛苦的搭建项目时,可能Python程序员已经把功能写好了,究其原因注意时两点:

1.2.1复杂的配置

项目各种配置其实是开发时的损耗,因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以写配置挤占了写应用逻辑的时间。

1.2.2混乱的依赖管理

项目的依赖管理也是件吃力不讨好的事情。决定项目里要用哪些库就已经够让人头痛的了,你还要知道这些库的哪个版本和其他库不会有冲突,这实在棘手。而且依赖管理也是种耗损,添加依赖不是写应用程序代码。一旦选错了版本,随之而来的不兼容问题毫无疑问会是生产力杀手。

1.3原有Spring优缺点分析

1.3.1 Spring的优点分析

Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。无需开发重量级的Enterprise JavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能。

1.3.2 Spring的缺点分析

虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是很多XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。

所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但与此同时它要求的回报也不少。

除此之外,项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度。
 

1.4.Spring Boot开发版本推荐

(1)Spring boot目前分为两大版本系列,1.x系列和2.x系列

(2)如果是使用eclipse,推荐安装Spring Tool Suite (STS)插件

(3)如果使用IDEA旗舰版,自带了Spring Boot插件

(4)推荐使用Maven 3.3+,Maven目前最新版本为3.6.0(2019.01)

(5)推荐使用Java 8,Spring Boot 1.x系列的版本兼容Java 6,Spring Boot 2.x系列需要至少Java8

2.Spring Boot项目开发步骤

以idea为例

项目名称:balabala

互联网链接:start.spring.io

2.1创建一个New Project

(1) 创建一个Module,选择类型为Spring Initializr快速构建

(2)选择 Web 依赖 和 Spring Boot 版本号,点击create

(3)至此创建完成

 (4)打开Project Structure ,配置sdk版本,根据项目要求情况来配置sdk

(5)通过改造 Maven 工程创建,IDEA配置Maven,进入file->settings,在搜索框中搜索maven

(6)配置后,点击刷新按钮

 此时maven配置成功。

3.Spring Boot快速入门

3.1.代码实现

3.1.1添加SpringBoot依赖

接着上面的步骤,添加SpringBoot的起步依赖SpringBoot要求,项目要继承SpringBoot的起步依赖spring-boot-starter-parent

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.5.RELEASE</version>
</parent>

3.1.2编写SpringBoot引导类

SpringBoot要集成SpringMVC进行Controller的开发,所以项目要导入web的启动依赖 

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

3.1.3 编写Controller

要通过SpringBoot提供的引导类起步SpringBoot才可以进行访问

package cn.js.ccit;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Unit21Application {

    public static void main(String[] args) {
        SpringApplication.run(MySpringBootApplication.class);
    }

}

 在引导类MySpringBootApplication同级包或者子级包中创建QuickStartController

package cn.js.ccit.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class  HelloControllerController {
    
    @RequestMapping("/quick")
    @ResponseBody
    public String quick(){
        return "springboot 访问成功!";
    }
    
}

3.1.5 测试

执行SpringBoot起步类的主方法,控制台打印日志如下:

通过日志发现,Tomcat started on port(s): 8080 (http) with context path ‘’

tomcat已经起步,端口监听8080,web应用的虚拟工程名称为空

打开浏览器访问url地址为:http://localhost:8080/quick

3.2.快速入门分析

SpringBoot代码解析
@SpringBootApplication:标注SpringBoot的启动类,该注解具备多种功能(后面详细剖析)
SpringApplication.run(MySpringBootApplication.class) 代表运行SpringBoot的启动类,参数为SpringBoot启动类的字节码对象
2.2.3 SpringBoot工程热部署
我们在开发中反复修改类、页面等资源,每次修改后都是需要重新启动才生效,这样每次启动都很麻烦,浪费了大量的时间,我们可以在修改代码后不重启就能生效,在 pom.xml 中添加如下配置就可以实现这样的功能,我们称之为热部署

<!--热部署配置-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
</dependency>

4.怎样更快有效学习springboot

如果你是一个Spring Boot框架的初学者,以下是一些学习该框架的建议步骤:

4.1掌握Java基础知识

在学习Spring Boot之前,建议先掌握Java编程语言的基础知识,包括面向对象编程(OOP)的概念、Java语法、集合框架等。这将有助于你更好地理解和应用Spring Boot的概念和特性。

4.2学习Spring框架

Spring Boot是基于Spring框架构建的,因此建议先学习Spring框架的核心概念和功能。了解Spring框架的依赖注入、控制反转(IoC)、面向切面编程(AOP)等概念对学习Spring Boot非常有帮助。

4.3阅读官方文档和教程

Spring Boot有详细的官方文档,其中包含了对框架的全面介绍、示例代码和配置指南。阅读官方文档是学习Spring Boot的最佳途径。此外,还可以查找一些优质的Spring Boot教程和指南,帮助你更好地理解和应用框架。

4.4实践项目

学习Spring Boot最好的方式是通过实际项目来应用所学知识。选择一个小型的项目,尝试使用Spring Boot搭建和开发,实践中你会遇到各种问题和挑战,通过解决这些问题来加深对框架的理解。

4.5探索Spring Boot生态系统

Spring Boot拥有庞大的生态系统,有许多与其兼容的库和工具。探索Spring Boot的生态系统,了解并尝试集成一些常用的库,如Spring Data、Spring Security、Thymeleaf等,扩展你的应用程序的功能。

4.6参与社区和交流

加入Spring Boot的开发者社区,参与讨论和交流,向经验丰富的开发者学习和寻求帮助。这将帮助你更快地解决问题,学习到更多实际应用的经验。

5.我对于Spring Boot的学习

我通过学习线上课程,阅读相关文档与教程,参加线下实践项目来学习Spring Boot。在学习过程中,我逐渐学会了Spring Boot的用法,并且通过实践项目加深理解与应用的方法。并且产生了一些心得体会。

学习Spring Boot的过程可以分为以下几个步骤:

5.1掌握Spring框架基础

在学习Spring Boot之前,首先需要对Spring框架有一定的了解。了解Spring的核心概念和基本用法,如依赖注入、控制反转、AOP等。这将为后续学习Spring Boot打下坚实的基础。

5.2学习Spring Boot的核心概念

了解Spring Boot的核心概念和特点,如约定优于配置、自动配置、内嵌服务器等。可以通过阅读官方文档、书籍或在线教程来学习这些概念。

5.3搭建开发环境

下载并配置Java开发环境,安装并配置Maven或Gradle作为构建工具。Spring Boot默认使用Maven作为构建工具,但也支持Gradle。

6.学习总结

自我学习以来,我知道了Spring Boot 是一种构建 Java 应用程序效率非常高的框架,由于其灵活性、简单性和可扩展性,越来越多的开发者开始使用它来构建生产就绪的应用程序。在我看来,Spring Boot 的优点主要有以下几点:

6.1快速开发

Spring Boot 提供了一套开箱即用的集成环境,使得开发者可以轻松地快速开发应用程序。

6.2 自动配置

Spring Boot的自动配置功能可以根据用户的需求自动配置应用程序的多个模块,例如数据库、数据源、Web 服务器等。

6.3 微服务支持

Spring Boot 支持微服务化架构,使得开发者可以构建高度可扩展的和分布式的应用程序。

6.4.优化性能

Spring Boot 自带多种性能优化工具,使得应用程序可以更加高效地运行。

6.5社区活跃

Spring Boot 拥有庞大的社区支持,开发者可以检索到许多技术文档和解决方案,有助于快速解决问题。

总结来说,Spring Boot 是一款非常强大的框架,能够大大提高 Java 应用程序的开发效率,同时也具备较高的可扩展性和性能优化能力。与此同时,它也是一个庞大的社区,拥有大量的技术文章和解决方案,可以帮助开发者快速开发高质量的应用程序。

7.项目学习拓展

7.1 mall

项目地址:https://gitee.com/macrozheng/mall?_from=gitee_search

mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。

7.2  Cloud-Platform(微服务的)

项目地址:https://gitee.com/geek_qi/cloud-platform

Cloud-Platform是国内首个基于Spring Cloud微服务化开发平台,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API 管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。核心技术采用Spring Boot 2.1.2以及Spring Cloud (Greenwich.RELEASE) 相关核心组件,采用Nacos注册和配置中心,集成流量卫兵Sentinel,前端采用vue-element-admin组件。

7.3  spring-boot-pay(各种支付案例)

项目地址:https://gitee.com/52itstyle/spring-boot-pay

这是一个支付案例,提供了包括支付宝、微信、银联在内的详细支付代码案例,对于有支付需求的小伙伴来说,这个项目再合适不过了。

7.4  spring-boot-seckill(秒杀案例)

项目地址:https://gitee.com/52itstyle/spring-boot-seckill

从0到1构建分布式秒杀系统,脱离案例讲架构都是耍流氓,SpringBoot开发案例从0到1构建分布式秒杀系统,项目案例基本成型,逐步完善中。

7.5 springboot-plus (后台管理系统)

项目地址:https://gitee.com/xiandafu/springboot-plus

一个基于SpringBoot 2 的管理后台系统,包含了用户管理,组织机构管理,角色管理,功能点管理,菜单管理,权限分配,数据权限分配,代码生成等功能 相比其他开源的后台系统,SpringBoot-Plus 具有一定的复杂度。系统基于Spring Boot2.1技术,前端采用了Layui2.4。 数据库以MySQL/Oracle/Postgres/SQLServer为实例,理论上是跨数据库平台。

7.6  litemall(电商)

项目地址:https://gitee.com/linlinjava/litemall?_from=gitee_search

一个商城项目,包括Spring Boot后端 + Vue管理员前端 + 微信小程序用户前端 + Vue用户移动端。

小商城功能:首页、专题列表、专题详情、分类列表、分类详情、品牌列表、品牌详情、新品首发、人气推荐、优惠券列表、优惠券选择、团购(团购业务有待完善)、搜索、商品详情、商品评价、商品分享、购物车、下单、订单列表、订单详情、地址、收藏、足迹、意见反馈、客服; 管理平台功能:会员管理、商城管理、商品管理、推广管理、系统管理、配置管理、统计报表。

7.7  jeeSpringCloud(微服务)

项目地址:gitee.com/JeeHuangBin…

基于SpringBoot2.0的后台权限管理系统界面简洁美观敏捷开发系统架构。核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。互联网云快速开发框架,微服务分布式代码生成的敏捷开发系统架构。项目代码简洁,注释丰富,上手容易,还同时集中分布式、微服务,同时包含许多基础模块和监控、服务模块。模块包括:定时任务调度、服务器监控、平台监控、平台设置、开发平台、单点登录、Redis分布式高速缓存、会员、营销、在线用户、日志、在线人数、访问次数、调用次数、直接集群、接口文档、生成模块、代码实例、安装视频、教程文档 代码生成(单表、主附表、树表、列表和表单、redis高速缓存对接代码、图表统计、地图统计、vue.js)、dubbo、springCloud、SpringBoot、mybatis、spring、springmvc。

7.8  NiceFish

项目地址:https://gitee.com/mumu-osc/NiceFish

NiceFish(美人鱼) 是一个系列项目,目标是示范前后端分离的开发模式:前端浏览器、移动端、Electron 环境中的各种开发模式;后端有两个版本:SpringBoot 版本和 SpringCloud 版本。

7.9 zscat_sw (电商)

项目地址:https://gitee.com/catshen/zscat_sw

基于springboot dubbo构建的一个商城项目,包括前端,后端和h5应用,小程序,作为zscat应用实践的模板项目。包含sso登录、API网关、流量控制、自定义协议包装、、自动crud、自动缓存、读写分离、分布式缓存、分布式定时任务、分布式锁、消息队列、事件机制、oauth2.0登录、全文搜索、集成qiniu文件服务、集成dubbo、集成springcboot等功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值