starter是 springboot的翅膀,插上翅膀,就能飞得很高~
想飞的同学,跟着我,一步步 diy本人的 starter~
1.创立pom我的项目
创立一个pom我的项目,命名为 sayhello-spring-boot-starter,引入两个依赖,如图:
2. 创立 bean
SayHello.java
package bean;public class SayHello { // 只有一个属性 private String name; public void setName(String name){ this.name = name; } // 最初输入的信息 public String getMsg(){ return name + "say hello~~"; }}
3. 创立properties类
SayHelloProperties.java
package properties;import org.springframework.boot.context.properties.ConfigurationProperties;// 读取配置文件中 hello:name 的配置@ConfigurationProperties(prefix = "hello")public class SayHelloProperties { private String name; public String getName(){ return name; } public void setName(String name){ this.name = name; }}
4. 创立主动配置类
MyAutoConfiguration.java
@Configuration@ConditionalOnClass(SayHello.class)@EnableConfigurationProperties(SayHelloProperties.class)public class MyAutoConfiguration { @Autowired SayHelloProperties sayHelloProperties; @Bean @ConditionalOnMissingBean(SayHello.class) public SayHello getSayHiService(){ SayHello sayHello = new SayHello(); // 从配置文件里获取name, sayHello 这个bean初始化实现 sayHello.setName(sayHelloProperties.getName()); return sayHello; }}
看过主动配置原理的那一章的话,这个代码看起来就很简略咯~
5. 创立 spring.factories
在 resources/META-INF 目录下,创立 spring.factories 文件,内容为主动配置类
spring.factories
org.springframework.boot.autoconfigure.EnableAutoConfiguration= MyAutoConfiguration
我的项目启动,就能够主动拆卸 MyAutoConfiguration
我的项目的整体构造如下:
6. Maven 打包我的项目
通过命令 mvn clean install 打包我的项目,失去jar包 sayhello-spring-boot-starter-1.0-SNAPSHOT.jar
接下来能够把jar包上传到maven私服中,也能够通过导入的形式导入到另一个我的项目中应用,这里应用后者。在另一个我的项目中操作:
7. 配置 hello:name 值
server: port: 9000hello: name: wangdaye-
8. 创立测试 controller
TestController.java
@RestController@RequestMapping("/test")public class TestController { @Autowired SayHello sayHello; @GetMapping("/hello") public String hello(){ return sayHello.getMsg(); }}
浏览器拜访 localhost:9000/test/hello
王大爷跟你打了声招呼,看到没~~