Java高级进阶

spring boot自动配置实现

2018-09-05  本文已影响6人  java菜

自从用了spring boot,都忘记spring mvc中的xml配置是个什么东西了,再也回不去。为啥spring boot这么好用呢, 约定大于配置的设计初衷, 让我们只知道维护好application.properties(或application.yml)文件就可以了,我们在配置文件里可以设置数据源参数,可以设置服务端口,可以设置redis的地址等等。我们经常会看一些包含starter名字的jar包,如spring-boot-starter-data-redis,引入这些jar包,我们就可以简单快速配置了。那么我们自己开发了一个接口服务给别人调用,我们是不是可以把它封装成一个starter jar包呢?让别人在application.properties定义,实现自动配置呢?答案是允许的,下面跟我一起写一个自动配置jar包。(本文的目的不是讲解自动配置的原理,大家可以自行网上搜索原理)。

1.环境信息

开发工具:idea

maven版本号:3.5.4

2.jar包封装

创建一个springboot项目

填写坐标信息

springboot版本2.0.4

其他默认,创建完成后,目录如下

接下来创建我们的测试服务类TestService

我们设想,别人使用我们这个接口的时候,将Ip和Port通过application.properties注入,接下来我们创建属性配置实体类TestServiceProperties

我们发现在这个类写好后提示有错误

在pom文件加上依赖包,问题解决

新建一个自动配置类TestServiceAutoConfiguration

相关注解含义在注释中已经说明,到这里,代码已经写好了,我们希望以注解的方式给用户使用,自定义一个注解@EnableTestService

然后注释掉pom文件中的maven插件,如下图

然后maven打包,就会生成一个jar包,这个jar包我们就可以直接用了

这里因为在本地环境测试,我们将编译好的jar安装到本地maven仓库,点击右边的install按钮(你也可以导入编译好的jar包一样的)

3、jar包使用

我们开始来测试我们封装好的jar,首先创建一个springboot项目(创建时一路默认,你的包名也可以和我一样,无所谓的

pom文件的依赖配置如下

在main入口类加上注解

创建一个TestController类

接下来在application.properties中配置参数

启动该项目,在地址栏输入 http://localhost:8080/test 回车,看控制台打印的信息恰好是我们需要的

到这里我们就完成了一个自动配置的封装。

大家喜欢今天的文可以关注一下小编哦~小编会不定时的更新哦

上一篇 下一篇

猜你喜欢

热点阅读