如何快速上手Spring boot?(如何快速上手金铲铲)

如何快速上手Spring boot?

一,如何快速上手Spring boot?

推荐以 Spring Boot 教程与 Spring Cloud 教程的详细开源项目 “SpringBoot-Learning” 此项目内容为 Spring Boot 教程程序样例,对于 Spring Boot 的初学者来说非常有用,文末也列出了Spring 相关开源项目,供大家交流学习。


1. SpringBoot-Learning 部分样例:

快速入门

  • chapter1:基本项目构建(可作为工程脚手架),引入web模块,完成一个简单的RESTful API
  • 使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程

工程配置

  • chapter2-1-1:配置文件详解:自定义属性、随机数、多环境配置等

Web开发

  • chapter3-1-1:构建一个较为复杂的RESTful API以及单元测试
  • chapter3-1-2:使用Thymeleaf模板引擎渲染web视图
  • chapter3-1-3:使用Freemarker模板引擎渲染web视图
  • chapter3-1-4:使用Velocity模板引擎渲染web视图
  • chapter3-1-5:使用Swagger2构建RESTful API
  • chapter3-1-6:统一异常处理

数据访问、日志管理等等,项目地址:程序猿DD/SpringBoot-Learning - 码云 Gitee.com


2. 项目名称:spring boot 实践学习案例
springboot-learning-example

项目结构:

a. 『 基础 - 入门篇 』

  • springboot-helloworld《Spring Boot 之 HelloWorld 详解》
  • springboot-properties 《Spring Boot 之配置文件详解》

b. 『 基础 - Web 业务开发篇 』

  • springboot-restful 《Springboot 实现 Restful 服务,基于 HTTP / JSON 传输》 《Spring Boot 之 RESRful API 权限控制》
  • springboot-freemarker 《Spring Boot 集成 FreeMarker 详解案例》
  • springboot-validation-over-json 《Spring Boot HTTP over JSON 的错误码异常处理》

c. 『 基础 – 数据存储篇 』

  • springboot-mybatis 《Springboot 整合 Mybatis 的完整 Web 案例》
  • springboot-mybatis-annotation 《Spring Boot 整合 Mybatis Annotation 注解的完整 Web 案例》
  • springboot-mybatis-mutil-datasource 《Spring Boot 整合 Mybatis 实现 Druid 多数据源详解》

d. 『 基础 – 数据缓存篇 』

  • springboot-mybatis-redis 《Spring Boot 整合 Redis 实现缓存操作》
  • springboot-mybatis-redis-annotation 《Spring Boot 注解实现整合 Redis 作为缓存》

e. 『 其他篇 』

  • springboot-elasticsearch 《Spring Boot 整合 Elasticsearch,实现 function score query 权重分查询》
  • springboot-dubbo-server
  • springboot-dubbo-client Dubbo 服务提供者工程和 Dubbo 服务消费者工程 《Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例》 《Spring Boot 中如何使用 Dubbo Activate 扩展点》

Spring Data ES 篇

  • spring-data-elasticsearch-crud 《Spring Data Elasticsearch - 基本案例》
  • spring-data-elasticsearch-query spring-data-elasticsearch - 实战案例详解

项目地址:泥沙砖瓦浆木匠
/springboot-learning-example - 码云 Gitee.com


Spring 相关项目推荐:

1. 项目名称:基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构

项目内容:基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构,提供整套公共微服务服务模块:集中权限管理(单点登录)、内容管理、支付中心、用户管理(支持第三方登录)、微信平台、存储系统、配置中心、日志分析、任务和通知等,支持服务治理、监控和追踪,努力为中小型企业打造全方位J2EE企业级开发解决方案。

项目地址:shuzheng/zheng - 码云 Gitee.com


2. 项目名称:模块化开发系统 ybg-spring-fast

项目简介:以SpringBoot 为中心,模块化开发系统,用户可以随意删减除权限框架外 任意的系统模块。复用,组装性强主要应用技术:spring Security+Ehcache+quartz+swagger2+Mysql5.6+springjdbc+druid+spring social+spring session + layerui+vue.js等。

项目地址:YYDeament/ybg-spring-fast - 码云 Gitee.com


3. 项目名称:JAVA分布式快速开发平台 iBase4J

项目内容:JAVA分布式快速开发平台:SpringBoot,SpringMVC,Mybatis,mybatis-plus,motan/dubbo分布式,Redis缓存,Shiro权限管理,Spring-Session单点登录,Quartz分布式集群调度,Restful服务,QQ/微信登录,App token登录,微信/支付宝支付;日期转换、数据类型转换、序列化、汉字转拼音、身份证号码验证、数字转人民币、发送短信、发送邮件、加密解密、图片处理、excel导入导出、FTP/SFTP/fastDFS上传下载、二维码、XML读写、高精度计算、系统配置工具类等等。

项目地址:iBase4J/iBase4J - 码云 Gitee.com


4. 项目名称:Java EE(J2EE)快速开发框架 ThinkGem

项目内容:Java EE(J2EE)快速开发框架,基于经典技术组合(Spring MVC、Apache Shiro、MyBatis、Bootstrap UI),包括核心模块如:组织机构、角色用户、权限授权、数据权限、内容管理、工作流等。虽说很长时间没有大的更新了,但它的架构精良易于扩展深受大家喜爱,依然是中小企业的首选,它的功能设计、底层架构也非常具有参考意义、是学习入门的首选。关注我ThinkGem开源中国博客了解4.0最新动态。

项目地址:ThinkGem/JeeSite - 码云 Gitee.com


5. 项目名称:Java快速开发平台 MCMS

项目内容:完整开源,Java快速开发平台。基于Spring、SpringMVC、Mybatis架构,MStore提供更多好用的插件与模板(文章、商城、微信、论坛、会员、评论、支付、积分、工作流、任务调度等,同时提供上百套免费模板任意选择),价值源自分享!铭飞系统不仅一套简单好用的开源系统、更是一整套优质的开源生态内容体系。

项目地址:铭飞/MCMS - Gitee


6. 项目名称:基于Spring Cloud微服务化开发平台 AG-Admin

项目内容:AG-Admin是国内首个基于Spring Cloud微服务化开发平台,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。核心技术采用Eureka、Fegin、Ribbon、Zuul、Hystrix、JWT Token、Mybatis等主要框架和中间件,前端采用vue-element-admin组件。

项目地址:老A/AG-Admin - 码云 Gitee.com


7. 项目名称:轻量级的Spring Boot快速开发平台 renren-fast

项目简介:renren-fast是一个轻量级的Spring Boot快速开发平台,其设计目标是开发迅速、学习简单、轻量级、易扩展;使用Spring Boot、Shiro、MyBatis、Redis、Bootstrap、Vue2.x等框架,包含:管理员列表、角色管理、菜单管理、定时任务、参数管理、代码生成器、日志管理、云存储、API模块(APP接口开发利器)、前后端分离等。

二,如何快速上手财务这份工作

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。我这里会分享一些学习Spring Boot的方法和干货,包括基础到进阶,按照本文的学习路线将会事半功倍,避免大家走了弯路导致浪费了大量时间,详见下文。

一. Spring Boot 是什么

我们刚开始学习 JavaWeb 的时候,使用 Servlet/JSP 做开发,一个接口搞一个 Servlet ,很头大,后来我们通过隐藏域或者反射等方式,可以减少 Servlet 的创建,但是依然不方便。

再后来,我们引入 Struts2/SpringMVC 这一类的框架,来简化我们的开发 ,和 Servlet/JSP 相比,引入框架之后,生产力确实提高了不少,但是用久了,又发现了新的问题,即配置繁琐易出错,要做一个新项目,先搭建环境,环境搭建来搭建去,就是那几行配置,不同的项目,可能就是包不同,其他大部分的配置都是一样的。

Java 总是被人诟病配置繁琐代码量巨大,这就是其中一个表现。那么怎么办?Spring Boot 应运而生,Spring Boot 是 Pivotal 团队在 2013 年开始研发的一个基于 Spring 的全新框架,试图将 Spring 中臃肿的配置进行简化,使 Java 开发更加轻量与快速,这个框架非常活跃,官方也非常重视。

Spring Boot 主要提供了如下功能:

  • 为所有基于 Spring 的 Java 开发提供方便快捷的入门体验。
  • 开箱即用,有自己自定义的配置就是用自己的,没有就使用官方提供的默认的。
  • 提供了一系列通用的非功能性的功能,例如嵌入式服务器、安全管理、健康检测等。
  • 绝对没有代码生成,也不需要XML配置。

Spring Boot 的出现让 Java 开发又回归简单,因为确确实实解决了开发中的痛点,因此这个技术得到了非常广泛的使用,大概从 2017 年年初开始,Spring Boot 基本上面试必问,现在流行的 Spring Cloud 微服务也是基于 Spring Boot,因此,所有的 Java 工程师都有必要掌握好 Spring Boot。

从 Spring Boot 诞生的过程中,我们可以看到:

  • Spring Boot 并非另起炉灶,而是在现有的 Spring 框架的基础上整出来的,它把 Spring 中繁琐的配置进行了简化。
  • Spring Boot 降低了 Spring 家族的使用门槛,使新手更易上手 Spring 框架。
  • 既然 Spring Boot 不是另起炉灶,那么 Spring Boot 学习要不要跳过 SSM 呢?听松哥来分析。

二. 要不要跳过 SSM

这是很多人问我的一个问题,我的建议是:不要。

Spring Boot 基于 Spring,简单且容易上手,很多人想当然的跳过 SSM 直接上 Spring Boot。但是当我们细究 Spring Boot 中的自动化配置、条件注解、Java 配置等东西时,实在找不出太多新鲜玩意,Java 配置是 Spring3 开始提供的,条件注解 也是 Spring 中的东西,很多很多,都是 Spring 中就有的,只不过这些东西在 Spring Boot 时代大放异彩。

也就是说,即使你跳过了 SSM 直接去学习 Spring Boot,实际上还是在学习 Spring 中的东西,那既然这样,我们还不如坐下来,老老实实把 Spring 过一遍。

各个领域的开发工程师其实都会面临类似的问题,学习了一些优秀的封装框架之后,还有没有必要去学习底层?当然有必要!因为底层的东西可以让你深刻的理解你目前用的这个东西,也能让你在出问题时快速解决掉问题。

其实无论你想搞什么技术,都要有牢固的基础知识,这些牢固的基础知识就像肥沃的土壤,可以孕育出各种不同技术方向的牛人,基础掌握好了,学什么框架都快。今天你跳过 SSM 直接学了 Spring Boot,假如有一天 Spring Boot 不行了,Pivotal 团队又基于 Spring 框架搞了一个新的框架出来,那你是不是又要去学一遍?但是如果你一开始就掌握了 Spring 的各种用法,无论基于它搞出来什么样的框架,你都能快速上手。更进一步,如果你研究透了 Spring 中的 AOP、Ioc/DI,你会发现很多框架大同小异,核心思想就是这些东西,那么你在学习 Spring 之外的框架,就会容易很多。

三. 都要学哪些?

那么 Spring Boot 学习都要学哪些东西呢?我这里列举了一个进阶路线:

  • 最基础的当然是 Spring/SpringMVC 相关的东西了。
  • 搭配各种页面模板的使用,例如 Jsp/Thymeleaf/Freemarker/Groovy Templates 等。
  • 和各种 SQL 数据库的整合,以及一些常见的数据持久化框架,例如 JdbcTemplate、MyBatis、Jpa 等。
  • 和各种 NoSQL 数据库的整合,例如 Redis、MongoDB、Elasticsearch 等。
  • 搭配安全管理相关的知识点,例如 Spring Security、Shiro 等。
  • 缓存的使用,例如 JCache、Ehcache 等。
  • 和消息中间件的搭配整合,如 ActiveMQ、RabbitMQ、Kafka 等。
  • 数据校验/定时任务/邮件发送等。
  • 各种监控的使用。
  • 结合 WebSocket 的使用。
  • Spring Cloud 中相关组件。
  • ...

上面这些只是我列出来的一些比较常见的技术点,每个技术点都还可以延伸出很多其他的东西,大家可以结合自己的情况,按照顺序一个一个来学,这里边还涉及到很多第三方的框架,例如 Redis、MongoDB、RabbitMQ 等,Spring Boot 的出现只是让这些组件在和 Spring 家族的产品整合时变得更加方便,但是并不会简化这些组件原本的用法,所以,该学 Redis、该学 MongoDB、该学 RabbitMQ 等等,还是一个不能少。以 Redis 为例,学会了 Redis,学会了 Spring 整合 Redis,再回过头来看 Spring Boot 整合 Redis,那简直太 easy 了。

当然,学习 Spring Boot 最终我们还是奔着快速开发和微服务去的,所以,像 Docker、Spring Cloud 等技术,也是需要去了解一下的。

四. 学习方法

1课程式学习:

主要多见于大学生、毕业找工作去培训学校或者自己在网络课程中学习的。课程式学习很有必要,能够获得稳定的知识结构,打下良好的基础。

2.碎片化时间学习

碎片化学习主要是利用课余时间,多见于上班族,课余利用上下班、晚上时间、周末时间来实现学习。

3.强化学习

这是个非常行之有效的方法,又可以叫魔鬼式训练、封闭式训练,在集中的时间内,人很容易突破自我极限,达到一种前所未有的高度。

4.项目式学习

就是项目上的需求,要求你用到 Spring Boot 来实现某个业务功能,而且有时间限制,要求你在某年某月某日完成,没办法,只能硬着头皮干下去。这种有收益、有目标、还动力的机会确实是人生中难得的,如果你喜欢这个目标,你可以立马扑上去。

5.随用随学

比如项目中用到mql,那么搜索下罗相关的知识,搭建demo测试用例,然后在项目中实践。

哪种方式更为适合,需要根据各个人的情况来看项目评估如下:

  • 有人带着你学习看着你学习>自己学习
  • 项目学习>非项目学习
  • 强化学习>非强化学习

五. 学习资源

【入门-基础】

  • Spring Boot 快速入门
  • Spring Boot 基础
  • f="">微服务构建: Spring Boot

【入门-缓存】

  • >SpringBoot 中应该怎样使用 Redis
  • ef="">Redis 事务在 SpringBoot 中的应用
  • href="">优化 Redis 的使用策略

入门-实践

  • 3分钟快速搭建Spring Boot开发环境
  • Spring Boot 最佳实践(一)快速入门
  • Spring Boot 最佳实践(二)集成Jsp与生产环境部署
  • Spring Boot 最佳实践(三)模板引擎FreeMarker集成
  • Spring Boot 最佳实践(四)模板引擎Thymeleaf集成
  • Spring Boot 最佳实践(五)Spring Data JPA 操作 MySQL 8

【进阶-Web进阶】

  • Spring Boot统一异常处理
  • Spring Boot Web 应用性能优化
  • 基于Spring Boot快速开发RESTful风格API接口

【进阶-实例】

  • 基于Spring Boot实现图片上传/加水印一把梭操作
  • Spring Boot日志框架实践
  • Spring Boot 成 MyBatis和 SQL Server实践
  • Spring Boot中使用定时任务
  • Spring Boot 一分钟拥有支付宝支付功能

六. 学完Spring Boot基础之后如何进阶提升?

1.springsession实战

Spring Session 是Spring家族中的一个子项目,它提供一组API和实现,用于管理用户的session信息,它把servlet容器实现的httpSession替换为spring-session,专注于解决 session管理问题,Session信息存储在Redis中,可简单快速且无缝的集成到我们的应用中。

2.RabbitMQ

RabbitMQ是流行的开源消息队列系统,用erlang语言开发,RabbitMQ是AMQP(高级消息队列协议)的标准实现。采用该技术,我们可以实现异步处理、流量削峰、系统解耦。

3.Nginx实战应用

国内有大量网站使用Nginx,比如:百度、京东、新浪、网易、腾讯、淘宝等。由于在日常工作中,我们不可避免地要接触和使用这样一款高性能的web服务器,所以我们非常有必要学习和掌握Nginx。

4.FastDFS详解

FastDFS为互联网量身定制,简单、灵活、高效,采用C语言开发,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。。

我觉的学好Spring Boot主要还是得有一个持续性学习的态度,然后结合我上面的从Spring Boot基础到进阶,一直坚持不懈的学习下去,百分百会精通Spring Boot的!

本文分享自华为云社区《【云驻共创】Spring Boot要如何学习?》,作者:黎燃。

三,如何快速上手小黄车

概述

与一些动态语言(如Ruby、Groovy、Node.js)相比,Java开发显得异常笨重。接触过外包项目的朋友也有所了解,如果要开发一个小型项目,首选的编程语言并不是Java,而是PHP。为什么呢?因为开发起来快!目前很多大型互联网公司的早起编程语言都是类似PHP这种能够快速开发的语言。

既然问题出现了,那必然有解决问题的方案,SpringBoot做到了。

SpringBoot让我们可以在几分钟内就搭建出一套项目的基础架构,同时为我们提供了大量集成方案——starters。基于“约定优于配置”的理念,减少大量的配置文件,让项目快速、简单的运行起来。内置web容器(如tomcat、Netty等),通过jar -jar命令即可启动一个项目。

项目创建

环境要求

采用SpringBoot最新版本2.1.3来讲解。我们使用Maven项目管理工具来管理项目,电脑上要预先安装好Maven3.3+(SpringBoot要求)版本。JDK当然也少不了,但需要JDK8及以上版本。

创建项目方式一

通过官网提供的Spring Initializr来创建项目。访问官方网址:https://start.spring.io/ 。显示内容如下

简单了解一下相应的参数选择:

  • Project:选择项目构建的工具,采用默认的Maven;

  • Language:选择构建项目的语言,采用默认的Java;
  • Spring Boot:选择使用的SpringBoot的版本信息,采用最新版本2.1.3;
  • Project Metadata:设置项目的元数据,主要就是设置Maven相关的配置;Group,对应Maven中的GroupId,Artifact对应Maven中的ArtifactId。

打开More options会看到另外一些默认的配置:

  • Packaging:指定打包的模式,默认采用Jar包模式,即使用java -jar启动即可,如果需要部署到单独的tomcat或其他web容器,则可选择war包。
  • Java Version:SpringBoot2.13默认支持最低JDK为8。

我们前面提到的starters的选择就是在Dependencies中设置,在没有输入任何内容的时候,能够看到该输入栏目有对应的提示信息。当输入web时,会动态匹配与web相关的依赖,点击“➕”添加即可。这里选择web的最小化配置。

当完成选择,点击“Generate Project”即可自动下载创建好的项目代码。解压之后,会看到是一个标准的Maven项目,使用idea等IDE引入Maven项目,自动加载依赖即可

创建项目方式二

第二种创建方式就是直接使用IDEA进行创建,当然前提是IDEA中已经安装了Spring Boot相关的插件——Spring Boot,如下图所示。

像创建其他项目一样,File,New,Project…,即可进入创建项目页面,如下图:

选择Spring Initializr,展示右边基础配置项。我们会发现,其实此插件进行创建时默认也是调用官方提供的网址进行创建。选择JDK8,点击下一步。

像第一种方式一样,填写相关参数信息,这里就不再重复描述。点击“Next”,进入选择依赖界面。点击“Web”,同时勾选中间部分出现的“Web”。能够看到下面出现了“Servlet web application with Spring MVC and Tomcat”,因此,项目已经具有了SpringMVC框架和Tomcat内置web容器了。

当然,如果项目需要,也可以选择添加更多相关依赖。完成依赖选择之后,点击“Next”,指定项目的名称和位置,点击“Finish”,等待项目构建完成即可。根据网络速度,等待时间有所不同,当添加依赖jar包一直卡着不动时,可考虑关闭项目重新打开,手动“Reimport”一下Maven依赖。

项目目录结构

项目完成创建之后,来看一下目录结构:

项目目录结构简单明了,就是一个普通的Maven项目。src/main/java目录下为项目的启动程序和后续需要编写的业务代码。resources目录存放配置文件和资源文件,如web项目的js、css、image、jsp等。test目录存放单元测试类。

配置文件

在常规spring构建的web项目中的配置文件,比如spring-content.xml、web.xml等配置文件都不见了。能够看到的只有application.properties,它默认内置了一些配置,可以通过IDEA的提示功能,快速配置相应的参数,比如在文件内入手server,则会给出如下提示:


通过提示可以看出,内嵌tomcat默认的端口为8080。可以通过server.port=xx,重新指定端口号。

项目依赖

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.1.3.RELEASE</version>

<relativePath/> <!-- lookup parent from repository -->

</parent>

<groupId>com.example</groupId>

<artifactId>demo</artifactId>

<version>0.0.1-SNAPSHOT</version>

<name>demo</name>

<description>Demo project for Spring Boot</description>

<properties>

<java.version>1.8</java.version>

</properties>

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

</dependencies>

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>

</project>

看到pom里面的内容是不是感觉清爽到极致了。是的,忽略掉Maven的元数据配置,其实我们仅仅引入了三部分的内容:

parent元素,引入了
spring-boot-starter-parent的依赖管理,主要提供了整体版本控制和打包等内容;

dependencies元素中,引入了spring-boot-starter-web这个starter和单元测试的starter。

build元素中,引入了一个构建项目的maven插件。

而此刻,如果打开项目的jar包依赖,会看到已经引入了几十个功能相关的jar包了。

HelloWorld

编写一个可通过浏览器访问的hello web程序。在com.example.demo包下创建一个controller的包,并创建HelloWorldController类。

package com.example.demo.controller;

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

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


@RestController

public class HelloWorldController {

@RequestMapping

public String hello() {

return "hello world!";

}

}

像我们使用spring mvc一样,在controller中实现上面的代码。运行DemoApplication中的main方法启动项目,在浏览器输入:
http://localhost:8080/hello,页面显示出”hello world!”,一个简单的rest接口请求便完成了。


是不是非常的便捷呀.......

四,如何快速上手花木兰

先学spring framework吧,把spring 的原理,配置那些东西学会了,理解了再去用spring boot 很容易上手,其实spring boot 就是把很多spring 的配置都简化了,很多东西在properties配置文件里写了之后,spring boot 就会自动帮你把相关的bean配置


总结:以上内容就是 寻游戏 提供的如何快速上手Spring boot?(如何快速上手金铲铲)详细介绍,大家可以参考一下。