Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >手写一个简单的SpringBoot Starter

手写一个简单的SpringBoot Starter

原创
作者头像
zhaozhen
修改于 2021-06-21 02:33:31
修改于 2021-06-21 02:33:31
4780
举报

现在各种自定义的starter屡见不鲜,也许就需要自己来自定义一个starter了。学习一下starter的构建必备

## starter-定义

首先需要自顶一个配置bean

```

package com.zhao.starter;

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.boot.context.properties.EnableConfigurationProperties;

@EnableConfigurationProperties(StarterBean.class)

@ConfigurationProperties(prefix = "starterbean")

public class StarterBean {

private String id;

private String name;

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

@Override

public String toString() {

return "StarterBean{" +

"id='" + id + '\'' +

", name='" + name + '\'' +

'}';

}

}

```

然后需要通过Springboot自动注入的注解,以及Spring spi 的spring.factories将配置bean加入自动配置的管理

```

@Configuration

@ConditionalOnClass

public class StartBeanAutoConfiguration {

static {

System.out.println("custom auto configuration init ");

}

@Bean

public StarterBean starterBean(){

return new StarterBean();

}

}

```

资源目录下新建META-INF文件夹下spring.factories文件,

```

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.zhao.starter.StartBeanAutoConfiguration

```

pom文件

```

<?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>

<groupId>com.zhao</groupId>

<artifactId>starter-demo</artifactId>

<version>1.0-SNAPSHOT</version>

<dependencies>

<dependency>

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

<artifactId>spring-boot-autoconfigure</artifactId>

<version>2.2.2.RELEASE</version>

</dependency>

</dependencies>

</project>

```

使用maven install之后就可以在新建项目时使用了。

## starter使用测试

pom定义

```

<?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>

<groupId>com.zhao</groupId>

<artifactId>starter-use-demo</artifactId>

<version>1.0-SNAPSHOT</version>

<dependencies>

<dependency>

<groupId>com.zhao</groupId>

<artifactId>starter-demo</artifactId>

<version>1.0-SNAPSHOT</version>

</dependency>

<dependency>

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

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

<version>2.2.2.RELEASE</version>

</dependency>

<dependency>

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

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

<version>2.2.2.RELEASE</version>

<scope>test</scope>

</dependency>

</dependencies>

</project>

```

启动类

```

@SpringBootApplication

public class StarterUseApplication {

public static void main(String[] args) {

SpringApplication.run(StarterUseApplication.class,args);

}

}

```

配置starter需要的bean的配置

```

starterbean.id=test123

starterbean.name=zhaozhen

```

测试类

```

@RunWith(SpringRunner.class)

@SpringBootTest(classes = StarterUseApplication.class)

public class StarterUseTest {

@Autowired

StarterBean starterBean;

@Test

public void starUse(){

System.out.println(starterBean);

}

}

```

测试结果,正常使用

![file](http://cdn.kobefan.cn/FgWI2Sss98A9jDw0_Pu4GWE4kTYR)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
让 Android 的 WebView 支持 type 为 file 的 input,同时支持拍照
Android 的 WebView 组件默认是不启用 type 为 file 的 input 的,需要在代码中做一些类似 hack 的编码(因为解决问题的目标对象的方法都是加了@hide注解的)才能召唤神龙。
LeoXu
2018/08/15
1.7K0
使用 Cordova 遇到的一些问题
问题一 问题 [Error: Failed to find 'ANDROID_HOME' environment variable. Try setting setting it manually. Failed to find 'android' command in your 'PATH'. Try update your 'PATH' to inclde path to valid SDK directory.] ERROR building one of the platforms: Error:
kongxx
2018/05/14
1.1K0
自定义Cordova插件详解
在混合式应用中,我们通过现有的Cordova插件,可以轻松的在 H5 上调用手机native的功能。现有的Cordova插件能满足平时大部分的开发需求,然而,有时候找不到合适的插件、或对找到的插件有不满意的地方,那就要动手去做或改写一个插件,这时候就要了解一些Cordova插件的相关知识。
IT晴天
2018/08/20
2.4K0
Webview与H5交互——支持Intput type=”file“属性
  利用原生加H5进行混合开发时,遇到问题:在H5利用Input type=“file” 调用android本地图库上传图片时,在普通浏览器可以执行,在Webview上出现了问题。是因为 android webview 由于考虑安全原因屏蔽了 <input type="file"/> 这个功能 。重写webview 的WebChromeClient可以解决。
饮水思源为名
2018/09/06
1.1K0
使用 Cordova 构建应用的流程
Cordova 应用程序有几个组件。 下图展示了 Cordova 应用程序体系结构的高级视图。
acc8226
2022/05/17
4.9K0
使用 Cordova 构建应用的流程
助你快速搭建一个健壮可控的WebApp
  笔者因公司需求,从0打造一款WebApp,一直维护到现在。整个接口算是从混乱到现在的有序。笔者也从一个WebView+H5的小菜鸟,磨炼成了中等生。   WebApp简单来讲,就是利用原生的WebView承载H5的html页面,并且实现JS和原生之间的通信。   WebApp的好处是显而易见的。业务页面来源于H5,原生作为一个承载壳提供流畅性支持,能够低成本的实现跨平台的实施以及快速嵌入微信小程序、钉钉、OA等APP中。与纯H5的App相比较,它能够更轻易的使用原生底层库,并且更加流畅;而与纯原生
饮水思源为名
2018/12/13
1.1K0
助你快速搭建一个健壮可控的WebApp
Hadoop学习之编译eclipse插件
近期准备開始学习Hadoop1.2.1的源码,感觉最好的方法还是能够在运行Hadoop及hadoop作业时跟踪调试代码的实际运行情况。因为选择的IDE为eclipse,所以准备编译一下hadoop的eclipse插件,以下就直接进入正题。Hadoop的eclipse插件源码位于hadoop-1.2.1/src/contrib/eclipse-plugin/中,直接进入该文件夹,在不做不论什么改动的情况下,在命令行输入ant,运行效果例如以下:
全栈程序员站长
2022/07/08
2.1K0
Hadoop学习之编译eclipse插件
Android 使用腾讯X5内核, Webview浏览器拍照或从相册上传图片
最近在项目开发中,需要使用WebView上传文件。默认情况下情况下,使用Android的WebView是不能够支持上传文件的。经过查找资料,得知需要重新WebChromeClient,根据选择到的文件Uri,传给页面去上传就可以了。
开发者技术前线
2020/11/23
2.2K0
Android 使用腾讯X5内核, Webview浏览器拍照或从相册上传图片
Cordova 初识
Cordova 是使用 HTML,CSS 和 JavaScript构建混合移动应用程序的平台。官方文档给了我们 Cordova 的定义。
acc8226
2022/05/17
1.4K0
Cordova 初识
Android WebView那些坑之上传文件
最近公司项目需要在WebView上调用手机系统相册来上传图片,开发过程中发现在很多机器上无法正常唤起系统相册来选择图片。 解决问题之前我们先来说说WebView上传文件的逻辑:当我们在Web页面上点击选择文件的控件(<input type="file">)时,会回调WebChromeClient下的openFileChooser()(5.0及以上系统回调onShowFileChooser())。这个时候我们在openFileChooser方法中通过Intent打开系统相册或者支持该Intent的第三方
张磊BARON
2018/04/13
2.8K0
Android WebView那些坑之上传文件
cordova开发环境搭建
最近我在尝试了解跨平台技术的发展,首先则是想到了cordova。本文简单记录下cordova环境搭建的过程。
程序员白彬
2020/07/10
1.7K0
cordova开发环境搭建
Cordova 运行 Web 应用
Cordova 非常的流行,因为它可以让 Web 开发人员来创建移动应用, 而且还可以通过 JavaScript 来调用设备硬件 API (GPS、蓝牙等)。
beginor
2020/08/10
1.2K0
给Ionic写一个cordova(PhoneGap)插件
 给Ionic写一个cordova(PhoneGap)插件 之前由javaWeb转html5开发,由于面临新技术,遂在适应的过程中极为挣扎,不过还好~,这个过程也极为短暂;现如今面临一些较为复杂的需求还会有一丝丝头痛,却没有一开始那么强烈了。。。 在正式写下文之前,我先感谢公司大boss:王总,感谢他让我进入了一个有挑战性的技术公司 并在这个过程中一直鼓励我不断汲取新技术,同时也指正了我在开发中的一些不太好的习惯,十分感谢!   再~,感谢在开发中给予我太多帮助的杜勇以及孙金~,不论是需求讨论还是具体
上帝
2018/05/18
2.1K0
基于Vue+cordova开发webapp并调用Native功能 实践
安装cordova,安装vue-cli: npm i cordova -g,npm i -g vue-cli 。
安德玛
2022/03/09
1.2K0
WebView的使用及实战
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/53084703
程序员徐公
2018/09/18
9750
WebView的使用及实战
Android开发笔记(一百六十六)H5通过WebView录像上传
前面的博文《Android开发笔记(一百五十二)H5通过WebView上传图片》介绍了如何拍照上传给网页,不料客户又要求再加个摄像上传给网页。既然如此,那么再探讨一下如何实现这个摄像上传的功能。 与拍照上传一样,摄像上传也要重写WebChromeClient的openFileChooser/onShowFileChooser方法,在这两个方法内部跳转到系统的摄像机页面,示例代码如下:
aqi00
2019/01/18
1.4K0
Android基于JsBridge封装的高效带加载进度的WebView
从去年4月项目就一直用起了JsBridge,前面也针对jsBridge使用姿势介绍过一篇入门篇,《Android JsBridge实战 打造专属你的Hybrid APP》,本篇接着继续深入,通过再次优化封装,大大优化了部分代码,简化上层调用流程,快速部署你的Hybridge APP。
开发者技术前线
2020/11/23
1.7K0
Android基于JsBridge封装的高效带加载进度的WebView
cordova打包vue2(webpack)android、ios app
使用cordova打包vue2(webpack)app for android ios 1、vue项目 通过vue-cli脚手架建立项目,使用webpack进行打包,下边是一整套命令。 #npm 版本最好是最新的,升级npm,node版本也有要求 npm i -g npm # 安装脚手架 npm install -g vue-cli #初始化新建项目 vue init webpack vue-app # install dependencies # config/index.js 里可以修改端口 n
码农笔录
2018/06/29
3.2K0
WebView深度学习(二)之全面总结WebView遇到的坑及优化
这篇文章讲一下WebView遇到的那些坑,带领各位爬坑。这里如果有你没遇到的问题,欢迎留言告诉我,我尽我所能帮你解决。感谢大家支持。
AWeiLoveAndroid
2018/09/03
6.1K0
WebView深度学习(二)之全面总结WebView遇到的坑及优化
Cordova(工具)- Config.xml详解
Config.xml是 cordova项目的一份全局性配置文件 能够控制整个项目的一些全局性配置 为了方便cordova CLI 的使用,config.xml放在了这里 , 其实就是项目根目录下
安德玛
2022/03/09
1.2K0
推荐阅读
相关推荐
让 Android 的 WebView 支持 type 为 file 的 input,同时支持拍照
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档