手动构建springBoot启动器过程图解
我们都知道可以使用SpringBoot快速的开发基于Spring框架的项目。由于围绕SpringBoot存在很多开箱即用的Starter依赖,使得我们在开发业务代码时能够非常方便的、不需要过多关注框架的配置,而只需要关注业务即可。
其实springboot的一个启动器基本上就包含两个项目,一个是spring-boot-starter,另一个是spring-boot-autoConfigure
举个Json启动器的例子,这里面包含了josn的starter和autoConfiger,因为autoConfiger里面集成了许多的配置,所以就是其他的模块也共用了这一个,其实在这个autoConfiger项目里面主要是看spring.factories这个配置文件,这个里面配置springboot官方的模块的autoConfiger
我们刚才举的例子json的就在这里
其实总结起来也就是说,starter项目模块在pom文件中引入了autoConfiger这个项目,所以starter里面可以使用autoConfiger里面的东西。
其实写自己启动器也就是大致5个步骤
1:编写自己具体的业务,根据自己的需求。
2:xxxProperties配置文件的编写
3:xxxAutoConfigure的编写
4:将我们的启动类放到springboot项目中的resouces/META-INT下面的spring.factories(这个目录以及文件需要自己手动建)
5:将自己编写的自动配置安装到Maven仓库即可。
6:测试。
下面是我自己编写的一个简单的启动器:
第一步首先创建一个空项目,根据自己的需求创建。
第二步:编写peoperties
第三步:编写autoConfig
第四步:主要是我们的业务
第五步:创建META-INF/spring.factories文件
第六步:把项目打包并测试,在starter项目中引入autoConfig
最后一步,便是建立一个项目测试
其实是不是很简单,和我们平常的项目打包引入区别不大,主要是这个步骤牵涉到springboot的运行机制原理
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
SpringBoot为啥不用配置启动类的实现
前言 在学习SparkJava.Vert.x等轻量级Web框架的时候,都遇到过打包问题,这两个框架打包的时候都需要添加额外的Maven配置,并指定启动类才能得到可执行的JAR包: 而springboot项目,似乎都不需要额外的配置,直接package就可以得到可执行的JAR包,这是怎么回事呢? Vert.x要怎么配? 我们先来看看,Vert.x打包做哪些配置 1)引入maven-shade-plugin插件 2)在插件中指定在package完成时触发shade操作 3)指定启动类 <plugin
-
Linux启动与停止spring boot工程的脚本示例
在springboot项目启动有三种方式: 1.运行主方法程序 2.使用命令mvn spring-boot:run 在命令行运行 3.使用 mvn packpage打包位jar文件以后,使用java -jar yourapp.jar命令行运行 一般我们在开发的时候经常使用的是前面两种运行方式,在部署实施的时候使用的第三种方式,下面我们就重点说明下载linux环境中运行和停止springboot项目的指令和脚本: 一.指令 nohup 不挂断运行指令 一般在linux中可以直接使用: java -
-
SpringBoot启动后启动内嵌浏览器的方法
1.下载内嵌浏览器Jar包 下载地址:点击下载 2.项目下加入对应jar:然后右键:Add as Library... 3.添加启动项目后事件 效果:内嵌浏览器打开指定页面,全屏 import com.teamdev.jxbrowser.chromium.Browser; import com.teamdev.jxbrowser.chromium.swing.BrowserView; import org.springframework.boot.ApplicationArguments; im
-
springboot+idea热启动设置方法(自动加载)
springboot+idea热启动 1.在pom.xml中引入jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> 然后在build/plugins/plugin中设置
-
SpringBoot启动及自动装配原理过程详解
一.servlet2(老spring-mvc) 配置文件: web.xml:主要配置项目启动项 application-context.xml:主要配置项目包扫描.各种bean.事务管理 springMVC.xml:主要配置controller包扫描.视图解析器.参数解析器 启动过程: 每一个spring项目启动时都需要初始化spring-context,对于非web项目可以在程序main方法中触发这个context的初始化过程. 由于web项目的启动入口在容器,所以开发者不能直接触发sprin
-
SpringBoot启动报错Failed to determine a suitable driver class
SpringBoot启动报错如下 Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2019-05-06 21:27:18.275 ERROR 10968 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** AP
-
spring boot如何指定启动端口
这篇文章主要介绍了spring boot如何指定启动端口,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 spring boot 默认端口为8080 1.修改为指定端口 (1)修改配置文件 src/main/resources/application.properties server.port=8081 (2)通过编码的方式来指定端口 在启动类中添加servletContainer方法 package com.example.demo; imp
-
SpringBoot中如何启动Tomcat流程
前面在一篇文章中介绍了 Spring 中的一些重要的 context.有一些在此文中提到的 context,可以参看上篇文章. SpringBoot 项目之所以部署简单,其很大一部分原因就是因为不用自己折腾 Tomcat 相关配置,因为其本身内置了各种 Servlet 容器.一直好奇: SpringBoot 是怎么通过简单运行一个 main 函数,就能将容器启动起来,并将自身部署到其上 .此文想梳理清楚这个问题. 我们从SpringBoot的启动入口中分析: Context 创建 // Crea
-
手动构建springBoot启动器过程图解
我们都知道可以使用SpringBoot快速的开发基于Spring框架的项目.由于围绕SpringBoot存在很多开箱即用的Starter依赖,使得我们在开发业务代码时能够非常方便的.不需要过多关注框架的配置,而只需要关注业务即可. 其实springboot的一个启动器基本上就包含两个项目,一个是spring-boot-starter,另一个是spring-boot-autoConfigure 举个Json启动器的例子,这里面包含了josn的starter和autoConfiger,因为autoC
-
如何在docker中运行springboot项目过程图解
一.IDEA中点击下方的Terminal 输入mvn clean install 出现如下图时表示成功(前提是本地必须安装了maven且配置了maven的环境变量) 打好的jar包在target目录下 二.然后新建个Dockerfile文件,内容如下 三.构建镜像:将Dockerfile和项目jar包放在服务器同一目录下,然后进入该目录 输入:docker build -t app . (注意后面有个点,app为自定义镜像名)构建镜像 查看镜像是否存在: docker images 四.运行刚才
-
Springboot创建子父工程过程图解
这篇文章主要介绍了Springboot创建子父工程过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.创建子父工程 2.添加pom配置文件 2.1 父工程pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo
-
springboot自定义starter实现过程图解
这篇文章主要介绍了springboot自定义starter实现过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.创建一个Empty Project 2.在该工程中点击+,选择new module,新建一个maven工程 点击确定. 3.在该工程中点击+,选择new module,新建一个Spring Initializr工程 后面直接默认next,然后点击finishi. 两个都创建完毕之后点击apply,点击OK.得到如下结构: 4
-
SpringBoot配置类编写过程图解
这篇文章主要介绍了SpringBoot配置类编写过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.编写properties文件 2.编写配置类 3.编译项目将target\classes\META-INF\spring-configuration-metadata.json文件copy到resources\META-INF目录 这样以达到配置文件中自动提示配置项 4.配置文件中配置 5.其他类中可自动注入使用 以上就是本文的全部内容,
-
springboot整合jquery和bootstrap框架过程图解
这篇文章主要介绍了springboot整合jquery和bootstrap框架过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 <dependency> <groupId>org.webjars</groupId> <artifactId>jquery</artifactId> <version>3.4.1</version> </dependency>
-
springboot创建拦截器过程图解
这篇文章主要介绍了springboot创建拦截器过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.创建一个MyIntercepor实现HandlerInterceptor接口的类 二.创建一个WebMvcConfig实现WebMvcConfigurer的类 三.创建Controller以供访问 四.效果图 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.
-
SpringBoot路径映射实现过程图解
这篇文章主要介绍了SpringBoot路径映射实现过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 当然这个功能并非是springboot特有的,只是springboot提供了更简便的方法以供使用. 传统情况下我们跳转一个动态页面且并没有数据,也需要在controller中写一个跳转的controller. 也就是下面情况 这个时候我们就可以使用springboot的路径映射 我们只需要创建一个WebMvconfig类实现WebMvcCo
-
springboot多租户设计过程图解
这篇文章主要介绍了springboot多租户设计过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1. 概述 根据不同用户的请求,选择不同的数据源,不同的数据源可以是Oracle.MySQL或者其它.用到的技术栈,没有什么复杂的技术,可以看到,依赖也就加了几个而已,如下: 2. 先睹为快 如下图,header中tenant为zhangsan,则使用db_oauth为数据源,tenant为lisi,则使用db_test为数据源,tenant
-
Springboot+TCP监听服务器搭建过程图解
最近从eclipese转到idea,也从SpringMVC转到Springboot,重新搭建了一个基于Springboot的TCP监听.话不多说,直接上图. 这边是监听的文件夹,其中,EchoThread是处理上传信息的线程,SocketPool是用来存放socket的,SpringListener是随项目启动的TCP监听程序. 1.先来说说这个SpringListener 首先要做的第一点就是监听随项目启动,springboot提供了两种方案,第一种就是像这样直接继承CommandLineRu
随机推荐
- Ext面向对象开发实践(续)
- angular.js指令中的controller、compile与link函数的不同之处
- php实现的Cookies操作类实例
- main.php
- autoit自定义函数
- python 生成器生成杨辉三角的方法(必看)
- iOS实现选项卡效果的方法
- js控制浏览器全屏示例代码
- HTML5之WebSocket入门3 -通信模型socket.io
- PHP中使用FFMPEG获取视频缩略图和视频总时长实例
- node.js require() 源码解读
- python查找指定具有相同内容文件的方法
- 女孩暗示你可以和她上床的十种表示
- jQuery实现根据生日计算年龄 星座 生肖
- jquery实现模拟百分比进度条渐变效果代码
- Javascript 两个窗体之间传值实现代码
- JS作用域链详解
- Centos6.5 ssh配置与使用教程
- C语言双向链表实现根据使用频率安排元素位置的功能实例代码
- java实现XML增加元素操作简单示例