準備要封裝的組件
<groupId>com.itpsc</groupId>
<artifactId>com-itpsc-service</artifactId>
<version>1.0</version>
裏面定義一個簡單的類
public class UserService {
private String username;
private String password;
public void print() {
System.out.println("username=" + username + " password=" + password);
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
mvn clean install發佈到本地倉庫。
新建一個starter
引入依賴
<groupId>com.itpsc.spring.boot</groupId>
<artifactId>itpsc-spring-boot-starter</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.0.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>2.0.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>2.0.4.RELEASE</version>
</dependency>
<dependency>
<groupId>com.itpsc</groupId>
<artifactId>com-itpsc-service</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
編寫讀取配置類
下面的類用於讀取yml或者properties中的配置信息
@ConfigurationProperties(prefix = "com.itpsc")
public class UserProperties {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
使配置生效,並創建需要使用的bean
@Configuration
@EnableConfigurationProperties(UserProperties.class)
public class UserAutoConfiguration {
@Bean
public UserService getBean(UserProperties userProperties) {
UserService userService = new UserService();
userService.setUsername(userProperties.getUsername());
userService.setPassword(userProperties.getPassword());
return userService;
}
}
自動裝配
在resources目錄下新建目錄META-INF,在META-INF下新建文件spring.factories,該文件中添加如下內容。
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.itpsc.spring.boot.starter.UserAutoConfiguration
使用
新建一個springboot工程,新增如下依賴
<dependency>
<groupId>com.itpsc.spring.boot</groupId>
<artifactId>itpsc-spring-boot-starter</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
application.properties中添加如下信息
com.itpsc.username=itpsc
com.itpsc.password=itpsc@123
啓動springboot
@SpringBootApplication
public class BootItpscTestApplication {
public static void main(String[] args) {
ApplicationContext applicationContext = SpringApplication.run(BootItpscTestApplication.class, args);
UserService userService = applicationContext.getBean(UserService.class);
userService.print();
}
}
輸出結果
username=itpsc password=itpsc@123
如此,自動裝配就完成了。