맞춤형 스타터 명명 규칙
artifactId의 명명 규칙에 주의하세요. Spring 공식 스타터는 일반적으로 spring-boot-starter-web과 같이 spring-boot-starter-{name}으로 명명됩니다. 이름 지정은 mybatis-spring-boot-starter와 같은 {name}-spring-boot-starter 형식을 따라야 합니다. 여기서 생성된 프로젝트의 이슈 ID는 helloworld-spring-boot-starter
Develop Starter steps
Create Starter project
Starter에 필요한 구성(Properties) 클래스를 정의
Write입니다. 자동 구성 클래스
spring.factories 파일을 작성하여 자동 구성 클래스를 로드
구성 프롬프트 파일 spring-configuration-metadata.json 작성(필요하지 않음)
특정 프로세스
구성 클래스를 생성합니다
@ConfigurationProperties를 생성하여 구성의 접두사를 정의합니다
@EnableConfigurationProperties(InfluxdbProperties.class) @ConfigurationProperties(prefix = "spring.influxdb") public class InfluxdbProperties { private String username; public String getDatabase() { return database; } public void setDatabase(String database) { this.database = database; } }
자동 구성 클래스를 작성합니다
@EnableConfigurationProperties를 생성하여 종속 속성 클래스를 구성합니다
@ConditionalOnProperty를 구성하여 구성의 로드 규칙을 구성합니다.
값은 어떤 속성을 참조합니까?
havingValue 필드는 값을 구성할 때 구성을 로드하는 것을 의미합니다.
matchIfMissing은 구성된 값 필드가 구성되지 않은 경우의 기본값을 나타냅니다.
@Bean은 자동으로 주입된 bean을 구성합니다
springboot에 고유한 일반적인 조건부 종속성 주석에는
@ConditionalOnBean이 포함됩니다. 이는 현재 컨텍스트에 존재할 때만 Bean을 인스턴스화합니다.
@ConditionalOnClass, 이 Bean은 클래스가 클래스 경로에 있을 때만 인스턴스화됩니다.
@ConditionalOnExpression, 이 Bean은 표현식이 true인 경우에만 인스턴스화됩니다.
@ConditionalOnMissingBean, 이 Bean은 현재 컨텍스트에 Bean이 없는 경우에만 인스턴스화됩니다.
@ConditionalOnMissingClass, 이 Bean은 클래스 경로에 클래스가 없는 경우에만 인스턴스화됩니다.
@ConditionalOnNotWebApplication, 이 Bean은 웹 애플리케이션이 아닌 경우에만 인스턴스화됩니다.
@AutoConfigureAfter, 자동 구성이 완료된 후 Bean을 인스턴스화합니다.
@AutoConfigureBefore, 자동 구성을 완료하기 전에 Bean을 인스턴스화합니다.
@Configuration @Order(1) @EnableConfigurationProperties(InfluxdbProperties.class) @ConditionalOnClass(InfluxdbProperties.class) @ConditionalOnProperty(prefix = "spring.influxdb", value = "use-influxdb", havingValue="true" ,matchIfMissing = false) public class InfluxdbAutoConfiguration { private String scanEntitySuffix = "Entity.class"; @Bean @ConditionalOnMissingBean(AiInfluxdbTemplate.class) @Order(Ordered.HIGHEST_PRECEDENCE) public AiInfluxdbTemplate AiInfluxdbTemplate(InfluxdbProperties influxdbProperties){ return new AiInfluxdbTemplate(influxdbProperties); } }
spring.factories 파일 작성
Spring Boot는 기본적으로 시작 클래스와 동일한 수준에서 패키지를 스캔합니다. Starter 및 시작 클래스가 동일한 기본 패키지 아래에 있지 않으면 spring.factories 파일이 적용됩니다
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.ai.base.boot.influxdb.InfluxdbAutoConfiguration
위 내용은 springboot에서 스타터를 사용자 정의하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!