小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
在springboot相比于springmvc提供了一个极为重要的功能,就是自定义start(自定义jar包),同时spring也提供了一大波start。如spring-boot-starter-data-redis,spring-boot-starter-amqp。本文将教你如何自定义start。例子为从start中获取数据源。
1.自定义start能干什么
在架构考虑时,或许有一些通用方法抽取成start,在项目中使用时,直接引入即可。
2.创建自定义start
1.创建一个新的maven项目
创建一个普通的maven项目,作为start的开发环境
2.新建application.properties
在maven中创建application.properties文件。同时添加以下代码,作为常量配置。
1 | js复制代码login.className = com.mysql.jdbc.Driver |
3.创建LoginCheckProperties
创建类LoginCheckProperties,其中需要@ConfigurationProperties注解,prefix = “login” 的意思是调用项目中 ,application.properties中配置的参数。
1 | js复制代码@ConfigurationProperties(prefix = "login") |
4.Config类
其中@EnableConfigurationProperties(LoginCheckProperties.class) 注解为固定写法,意义是实现自动配置上文中的Properties类。
1 | bash复制代码@Configuration |
5.添加META-INF/spring.factories
最后在resources中新建文件夹META-INF,在其中建立文件spring.factories路径为上文Config中的路径。(需要向被引用者暴露)
1 | js复制代码org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ |
6.显示start注释(选读)
如果想要在jar中加入注释 则需要在pom文件中修改以下代码 这样会生成一个 .jar 和一个:source.jar 需要将这两个jar包都加入项目中。
1 | js复制代码<build> |
7.打包
使用命令mvn install。即可生成jar包。
8.引入jar包
1 | js复制代码 <dependency> |
在引用项目中的pom文件配置groupId,artifactId,version即可。下文为start中的pom。与上文配置需要对应。
1 | js复制代码<?xml version="1.0" encoding="UTF-8"?> |
9.使用
然后就可以使用了,本文实现的为主项目定义一个从数据源。所以在主项目中就可以使用上文定义的数据源啦。
10.项目结构
本文转载自: 掘金