自定义spring-boot-starter
1 命名规则
最好是xxx-spring-boot-starter和xxx-spring-boot-autoconfigure
2 xxx-spring-boot-autoconfigure
package com.limin.autoconfigure;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConditionalOnWebApplication
@EnableConfigurationProperties(LiminProperties.class)
public class LiminAutoConfiguration {
@Bean
public LiminService liminService(LiminProperties liminProperties) {
LiminService liminService = new LiminService();
liminService.setLiminProperties(liminProperties);
return liminService;
}
}
package com.limin.autoconfigure;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties(prefix="limin")
public class LiminProperties {
private String prefix;
private String surfix;
/**
* @return the prefix
*/
public String getPrefix() {
return prefix;
}
/**
* @param prefix the prefix to set
*/
public void setPrefix(String prefix) {
this.prefix = prefix;
}
/**
* @return the surfix
*/
public String getSurfix() {
return surfix;
}
/**
* @param surfix the surfix to set
*/
public void setSurfix(String surfix) {
this.surfix = surfix;
}
}
package com.limin.autoconfigure;
public class LiminService {
LiminProperties liminProperties;
public void limin(String arg) {
System.out.println(liminProperties.getPrefix() + "-" + arg + "-" + liminProperties.getSurfix());
}
/**
* @return the liminProperties
*/
public LiminProperties getLiminProperties() {
return liminProperties;
}
/**
* @param liminProperties the liminProperties to set
*/
public void setLiminProperties(LiminProperties liminProperties) {
this.liminProperties = liminProperties;
}
}
在/zlm-spring-boot-autoconfigure/src/main/resources/META-INF下创建spring.factories
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.limin.autoconfigure.LiminAutoConfiguration
3 xxx-spring-boot-starter只有需要依赖的autoconfigure的配置文件
<dependencies>
<dependency>
<groupId>com.limin</groupId>
<artifactId>zlm-spring-boot-autoconfigure</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>