스프링 부츠 소개
Spring Boot는 최근에 매우 인기있는 프레임 워크이며 Spring의 프레임 워크에서 개선 된 프레임 워크입니다. 이 프레임 워크의 목적은 개발자의 속도를 높이고 구성의 어려움을 줄이면 개발 프로세스를 크게 단순화하는 것입니다. 자세한 지침은 공식 문서를 참조하십시오. 매일 작업에서는 환경이나 프레임 워크를 구축 할 기회가 거의 없으며 대부분 원래로 개발되었습니다. 따라서 간단한 프레임 워크를 구축하라는 요청을 받으면 다양한 어려움이 발생합니다. 예를 들어 서버를 구축 할 때 작은 데모를 준비했습니다. 나는 그것이 매우 간단하다고 생각했지만 다양한 문제에 직면했습니다. 인터넷의 블로그가 흩어져있는 몇 가지 요점에 대해 이야기하고 있음을 알았으며, 발생할 수있는 문제를 포함하여 완전한 프로세스를 갖기가 어려웠습니다. 다음은 향후 참조를위한 간단한 프로젝트를 구축하는 과정에 대한 자세한 요약입니다. 동시에이 블로그는 다음 블로그 Tengine Reverse Proxy Server Construction의 기본 준비입니다.
스프링 부츠의 두 가지 장점 :
1. 스프링 프레임 워크 및 모범 사례 경로를 기반으로 "구성에 대한 컨벤션 우선 순위 (CoC)"개념.
2. 일일 엔터프라이즈 애플리케이션의 경우 스프링 부트 스타터는 종속성 모듈을 자동으로 구성하고 "기존의 스프링 부트 스타터-이름 지정 접두사가 org.springframenwork.boot 패키지 또는 네임 스페이스에 위치함)입니다.
이 기사에서는 SpringBoot 구성 파일의 구성을 친구에게 계속 소개합니다. 글로벌 구성 매개 변수를 사용하는 방법이므로 오늘 소개를 시작하겠습니다.
Spring Boot는 컨테이너의 자동 구성을 지원하고 기본값은 Tomcat입니다. 물론 우리는이를 수정할 수 있습니다.
1. 첫째, 우리는 스프링 부트 스타터 -Web 의존성에서 Tomcat을 제외합니다 : POM 파일에서 Tomcat의 스타터 제외
<pectionency> <groupId> org.springframework.boot </groupid> <artifactid> 스프링-부트-스타터-web </artifactid> <exclusions> <exclusion> <groupid> org.springframework.boot </groupid> </inpopactid> </interifactid>
2. 부두 용기에 추가하십시오
<pectionency> <groupid> org.springframework.boot </groupid> <artifactid> 스프링 부트 스타터-예티 </artifactid> </fectionency>
이런 식으로 스프링 부츠 컨테이너는 부두 컨테이너로 수정됩니다.
디버깅을 용이하게하려면 여기에 HTTP 디버깅 도구가 있습니다 : Postman
SpringBoot의 글로벌 구성 파일에 대해 이야기 해 봅시다 : Application.Properties
개발 중에는 컨테이너 액세스 포트를 수정하기위한 그러한 요구 사항을 만나야합니다. SpringBoot는 기본적으로 컨테이너를로드하므로 포트 설정은 물론 구성 파일을 통해 제어됩니다. 이는 매우 편리합니다. 구성 파일에만 추가하면됩니다.
Server.port = 6666
이러한 방식으로 컨테이너 포트는 6666으로 수정됩니다.
구성 파일을 통해 프로젝트 액세스 별명을 설정할 수도 있습니다.
server.context-path =/springboot
이런 식으로 프로젝트를 시작하고 http : // localhost : 6666/springboot1을 통해 프로젝트에 액세스 할 수 있습니다.
위의 것은 SpringBoot 구성 파일 구성의 빙산의 끝 일뿐입니다. 예를 들어, 데이터베이스 연결 구성을 설정하고 개발 환경 구성을 설정하고 환경 구성을 배포하며 둘 사이의 원활한 전환을 달성 할 수도 있습니다.
SpringBoot 컨트롤러 사용에 대해 알아 보겠습니다. SpringBoot는 세 가지 주석을 제공합니다.
이전 기사에서는 @RestController를 사용했습니다. 함께 @controller를 사용해 보겠습니다.
@Controller // @responseBodyPublic Class RequestTest {/*** 요청 메소드에 대한 제한 없음* @return*/@requestmapping (value = "/req") public String req () {return "success"; }}http : // localhost : 8080/springboot1/req를 입력하면 브라우저에 입력하면 404가 있습니다.
{ "timestamp": 1515332935215, "상태": 404, "오류": "메시지 없음", "경로": "/springboot1/req"}이게 왜? @Controller가 템플릿과 함께 사용해야하므로 Maven POM 파일을 열고 SpringBoot의 템플릿을 추가하기 때문입니다.
<!-SpringBoot 템플릿-> <pectionency> <groupId> org.springframework.boot </groupid> <artifactid> spring-boot-starter-thymeleaf </artifactid> </dependency>
그런 다음 프로젝트의 리소스 디렉토리에서 템플릿을 찾으십시오 (그렇지 않은 경우 새 템플릿을 작성하십시오. 그러나 폴더 이름이 일관성이 있어야한다는 점에 유의하십시오), 성공을 만들어 프로젝트를 다시 시작하고 지금 주소에 액세스 할 수 있도록 성공적입니까?
그러나 여기서는 현재 엔터프라이즈 수준 개발이 전면 및 후면에서 분리되어 있음에 주목해야합니다. 백엔드 서비스를 할 때 해당 데이터 만 반환하면됩니다. 물론 템플릿을 사용하는 데 또 다른 단점이 있습니다. 즉, 성능은 특정 손실을 유발할 것이므로 모든 사람이 여기에서 간단히 이해할 수 있습니다.
위의 소개에서 언급했듯이 @controller+ @responsebody는 @RestController와 동일하므로 여기에서 @RestController를 사용하는 것이 좋습니다.
@requestmapping (value = "/req")을 소개하겠습니다. 나는 모든 사람들이 이미 그 사용법을 알고 있다고 생각합니다. 물론,이 주석은 방법에 사용될뿐만 아니라 클래스에도 적용됩니다.
@RestController //@controller //@responsebody@requestMapping (value = "/test") 공개 클래스 요청 테스트 {/*** 요청 메소드에 대한 제한 없음* @return*/@requestmapping (value = "/req") public String req () {return "success"; }/** * 제한된 요청 메소드는 get * @return */@requestmapping (value = "/req1", method = requestod.get) public string req1 () {return "success"; }/** * 제한 요청 메소드는 post * @return */@requestmapping (value = "/req2", method = requestmethod.post) public String req2 () {return "success"; }}이 방법을 볼 때 이미 유용성을 알고 있어야한다고 생각합니다. 지정된 액세스 유형이며 기본값을 설정하지 않고 어떤 식 으로든 액세스 할 수 있습니다. 메소드가 @requestmapping 클래스에 설정되면 클래스의 메소드가 기본적으로 상속 될 것이라고 생각했는지 모르겠습니다. 물론 메소드에서 별도로 설정할 수도 있습니다. 우선 순위 문제를 직접 시도하십시오.
아래는 컨트롤러의 구성 파일에서 상수에 액세스하는 방법을 소개합니다. 먼저 구성 파일을 추가합니다.
이름 = hpugsage = 35content = 이름 : $ {name}; age : $ {age}우리는 $ {}에 의해 사용되는 구성 파일에 상수를 사용합니다.
아래는 컨트롤러에 매개 변수를 주입합니다.
// 구성 파일에서 매개 변수를 인젝션 @Value ( "$ {name}") 개인 문자열 이름; @Value ( "$ {age}") 개인 정수 시대; @Value ( "$ {content}") 개인 문자열 내용; @requestmapping (value = "/req3", method = requestmethod.get) public String req3 () {return "name =" + name; } @requestmapping (value = "/req4", method = requestMethod.get) public String req4 () {return "age =" + age; } @requestmapping (value = "/req5", method = requestMethod.get) public String req5 () {return "content =" + content; }프로젝트를 시작하고 방문하십시오.
이 용도에 만족하지 않으면 다음은 또 다른 요령입니다. 클래스 매핑 구성 파일을 사용하고 클래스를 사용하여 매개 변수를 사용합니다. 단일 매개 변수를 주입하는 것이 더 편리합니다. 먼저 Java 클래스를 만듭니다
@component@configurationProperties (prefix = "userInfo") public class userInfo {개인 문자열 이름; 개인 정수 시대; 개인 문자열 내용; 공개 정수 getage () {return age; } public String getNames () {return names; } public void setNames (문자열 이름) {this.names = 이름; } public void setage (정수 시대) {this.age = age; } public String getContent () {return 컨텐츠; } public void setContent (문자열 내용) {this.content = content; }}그런 다음 구성 파일에서 매개 변수를 설정합니다.
userInfo.names = Little Broken Child userInfo.age = 25userInfo.content = 이름 : $ {userInfo.names}; age : $ {userInfo.age}컨트롤러를 만들기위한 배선 :
// 개체를 주입합니다 @autowired private userInfo userInfo; @requestmapping (value = "/req6", method = requestmethod.get, produces = "text/plain; charset = utf-8") public String req6 () {return "name =" + userInfo.getNames (); } @requestmapping (value = "/req7", method = requestMethod.get) public String req7 () {return "age =" + userInfo.getage (); } @requestmapping (value = "/req7", method = requestMethod.get) public String req7 () {return "age =" + userInfo.getage (); } @requestMapping (value = "/req8", method = requestMethod.get) public String req8 () {return "content =" + userInfo.getContent (); }자, 프로젝트 방문을 다시 시작하십시오.
친구,이 문제에 직면했는지 모르십니까? 중국어 코드가 있습니다. 우선 걱정하지 마십시오. 다른 SpringBoot 구성 파일 인 Application.yml을 살펴 보겠습니다. 이 구성 파일을 대체합니다 ";" Newline Spaces에 의해. YML에서 동일한 구성을 구성하는 방법을 살펴 보겠습니다.
서버 : 8888 Context-Path : /SpringBoot1name : HPUGSAGE : 35Content : 이름 : $ {name}; Age : $ {age} userInfo : name : little chid age : 25 내용 : 이름 : $ {userInfo.names}; Age : $ {userInfo.age}이제 프로젝트를 시작하고 시도해 봅시다.
위의 멍청한 질문으로 돌아가서 YML을 사용할 때는 갈망이 없습니까? 당신은 조금 우울합니까? 이게 왜? .properties 파일이 유니 코드 인코딩 양식을 사용하기 때문에 중국어로 들어갈 때 차량 코드가 나타납니다. 물론, 차량의 코드에 대한 또 다른 이유, 즉 프론트 엔드와 일치하지 않을 수있는 인코딩 설정이 있습니다. 구성 파일에 이것을 추가합니다.
스프링 : http : 인코딩 : 힘 : True Charset : UTF-8 활성화 : trueserver : tomcat : uri-encoding : utf-8
제어합니다. 다음은 몇 가지 개발 팁입니다. SpringBoot는 다양한 개발 환경에서 다양한 구성 파일에 대한 솔루션을 제공합니다.
#YML 형식 스프링 : 프로파일 : active : prod#.properties format spring.profiles.Active = dev
요약
위의 것은 스프링 부트 부트 개발에서 발생한 함정에 대해 편집기가 소개 한 스프링 부트 스타터 -WEB 구성 파일을 사용하는 자습서입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!