首页 > 其他分享 >Spring Boot整合Web项目常用功能详解

Spring Boot整合Web项目常用功能详解

时间:2023-01-04 15:58:52浏览次数:35  
标签:Web 功能 依赖 项目 spring boot Boot Spring

这篇文章主要介绍了Spring Boot整合Web项目常用功能详解,在Web应用开发过程中,可以通过Spring Boot的Starter来将这些常用功能进行整合与集中维护,以达到开箱即用的目的。,需要的朋友可以参考下

前言

在Web应用开发过程中,一般都涵盖一些常用功能的实现,如数据库访问、异常处理、消息队列、缓存服务、OSS服务,以及接口日志配置,接口文档生成等。如果每个项目都来一套,则既费力又难以维护。可以通过Spring Boot的Starter来将这些常用功能进行整合与集中维护,以达到开箱即用的目的。

项目基于Spring Boot 2.1.5.RELEASE 版。

项目地址

整个项目分为如下几部分:

  • spring-boot-autoconfigure: 具体的各功能实现,每个功能通过package的形式组织
  • spring-boot-commons: 一些公共的工具类或共享类
  • spring-boot-dependencies: 依赖的集中维护管理,集中管理各个依赖的版本号
  • spring-boot-parent: 提供一个基本的父项目,web服务项目可通过继承该项目创建
  • spring-boot-starters: 各功能的starter项目,引入相应starter即引入相应功能

spring-boot-dependencies 项目

该项目主要是对所有依赖进行集中定义。通过 dependencyManagement 对依赖进行声明,

这样,所有依赖的版本可以集中统一管理,在其它地方引用的时候可以省去版本的声明,如

org.springframework.bootspring-boot-dependencies${spring-boot.version}importpom cn.jboost.springbootspring-boot-commons${base-spring-boot.version} ... 

spring-boot-autoconfigure 项目

该项目是各功能自动配置的具体实现,以package的形式进行组织,如 tkmapper 包下实现了通用Mapper的自动配置,error 包下实现了错误处理的自动配置, 等等。

该项目继承了spring-boot-dependencies, 在项目的 pom.xml 中,依赖部分声明类似于

<!-- spring denpendencies --> org.springframeworkspring-webmvctrue org.springframeworkspring-jdbctrue ... 

不需要再指定版本号。通过将optional设置为true,表示该依赖不会进行传递,即另外一个项目引用该项目时,optional的依赖不会被传递依赖过去。

在 resources/META-INF/spring.factories 文件中,声明了所有自动配置类, 如下

spring-boot-starters 项目
该项目包含按功能划分的多个子项目,主要用来引入依赖以达到自动配置的依赖条件,使引入对应starter时,能让自动配置生效。如通用Mapper集成的 tkmapper-spring-boot-starter 依赖如下

org.springframeworkspring-jdbc tk.mybatismapper org.mybatismybatis org.mybatismybatis-spring

同时在 resources/META-INF/spring.provides 里声明了该starter的用途,这里可随意编写。

spring-boot-commons 项目

可将一些常用的工具类, 或共享类放到这个项目中。比如一些常量定义,加解密工具类等。

spring-boot-parent 项目

该项目将Web应用需要的一些常见功能整合进来,应用项目可继承该项目进行构建,从而直接引入相应的功能。

在接下来的spring boot系列博文中,将一一详细介绍各功能的整合集成与应用。同时会不断更新与完善,以达到能直接用于生产项目的水平。

 

标签:Web,功能,依赖,项目,spring,boot,Boot,Spring
From: https://www.cnblogs.com/xiedy001/p/17025055.html

相关文章

  • 非WEB项目中引入Hibernate Validator
    前言:网上一些朋友分享了关于hibernate-validator的使用方法,但是不是缺少关联库信息,就是提供的参考代码中缺少自定类。希望我这一篇博客能够让你顺利的跑出预期的结果。......
  • 又见JavaWeb的中文乱码
    简单翻了一下记录,我已经写了至少4篇关于编码和乱码的博客了,每次都觉得自己懂了。实际上,这次的遭遇证明了“真懂”是一种很难达到的境界,吾辈仍需努力!一、背景是这样子的:......
  • Spring Boot内置的一些工具类
    1、断言Assert工具类//要求参数object必须为非空(NotNull),否则抛出异常,不予放行//参数message参数用于定制异常信息。voidnotNull(Objectobject,Stringmessage......
  • Spring MVC无法获取ajax POST的参数和值
    一、怎么会这个样子很简单的一个想法,ajax以POST的方式提交一个表单,SpringMVC解析。然而一次次的打印null折磨了我整整一天……最后的解决现在看来是很明显的问题,“只是......
  • SpringBoot配置文件中spring
    SpringBoot配置文件中spring.profiles.active配置详解现象:在开发的时候测试和生产配置不一样每次加配置都需要更新生产原因:不方便解决:添加多套配置知识库:1、多环......
  • spring5框架
    概述:Spring是轻量级的开源的JavaEE框架Spring可以解决企业应用开发的复杂性Spring有两个核心部分:IOC和AOPIOC:控制反转,把创建对象过程交给Spring进行管理AOP:面向切面......
  • tomcat的web项目的远程热发布
    已经发布的项目war包更改了怎么办?我常用的做法是:1.把war包上传服务器2.远程登录服务器后台3.停止tomcat服务4.用新的war包替换老的war包5.启动tomcat服务后来......
  • springboot 整合activiti
    importlombok.Data;importnet.sf.json.JSONObject;importjava.io.Serializable;importjava.util.Date;/***流程日志扩展类*@authorhxy*@emailhuangx......
  • Java程序(非web)slf4j整合Log4j2
    一、依赖包准备//slf4j项目提供compilegroup:'org.slf4j',name:'slf4j-api',version:'1.7.25'//log4j2项目提供compilegroup:'org.apache.logging.log4j',na......
  • 【web项目 管理平台前端搭建 05】
    正式项目搭建前准备工作一、后台管理系统1、vue-element-admin1)简介vue-element-admin是基于element-ui的一套后台管理系统集成方案。GitHub地址:https://github.com/P......