Spring Boot는 스타터를 사용하여 많은 구성 문제를 해결하지만 이러한 문제를 어떻게 해결 했습니까?
여기에서는 간단한 예제를 사용하여 스타터가 기본 구성을 어떻게 설정하는지 확인합니다.
1. 스타터 프로젝트를 구축하십시오
커스텀 스타터, 프로젝트 이름 지정 사양은 다음과 같습니다. 사용자 정의 이름 스프링 부트 스타터
마지막 디렉토리 구조를 살펴 보겠습니다
1. pom.xml 파일을 수정하십시오
<project xmlns = "http://maven.apache.org/pom/4.0.0"xmlns : xsi = "http://www.w3.org/2001/xmlschema-instance"xsi : schemalocation = "http://maven.apache.org/pom/0.0.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd "> <modelversion> 4.0.0 </modelversion> <groupid> org.elvin </groupid> <artifactid> my-spring-boot-starter </artifactid> <version> 1.0-snapshot> </packshot> <name> my-spring-boot-starter </name> <url> http://maven.apache.org </url> <properties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> </properties> <pependencies> <GroupSid> Orgfring.sprongramed <Artifactid> Spring-Boot-Autoconfigure </artifactid> <5. <groupid> org.apache.maven.plugins </groupid> <artifactid> maven-compiler-plugin </artifactid> <version> 2.3.2 </version> <configuration> <source> 1.8 </source> <cource> </source> </plugin> </plugins> </project> </project>
실제로, 그것은 단지 스프링 부츠-오토 컨퍼런스를 추가했습니다
나는 앱 파일의 주요 메소드를 언급했는데 여기에는 사용되지 않습니다.
2. 속성에 해당하는 수신 파일을 구성합니다
패키지 org.elvin; import org.springframework.boot.context.properties.configurationProperties;/** * 저자 : elvin * 날짜 : 2017/12/12 14:51 * 설명 : */@configurationProperties (prefix = "hello") 공개 content helloServiceProperties {// privity privity extation string = " 개인 문자열 msg = msg; 공개 문자열 getmsg () {return msg; } public void setmsg (문자열 msg) {this.msg = msg; }}3. 외부 서비스
패키지 org.elvin;/** * 저자 : elvin * 날짜 : 2017/12/12 14:55 * 설명 : */공개 클래스 helloService {private String msg; public String sayhello () {return "hello" + msg; } public String getMsg () {return msg; } public void setmsg (문자열 msg) {this.msg = msg; }}4. 외부 서비스는 구성 대응 파일과 관련이 있습니다.
패키지 org.elvin; import org.springframework.bean.beans.AntOtation.AUTOURED; import org.springframework.boot.autoconfigure.condition.conditionalOnclass; import org.springframework.boot.autoconfigure.conditionalonmissingbean; import org.springframework.boot.autoconfigure.condition.conditionalonProperty; import org.springframework.boot.context.properties.enableconfigurationProperties; import org.springframework.context.annotation.bean; import org.springpringframwork.context.tlet.tlet.context. * 저자 : Elvin * 날짜 : 2017/12/12 14:59 * 설명 : */@configuration@enableConfigurationProperties (helloServiceProperties.class) @ConditionalOnClass (helloService.class) @ConditionalOnProperty (prefix = "hello", ValueOutecifiting = true helloserviciSing " {@autowired 개인 HelloServiceProperties HelloServiceProperties; @bean @conditionalonmissingbean (helloservice.class) public helloService helloService () {helloservice helloService = new HelloService (); helloservice.setmsg (helloserviceproperties.getmsg ()); 헬로 서비스를 반환하십시오. }}5. 스타터 구성 : Spring.factories
org.springframework.boot.autoconfigure.enableautoconfiguration = org.elvin.helloserviceautoconfiguration
이 작업을 수행 한 후 MVN Clean Install을 사용하여 Maven 라이브러리에 포장하십시오.
2. 스프링 부트 프로젝트 사용
새 스프링 부팅 프로젝트를 만들고 웹을 선택하십시오.
디렉토리 구조 :
참조 pom.xml을 살펴 보겠습니다
<pectionency> <groupid> org.elvin </groupid> <artifactid> my-spring-boot-starter </artifactid> <bersion> 1.0-snapshot </version> </fectionency>
HelloController를 살펴보십시오
패키지 org.elvin.learn.springboot.controller; import org.springframework.beans.beans.annotation.autowired; import org.spramframework.bind.annotation.requestmapping; import org.spramework.web.bind.annotation.restcontroller; org.springframework.web.bind.annotation.restcontroller; import org.elvin. *;/** * 저자 : elvin * 날짜 : 2017/12/12 15:34 * 설명 : */@restcontroller@requestmapping ( "hello") 공개 클래스 hellocontroller {@autowired helloService helloService; @requestmapping ( "index") public string index () {return HelloService.sayHello (); }}여기의 HelloService는 이전의 사용자 정의 스타터에 있습니다.
1. 결과 : 구성되지 않은 경우 Hello World를 출력해야합니다.
2. 구성 파일에서 hello.msg = hahahahahah를 추가하십시오
이 예제는 주요 프로세스를 보여주기 위해 매우 간단하며 나머지는 각 플러그인의 논리적 판단입니다.
참조 :
Spring Boot, Javaee Development의 방해 자, 연습 전투
Spring Boot Custom Starter 구현에 대한 위의 자습서는 내가 공유 한 모든 컨텐츠입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.