nginx配置反向代理例項教程(windows版)
阿新 • • 發佈:2021-06-23
一、什麼是springboot starter
自己寫一個jar包,讀取application.yml(application.properties)檔案的配置節點到物件裡面,springboot在啟動的時候,會執行jar包,並把物件交給spring。我們在使用物件的時候,引入jar包,直接用@autowired引入註解即可。
關於命名規則,spring官方的命名規則為:spring-boot-starter-XXX,建議自定義starter的命名為:組織標識-spring-boot-starter-XXX。
二、springboot starter的配置方式
1、在resources下新建META-INF資料夾,新建檔名稱為:spring.factories,裡面寫入我們要自動配置的類的全路徑。
2、註解方式。
三、spring.factories方式實現
1、新建maven專案。
2、把pom檔案的packaging改為jar
3、引入依賴,
1 <!--主要是為編譯器配置的 可以根據properties 滑鼠右鍵 點到用這個屬性的類上個--> 2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-configuration-processor</artifactId> 5<optional>true</optional> 6 </dependency> 7 <!--主要是為了自動裝配--> 8 <dependency> 9 <groupId>org.springframework.boot</groupId> 10 <artifactId>spring-boot-autoconfigure</artifactId> 11 </dependency>
4、編寫配置類
1 public class UserInfo { 2 private String userName; 3 private Integer age; 4 private String addr; 5 6 //get set 省略 7 }View Code
5、編寫讀取配置檔案的類
1 @ConfigurationProperties(prefix = "user") 2 public class AutoConfigurationProperties { 3 private String userName; 4 private Integer age; 5 private String addr; 6 7 //get set省略 8 }View Code
6、編寫資源類,把讀取的配置節點賦給配置類
1 @Configuration 2 @EnableConfigurationProperties(AutoConfigurationProperties.class) 3 @ConditionalOnClass(UserInfo.class) 4 public class MyAutoConfigurationClass { 5 6 @Autowired 7 private AutoConfigurationProperties autoConfigurationProperties; 8 9 @ConditionalOnMissingBean 10 @Bean 11 public UserInfo getUserInfo(){ 12 UserInfo userInfo = new UserInfo(); 13 userInfo.setUserName(autoConfigurationProperties.getUserName()); 14 userInfo.setAge(autoConfigurationProperties.getAge()); 15 userInfo.setAddr(autoConfigurationProperties.getAddr()); 16 return userInfo; 17 } 18 19 }View Code
7、在resources資料夾下新建META-INF資料夾,新建spring.factories檔案,新增內容
1 org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.rana.MyAutoConfigurationClass
View Code
8、執行maven install命令,打包到本地
四、測試
1、新建測試專案。
2、引入依賴。
1 <dependency> 2 <groupId>com.rana</groupId> 3 <artifactId>rana-spring-boot-starter</artifactId> 4 <version>1.0-SNAPSHOT</version> 5 </dependency>View Code
3、新增application.yml配置節點
1 user: 2 user-name: xxx 3 age: 18 4 addr: tongzhou beijingView Code
4、引用
1 @Autowired 2 private UserInfo userInfo; 3 4 @RequestMapping("/getuserinfo") 5 public String getUserInfo(){ 6 return userInfo.getUserName(); 7 }View Code