-
新建maven工程yahang-spring-boot-starter (starter是一個空JAR包,僅僅作爲maven下載jar包的啓動器)
-
新建maven工程yahang-spring-boot-starter-autoconfigure (實際工作的模塊)
-
yahang-spring-boot-starter作爲一個啓動器,設置依賴於yahang-spring-boot-starter-autoconfigure
-
<dependency><groupId>com.njupt</groupId><artifactId>yahang-spring-boot-starter-autoconfigure</artifactId><version>0.0.1-SNAPSHOT</version></dependency>
-
yahang-spring-boot-starter-autoconfigure模塊下,設置依賴於spring-boot-starter
-
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>2.3.0.RELEASE</version></dependency>
-
yahang-spring-boot-starter-autoconfigure模塊下,新建包com.njupt,然後新建一個實體類,該實體類爲要配置爲bean的類
-
public class MyDataSource {
-
public String url;
-
public String username;
-
public String password;
-
public MyDataSource(String url, String username, String password) {
-
super();
-
this.url = url;
-
this.username = username;
-
this.password = password;
-
}
-
}
-
-
yahang-spring-boot-starter-autoconfigure模塊下的com.njupt包下,然後新建一個MyDataSourceProperties類,該實體類爲讀取yml文件的類,並設置getter,setter方法。
-
@ConfigurationProperties(prefix = "yahang.mydatasource")
-
public class MyDataSourceProperties {
-
private String url;
-
private String username;
-
private String password;
-
-
yahang-spring-boot-starter-autoconfigure模塊下的com.njupt包下,然後新建一個MyDataSourceAutoConfigure類,該類使用MyDataSourceProperties對象的屬性,new MyDataSource對象,並注入爲Bean
-
@Configuration
-
@ConditionalOnWebApplication
-
@EnableConfigurationProperties(MyDataSourceProperties.class)
-
public class MyDataSourceAutoConfigure {
-
-
@Autowired
-
private MyDataSourceProperties myDataSourceProperties;
-
-
@Bean
-
public MyDataSource getDataSource() {
-
String url=myDataSourceProperties.getUrl();
-
String username=myDataSourceProperties.getUsername();
-
String password=myDataSourceProperties.getPassword();
-
return new MyDataSource(url, username, password);
-
}
-
}
-
-
爲了讓Springboot加載MyDataSourceAutoConfigure,需要在resources目錄下新建META-INF/spring.factories
-
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-
com.njupt.MyDataSourceAutoConfigure
-
-
使用maven install 安裝autoconfigure和starter模塊。
-
測試
-
新建Springboot的web應用,pom文件引入自定義的starter
-
<dependency><groupId>com.njupt</groupId><artifactId>yahang-spring-boot-starter</artifactId><version>0.0.1-SNAPSHOT</version></dependency>
-
編寫application.yml
-
yahang:
-
mydatasource:
-
url: localhaost
-
username: yahang
-
password: 123456
-
-
編寫測試代碼
-
@Controller
-
public class MyController {
-
-
@Autowired
-
private MyDataSource dataSource;
-
@ResponseBody
-
@RequestMapping("/test")
-
public String getDatasource() {
-
return dataSource.url+" : "+ dataSource.username+" : "+dataSource.password;
-
}
-
}
-
-
測試
-
1.自定義啓動器starter
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.