일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- spring
- controlleradvice
- 스프링 세션
- spring security and angularjs
- api 문서화
- 스프링 시큐리티
- 앵귤러
- AUthorization
- angular
- 스프링
- spring security oauth2
- 앵귤러JS
- 스웨거
- rest api
- spring boot
- angularjs
- 스프링 부트
- Spring Framework
- oauth2
- 스프링 시큐리티와 앵귤러 js
- Exception Handling
- 예외처리
- spring framwork
- 스프링부트
- swagger-ui
- Spring Security
- 레디스
- spring session
- api documentation
- Authentication
- Today
- Total
스프링부트는 사랑입니다
Spring Boot 1.3.0 릴리즈 노트 본문
스프링 부트 1.3.0 릴리즈 노트 - 2015년 11월 17일
원문: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.3-Release-Notes
스프링부트 1.2이후 업그레이드된 것
스프링 부트 1.2에서 제거된것 Deprecations from Spring Boot 1.2
스프링 부트 1.2에서 디프리케이트된 클래스, 메소드, 프로퍼티들은 이번 릴리즈에서 제거되었다.업그레이드에 앞서 디프리케이트된 메소드를 호출하는지 먼저 확인해야한다.
잭슨 Jackson
스프링 부터 1.2는 어플리케이션 컨텍스트내에 모든 ObjectMapper
를 가지는 잭슨 모듈에 등록했다. 이는 ObjectMapper
bean의 모듈을 완전히 제어할수 없게 만들었기 때문에, 스프링 부트 1.3에서는 오직 자동설정된 Jackson2ObjectMapperBuilder
.와 함께 설정되거나 생성된 ObjectMappers
만 잭슨 모듈 빈으로 등록된다. 이는 모듈설정의 방식을 스프링부트의 다른 잭슨설정과 똑같이 만들어줬다.
로깅 Logging
스프링 특화 설정 Spring specific configuration
스프잉 특화 로그 설정파일의 중복 초기화를 막기위해 기본 로그 설정의 이름을 -spring
접두사를 붙여쓰도록 바꿔주는것을 (필수요구사항은 아니지만) 권장한다. 예를 들면, logback.xml
파일을 logback-spring.xml
로 바꾸는 것이다.
초기화 실패 Initialization failures
스프링 부트 1.2에선 logging.config
를 써서 로깅 설정파일을 커스터마이즈할 수 있었다. 파일이 존재하지않으면 기본설정을 사용해서 조용히 대비할 수 있었다. 스프링 부트 1.3는 파일이 없을경우 실패하게 된다. 유사하게, 사용자가 잘못 설정된 커스텀 로그백 설정파일을 넣어뒀다면 스프링 부트 1.2는 기본 설정으로 극복할 것이다. 스프링 부트 1.3은 시스템이 에러가 나며(falls) 설정의 문제로 System.err
에 리포트된다.
스프링 HATEOAS Spring HATEOAS
스프링 HATEOAS 자동설정이 컨텍스트의 기본 ObjectMapper
에 영향을 미치지 않도록 재작업되었으므로 spring.hateoas.apply-to-primary-object-mapper
프로퍼티는 삭제되었다. 이는 spring.hateoas.use-hal-as-default-json-media-type
이름의 프로퍼티로 대체되었는데 이는 스프링 HATEOAS HTTP 메세지 컨버터가 application/hal+json
요청 뿐만 아니라 application/json
의 요청을 처리할 지를 제어하는데 쓰인다.
/health 종단의 시큐리티 Security for the /health endpoint
actuator /health
endpoint의 어떠한 정보를 보여줄지에 대한 보안 설정은 더 나은 일관성을 가지도록 약간 재조정되었다. 자세한 정보는 HTTP health endpoint access restrictions 를 참고하자.
HTTP 응답압축 HTTP response compression
스프링 부트 1.2에서 톰캣사용자를 위한 네이티브 응답 압축 또는 제티, 톰캣, Undertow 사용자를 위한 제티의 GZipFilter 를 사용하는 압축이 지원되었다. 제티팀이 gzip필터를 디프리케이트한데 영감받아 스프링부트 1.3은 이 세 내장 컨테이너에서 네이티브 응답 압축을 지원하도록 변경되었다. 그 결과 server.tomcat.compression.
그리고 spring.http.gzip.
프로퍼티는 더이상 지원하지 않는다. 새로운 server.compression.*
프로퍼티가 대신 사용된다.
톰캣 세션저장 Tomcat session storage
기본값으로 톰캣은 더이상 세션 데이터를 /tmp
에 저장하지않는다. 사용자가 톰캣과 persistent 세션을 사용하려면 server.session.persistent
프로퍼티를 true
로 설정하자. server.session.store-dir
는 특정위치에 파일을 저장할때 쓴다.
제티 JSP Jetty JSPs
spring-boot-starter-jetty
"Starter POM" 은 더이상 org.eclipse.jetty:jetty-jsp
. 을 포함하지않는다. 제티와 JSP를 함께 사용하는 사용자는 스스로 이 의존성을 직접 추가해줘야한다.
MVC Stacktrace출력 MVC Stacktrace output
Stacktrace 정보는 이제 스프링 MVC가 에러 응답을 랜더할때 포함되지않는다.스프링 부트 1.2에서 쓰던대로 유지하려면 error.include-stacktrace
를 on-trace-param
.로 설정하자.
타임리프의 스프링 시큐리티 통합 Thymeleaf’s Spring Security integration
스프링 시큐리티 4로의 업그레이드때문에 스프링 1.3은 타임리프의 스프링 시큐리티 지원의 자동설정과 의존성 관리 또한 업그레이드하였다. 새 artiface은 org.thymeleaf.extras:thymeleaf-extras-springsecurity4
.이다 pom.xml
또는 build.gradle
를 각각 업그레이드 해줘야한다.
/template폴더가 없을때 나는 에러 Missing /templates folder errors
스프링 부트 어플리케이션은 /templates
폴더가 없다고 시작에 실패하지않는다. 스프링 부트에서 지원되는 템플릿 기술을 사용중인데 /templates
폴더를 추가하지 않았다면 이제 warning으로 로그될것이다.
그루비 템플릿 Groovy templating
GroovyTemplateProperties
는 이제 AbstractTemplateViewResolverProperties
를 확장하여 추가적인 설정옵션을 제공한다. 사용자가 현재 커스텀 리소스 위치를 정의하기위해 prefix.spring.groovy.template.prefix
프로터리를 설정해두었다면, prefix.spring.groovy.resource-loader-location
로 이름을 바꿔줘야 한다.
그래들 플러그인 Gradle plugin
bootRun 리소스 bootRun resources
스프링 부트 그래들 플러그인은 bootRun
를 쓸때 클래스패스에 src/main/resources
를 직접 추가하지않는다. 만일 사용자가 실시간 즉시 편집을 원하면, Devtools 를 쓰는것을 권장한다. 스프링 부트 1.2에서 했던대로 되돌리려면 addResources
프로퍼티는 그래들 빌드에 설정할 수 있다.
의존성 관리 Dependency management
스프링의 그래들 플러그인이 이번 릴리즈에서 dependency management plugin를 사용할 수 있게 업데이트되었다. 대부분의 사용자는 이 변화에 무관하지만 자신이 설정한 버전을 적용하려는 versionManagement
설정을 사용하는 사용자들은 그들의 빌드 스크립트를 업그레이드해야한다.
버전관리를 설정하기위해 프로퍼티파일을 요구하는 대신, 새로운 플러그인이 사용자가 메이븐 bom을 쓸수있도록 해준다. 예를 들면:
dependencyManagement {
imports {
mavenBom 'com.example:example-bom:1.0'
}
}
어플리케이션 플러그인 Application plugin
스프링 부트 그래들 플러그인은 더이상 그래들의 application plugin 을 기본으로 적용하지않는다. 만일 이 어플리케이션 플러그인을 쓰려면, build.gradle
.에 사용자가 적용해줘야한다.
어플리케이션 플러그인이 제공하는 기능이 필요없지만 mainClassName
나 applicationDefaultJvmArgs
프로퍼티를 쓰고싶으면 build.gradle
.에 작은 업데이트만 해주면 된다.
메인클래스는 이제 springBoot
extension의 mainClass
프로퍼티로 설정가능해졌다. 예를들면:
springBoot { mainClass = 'com.example.YourApplication' }
applicationDefaultJvmArgs
는 사용자 프로젝트의 ext
block에서 설정할 수 있다. 예를들면:
ext {
applicationDefaultJvmArgs = [ '-Dcom.example.property=true' ]
}
어플리케이션 플러그인의 run
task에 있는 main
프로퍼티를 사용해서 사용자 프로젝트의 메인클래스를 설정하려면 다음의 설정을 bootRun
task에 대신 설정해 줘야한다:
bootRun {
main = com.example.YourApplication
}
메이븐 플러그인 Maven plugin
spring-boot:run 리소스 spring-boot:run resources
스프링 부트 메이븐 플러그인은 spring-boot:run
를 쓸때 클래스패스에 src/main/resources
를 직접 추가하지않는다. 만일 사용자가 실시간 즉시 편집을 원하면, Devtools 를 쓰는것을 권장한다. 스프링 부트 1.2에서 했던대로 되돌리려면 addResources
프로퍼티는 pom.xml
에 설정할 수 있다.
메이븐 리소스 필터링 Maven resources filtering
spring-boot-starter-parent
를 사용한다면, 메이븐 토큰은 오직 @
을 사용하여 필터링 한다. 이는 사용자 설정에서 빌드시 확장되는 스프링 placeholder를 막아준다.(${foo}와 같은).
실제로 만일 사용자가 ${project.version}
와 같은 표준화 포멧을 여전히 사용하고 있다면 @project.version@
로 바꿔주거나 maven-resources-plugin
설정을 오버라이드 해야한다.
CLI의존성 관리 CLI dependency management
스프링 부트 1.3은 이제 메타데이터에 기초한 프로퍼티 파일을 대신하여 의존성관리를 설정하기 위해 메이븐 bom을 사용한다. bom의 위치를 지정하기 위한 @GrabMetadata
을 대신하여 @DependencyManagementBom
sho을 사용해야한다. 예를 들면, @DependencyManagementBom("io.spring.platform:platform-bom:1.1.2.RELEASE")
.
프로퍼티 이름변경 Property renames
다음의 application.properties
키들이일관성 차원에서 이름을 변경하였다:
spring.view.
에서spring.mvc.view.
로spring.pidfile
에서spring.pid.file
로error.path
에서server.error.path
로server.session-timeout
에서server.session.timeout
로servet.tomcat.accessLogEnabled
에서server.tomcat.accesslog.enabled
로servet.tomcat.accessLogPattern
에서server.tomcat.accesslog.pattern
로servet.undertow.accessLogDir
에서server.undertow.accesslog.dir
로servet.undertow.accessLogEnabled
에서server.undertow.accesslog.enabled
로servet.undertow.accessLogPattern
에서server.undertow.accesslog.pattern
로spring.oauth2.
에서security.oauth2.
로server.tomcat.compression
와spring.http.gzip
에서server.compression.*
로prefix.spring.groovy.template.prefix
에서prefix.spring.groovy.resource-loader-location
로
의존성 Dependencies
스프링 4.2 Spring 4.2
스프링 부트 1.3은 스프링 프레임워크 4.2 또 그 이후 버전이 필요하다. 그 이전버전과는 호환되지않는다.
스프링 시큐리티 4.0 Spring Security 4.0
주목할만한 새 기능
팁 | 변경된 설정를 둘러보려면 설정 변경기록 을 확인하자. |
버전 업데이트 Version Updates
스프링 부트 1.3빌드는 스프링 프레임워크 4.2를 필요로 한다. 몇몇 서드파티 의존성이 이 릴리즈에 맞춰 업그레이드 되었다. 이번 릴리즈에는 톰캣과 제티 버전에 주요한 업데이트는 없다.
개발자 툴 Developer Tools
스프링부트 1.3 은 개발시간을 향상을 목적으로 하는 새로운 spring-boot-devtools
메소드를 지원한다.이 모듈이 제공하는 것들은:
민감한 프로퍼티의 기본값들 (예를 들면 템플릿 캐시를 disable하는)
어플리케이션 자동 재시작
LiveReload 지원
원격 개발 지원 (HTTL터널을 통한 원격 업데이트와 원격 디비깅을 포함).
재시작해도 이어지는 Persistent HTTP 세션
자세한 정보는 업데이트된 문서를 보자.
캐싱 자동설정 Caching Auto-configuration
다음과 같은 캐시 기술에 대한 자동설정이 지원된다:
EhCache
Hazelcast
Infinispan
JCache (JSR 107)를 호환하는 구현체들
Redis
Guava
더우기, 간단한 Map
기반 메모리 상주 캐싱 또한 지원된다. 캐싱은 사용자의 어플리케이션의 @Configuration
이 @EnableCaching
와 같이 어노테이션되어있으며 자동적으로 등록된다. 캐시 통계 또한 이제 actuator endpoint로서 노출된다 ( 관련된 근원기술을 허용할때만)
자세한 정보는 업데이트된 문서를 보자.
온전히 실행가능한 JAR와 서비스 지원 Fully executable JARs and service support
스프링 부트 메이븐과 그레들 플러그인은 이제 리눅스/유닉스 시스템을 위한 full executable archives를 만들수 있다. 더우기, 사용자는 이들 JAR들은 다음과 같이 타입함으로서 init.d
또는 systemd
서비스로서 쉽게 인스톨할 수 있다:
$ ./myapp.jar
그리고 이렇게 init.d
서비스로 인스톨한다:
$ sudo link -s /var/myapp/myapp.jar /etc/init.d/myapp
추가적인 정보는 레퍼런스 문서를 참고하자
카산드라 지원 Cassandra Support
OAuth2 지원 OAuth2 Support
이제 @EnableAuthorizationServer
와 @EnableResourceServer
를 사용하여 OAuth2 인증 및 리소스 서버를 재빠르게 만들 수 있다. 뿐만 아니라 @EnableOAuth2Client
는 사용자 어플리케이션에 OAuth2 클라이언트로 동작할 수 있게 해준다. 자세한 정보는 재정비된 레퍼런스 문서의 보안섹션을 참고하자.
스프링 세션 Spring Session
클래스패스에 스프링 세션과 스프링 데이터 레디스를 넣으면 웹어플리케이션은 이제 레이스에서 사용자 세션을 저장하도록 자동설정될 것이다. accompanying sample 에서 자세한 정보를 확인하자.
jOOQ 지원 jOOQ Support
jOOQ의 자동등록을 지원한다. 형변환에 안전한(type safe) 데이터베이스 쿼리를 만드려면 사용자의 bean에 jOOQ의 DSLContext
를 직접 @Autowire
하면된다. 추가적인 커스터마이즈가 spring.jooq.*
어플리케이션 프로퍼티를 통해 지원된다.
센드그리드 SendGrid
Artemis 자동설정 Artemis auto-configuration
2015년 HornetQ가 아파치 재단에 기부하여 아파치 Artemis가 만들어졌다. 스프링 부트 1.3부터 아파치 Artemis를 완벽하게 지원하며 HornetQ와 거의 같은 방식을 사용한다. 사용자가 Artemis 를 사용하려면, spring.hornetq.
프로퍼티를 spring.artemis.
로 이름 변경하면 된다.
"Starter POM" 검증 Validation "Starter POM"
새로운 spring-boot-starter-validation starter POM
이 추가되어 bean validation (JSR 303) support할 수 있다.
@WebServlet, @WebFilter와 @WebListener 지원 Support for @WebServlet, @WebFilter and @WebListener
내장 서블릿 컨테이너를 사용할때 @WebServlet
,@WebFilter
그리고 @WebListener
어노테이션된 클래스를 자동등록이 @ServletComponentScan
을 사용함으로서 가능해졌다.
스프링 리소스체인 Spring resource chains
사용자는 이제 스프링의 application properties를 통해 ResourceChainRegistration
의 기본 aspect을 설정할 수 있다. 이는 사용자가 캐시파열cache busting을 구현하기 위한 고유한 리소스 이름을 만들수 있게 해준다. spring.resources.chain.strategy.content.
프로퍼티는 만약 사용자가 사용자의 fingerprint에 "고정된 버전"fixed version을 쓰길 원하면 리소스의 내용에 기초해 fingerprinting을 설정하는데 쓰인다.
JDBC
스프링 부트는 다음과 같은 데이터베이스의 JDBC URL로 부터 드라이버 클래스 이름을 자동으로 가져온다:
DB2
Firebird
Teradata
데이터소스 타입 DataSource type
자동설정이 사용하는 커넥션 풀connection pool은 spring.datasource.type
설정키를 통해 명시할 수 있다.
H2 웹콘솔 H2 Web Console
H2의 web console 의 자동설정이 추가되었다. 스프링부트의 개발자 툴을 쓸때 사용자의 웹 어플리케이션에 com.h2database:h2
의존성만 추가하면 바로 사용할 수 있다. 자세한 정보는 문서를 참고하자.
내장 몽고DB Embedded MongoDB
내장 MongoDB 가 자동설정에 추가되었다. de.flapdoodle.embed:de.flapdoodle.embed.mongo
의존성이 시작시 필요하며, 버전과 같은 설정을 사용하려면 application.properties
를 통해 설정할 수 있다. 자세한 정보는 문서를 참고하자.
ANSI 컬러 banner.txt 파일 ANSI color banner.txt files
이제 사용자의 banner.txt
파일에 출력물에 색깔을 입힐 수 있는 ANSI placeholders를 사용할 수 있다. 예를 들면:
${AnsiColor.BRIGHT_GREEN}My Application
${AnsiColor.BRIGHT_YELLOW}${application.formatted-version}${AnsiColor.DEFAULT}
기본 프로파일 application.properties Default profile application.properties
-default
접미사는 이제 특정 프로파일이 활성화되지않았을때 application.properties
(또는 application.yml
) 파일을 읽는다. 이 것은 사용자가 배포환경을 명시하는 프로파일을 사용할때 유용할 것이다.
File | Description |
---|---|
| 항상 불러오는 공유 프로퍼티 |
|
|
|
|
| 활성화된 프로파일이 없을때 불러오는 프로퍼티 |
어플리케이션 인자들 Application arguments
사용자는 이제 CommandLineRunner
를 대신하는 ApplicationRunner
인터페이스를 구현할 수 있다. 같은 방식으로 동작하지만 String[]
이 아닌ApplicationArguments
인터페이스로서 인자를 제공할 수 있다. 만일 사용자가 어플리케이션 인자들에 접근해야한다면, 이미 있는 아무 bean에 직접 ApplicationArguments
를 주입할 수 있다.
ApplicationArguments
인터페이스는 "option" 과 "non-option" 인자들을 위한 편리한 메소드를 제공한다. 예를 들면:
@Autowired
public MyBean(ApplicationArguments args) {
boolean debug = args.containsOption("debug");
List<String> files = args.getNonOptionArgs();
// if run with "--debug logfile.txt" debug=true, files=["logfile.txt"]
}
로깅 Logging
로깅 패턴 Log Patterns
logging.pattern.console
과 logging.pattern.file
프로퍼티는 이제 사용자의 application.properti
es
파일을 통해 직접 로깅패턴을 지정할 수 있다. 사용자의 log*.xml
파일을 정의할 필요없이 패턴을 커스터마이즈하길 원하는 경우 손쉽게 이용할 수 있다.
stacktrace에서 Jar 디테일 Jar details in stacktraces
사용자가 logback or log4j2를 사용중이라면, stack trace안의 각 클래스의 위치에 대한 정보가 로드될것이다. (이것은 logging.exception-conversion-word
를 통해 바꿀 수 있다.)
If you are using logback or log4j2, we now include information about the location from which each class in a stack trace was loaded (this can be customized vialogging.exception-conversion-word
).
Log4J 2 출력 Log4J 2 Output
Log4J 2’의 기본 출력이 향상되어 Logback의 출력물과 비슷해졌다.
톰캣 접근 로그 Tomcat access logs
톰캣 접근로그(access logs)는 더 커스커마이징할 수 있게 되었다: 디렉토리, 파일의 접두사/접미사를 이제 설정을 통해 커스터마이즈 할 수 있다.
로그백 확장 Logback extensions
스프링 부트 1.3은 사용자가 logback 설정파일안에서 사용할 수 있는 몇 개의 새로은 태그를 지원한다. 태그를 쓰려면 사용자는 먼저 logback.xml
설정파일을 logback-spring.xml
로 이름을 바꿔줘야 한다. 일단 이름을 바꿨다면 다음의 태그를 사용할 수 있다:
태 그 | 설 명 |
---|---|
| 사용자 마음대로 활성화된 스프링 프로퍼티에 기초한 설정을 포함하던지 배제할지 허용한다. |
| Logback에서 사용하는 스프링 환경변수(Spring Environment)의 프로퍼티를 불러오는 것을 허용한다. |
HTTP 세션 HTTP Sessions
Persistent 세션 Persistent sessions
톰캣, 제티, Undertow는 어플리케이션이 멈췃을때와 재시작되어 다시 로드될때 세션데이터를 serialize하도록 업데이트되었다. Persistent 세션은 opt-in이라 ConfigurableEmbeddedServletContainer
의 persistentSession
이나 server.session.persistent=true
프로퍼티를 사용하여 설정할 수 있다. (Persistent 세션은 Devtools에서 기본적으로 enabled 되어있다)
persistent 세션 데이터를 저장하는 위치는 server.session.store-dir
프로퍼티를 사용하여 지정할 수 있다.
향상된 HTTP 세션 설정 Advanced HTTP Session configuration
부가적인 프로퍼티들이 세션 설정을 위해 제공되어 이제 server.session.*
프로터리를 사용하여 "tracking modes" 와 "cookie" details을 설정할 수 있다.
X-Forwarded-For 헤더지원 X-Forwarded-For header support
X-Forwarded-For header 지원이 제티와 Undertow에 추가되었다. 톰캣 또한 X-Forwarded-For headers를 반영되어야 한다면 단일 server.use-forward-headers
프로퍼티를 true
로 설정 할 수 있도록 새로 고쳐졌다. 스프링부트는 Cloud Foundry 나 Heroku의 배포를 감지하여 자동으로 enable되도록 지원한다.
설정 프로퍼티 Configuration properties
Bean에서 @ConfigurationProperties
를 사용하고 있다면, 사용자는 더이상 스프링 부트의 자동설정으로의 당신의 설정파일에 @EnableConfigurationProperties
를 추가해주지 않아도 된다. 기존엔 @EnableConfigurationProperties
의 값속성을 사용하거나 정식으로 하는
클래스를 위해 스프링에 bean을 만들라고 했었다.@Bean
정의를 함으로서 사용자의 @ConfigurationProperties
메세징 Messaging
JMS와 Rabbit endpoints 둘다 이제 설정을 통해 쉽게 disabled할 수 있게 되었다. 아무 설정없이 생성된 기본 컨테이너 팩토리가 있다면 또한 설정을 통해 커스터마이즈 할 수 있다.
국제화 Internationalization
자동설정된 MessageSource
인스턴스의 fallbackToSystemLocale
플래그를 spring.messages.fallback-to-system-locale
설정키를 통해 제어할 수 있다.
자동설정 Auto-configuration
자동설정 리포트는 "Unconditional classes"라 불리는 추가적인 섹션을 가진다. 이것은 어떤 클래스레벨 조건을 가지지 않은 자동설정 클래스를 리스트해준다. 예를 들면 언제나 어플리케이션 설정의 한 부분인 클래스는 @SpringBootApplication(exclude=…)
또는 @EnableAutoConfiguration(exclude=…)
를 통해 수동으로 배재excluded된 설정에 리스트되어질 것이다.
spring.autoconfigure.excludes
프로퍼티를 통해 자동설정 클래스에서 제외하는것 또한 가능해졌다. 유사하게 새 @ImportAutoConfiguration
어노테이션을 써서 특정 자동설정 클래스를 선별적으로 import해야하는 테스트를 할 수 있다.
MVC 에러 핸들링 MVC Error handling
error.include-stacktrace
프로퍼티는 스택 트레이스 속성을 MVC 에러 응답에 넣을지 결정하는데 사용한다. 옵션은 never
, always
또는 on-trace-param
이 있다. (기본값은 never
).
엑츄에이터 메트릭스 Actuator Metrics
spring-boot-actuator
메트릭스가 export 와 aggregation을 지원하도록 확장되었다. 또한 자바8 특화 GaugeService
와 CounterService
구현이 제공되어 개선된 성능을 제공해준다.
부가적인 Health Indicators
다음의 부가적인 HealthIndicators
제공되어 자동설정된다.:
Elasticsearch
Email
JMS
새로운 actuator endpoints
다음의 부가적인 actuator endpoints 가 스프링부트 1.3에 추가되었다:
이름 | 설 명 |
---|---|
| 로그파일로 접근할 수 있다.(설정해두었을경우). |
| 적용해둔 Flyway 데이터베이스 마이그레이션의 자세한 정보를 제공한다. |
| 적용해둔 Liquibase 데이터베이스 마이그레이션의 자세한 정보를 제공한다. |
액츄에이터 종단을 위한 CORS지원 CORS support for actuator endpoints
Actuator’s endpoint는 이제 CORS를 지원한다. 기본값은 disabled되어 있지만 endpoints.cors.allowed-origins
.설정을 enabled함으로서 사용할 수 있다.
/env와 /metrics를 위한 정규식 지원 Regex support for /env
and /metrics
사용자는 정규식을 사용하여 /env
and /metrics
actuator endpoints를 필터할 수 있다. 예를들면, http://localhost:8080/metrics/.root.
.
MVC 액츄에이터 종단을 위한 하이퍼미디어 Hypermedia for MVC actuator endpoints
Actuator HTTP endpoints는 이제 사용자가 클래스패스에 Spring HATEOAS가 있으면 (예를 들면, spring-boot-starter-hateoas
를 통해), 하이퍼링크를 보여줄 수 있게 개선되었다. 새로운 "discovery page" 또한 모든 actuator endpoints의 링크들을 제공해준다. 클래스패스에 HAL browser의 webjar가 있으면 HAL browser를 위한 지원 또한 제공된다. 자세한 정보는 "Hypermedia for MVC Endpoints" 레퍼런스 섹션을 보자.
Actuator docs endpoint
새로운 spring-boot-actuator-docs
모듈이 스프링 부트 1.3에 추가되어 actuator 문서를 사용자 어플리케이션에 내장하는것이 가능해졌다. 일단 해당 모듈이 클래스패스에 있다면, 사용자는 /docs
를 타입하여 각각 endpoint에서 리턴받은 데이터의 샘플을 포함하는 actuator endpoints의 정보를 얻을 수 있다.
Disabling health indicators
management.health.defaults.enabled
프로퍼티를 통해 기본 health indicators를 전부 손쉽게 disable시킬수 있다.
TraceWebFilter options
(HTTP 요청/응답의 디테일을 추적하는데 쓰이는) Actuator TraceWebFilter
가 이제 더 많은 정보를 로그한다.이것을 사용하려면 management.trace.include
프로퍼티를 쓰면된다. (TraceProperties.Include
enum을 참고하자)
메이븐 지원 Maven Support
Maven start/stop support and admin features
메이븐 플러그인에 start
과 stop
goals이 추가되었다. 이들은 메이븐의 방해없이 어플리케이션을 시작할 수 있게 해준다.( 다른 goals이 어플리케이션을 가동할수 있게 해줌으로서). 이 기술은 메이븐으로부터 통합테스트를 실행할때 자주 쓰인다.
이 작업의 부산물로서 새로운 SpringApplicationAdminMXBean
인터페이스가 추가되어 스프링 부트 어플리케이션이 JMX를 통해 제어될수있게 허용되었다 (enabled 설정했을경우)
Profile activation
spring-boot-maven-plugin
은 spring-boot:run
.과 함께 사용할 수 있는 profiles
프로퍼티를 제공한다. 사용자의 pom.xml
에서 또는 커맨드라인에서 -Drun.profiles
을 사용함으로서 프로파일을 설정할 수 있다. 자세한 정보는 updated plugin documentation 를 참고하자.
Ant Support
스프링 부트는 이제 Ant를 통해 실행가능한 jars를 만들 수 있는 AntLib 모듈을 제공한다. 레퍼런스 문서의 "Spring Boot AntLib module" 섹션을 보라.
Configuration property meta-data updates
META-INF/spring-configuration-metadata.json
파일포멧이 업데이트되어 새로운 deprecation
과 hints
속성을 지원한다. Hints는 IDE개발자가 사용하여 더 나은 컨텐트 도움말을 보여줄 수 있으며, Deprecation은 deprecation과 replacement key를 설정할 수 있다. 만일 필요하다면 그러한 정보들은 프로퍼티의 getter에 @DeprecatedConfigurationProperty
를 추가함으로서 제공할 수 있다. updated appendix 에서 자세한 정보를 확인하자.
기본값의 인식 또한 향상되었다: 만일 프로퍼티가 단일 인자를 가지는 하나의 메소드호출을 통해 초기화되면, 해당 인자가 초기값으로 간주될 것이다. (예를들면, Charset.forName("UTF-8")
은 기본값으로 UTF-8
으로 인식된다)
자신의 툴과 앱에서 configuration meta-data을 사용하고 싶어하는 툴개발자를 위해 새로운 spring-boot-configuration-metadata
모듈이 추가되었다. 이것은 메타데이터를 읽고 그것을 리파지토리에서 빌드할 수 있는 API가 제공된다.
Spring Boot CLI
CLI 는 이제 의존성 해결dependency resolution동안 메이븐 settings.xml
의 리파지토리 설정을 사용할 수 있다. 리파지토리를 쓰려면 프로파일에 활성화해줘야 한다.
CLI 는 또한 이제 실행가능한 WAR파일을 만들수 있다. $ spring war <filename.war> <script.groovy>
를 사용하자.
Miscellaneous
다음과 같은 잡다한 업데이트 또한 스프링 1.3에 포함되었다:
자바8을 쓰면 잭슨의 자바8 모듈이 자동적으로 등록된다.
TransactionTemplate
bean 은 이제TransactionAutoConfiguration
의 일부로 포함되었다.MailServer
bean 은 이제spring.mail.jndi-name
프로퍼티를 사용하는 JNDI를 통해 얻어진다.JNDI사용자는 이제
server.display-name
프로퍼티를 통해 서블릿 이름을 등록할 수 있다. (내장 서블릿 컨테이너를 쓸때)Flyway migration strategies 은 이제
FlywayMigrationStrategy
bean를 통해 설정할 수 있다.새로운
SpringBootVersion
클래스가 추가되었다. (코어프레임워크의SpringVersion
과 유사하다).사용자는 이제 amcrest matchers를
OutputCapture
t과 같이 사용하여 특정한 결과의 테스트 산출물을 검증할 수 있다.사용자는 이제 Elasticsearch non local nodes를 사용해서 스프링 부트를 설정할 수 있다.
ApplicationPidFileWriter
는 이제fail-on-write-error
프로퍼티를 통해 exception 설정을 할 수 있다. (업데이트된 javadoc를 참조하자)메이븐 플러그인은
spring-boot:run
과 함께 사용할 수 있는useTestClasspath
옵션이 추가되었다.DB2와 Informix를 위한 추가적인 데이터베이스 heath 쿼리가 추가되었다.
프로퍼티 바인딩 실패는 이제 더 나은 Exception 메시지를 보여준다.
@SpringBootApplication
어노테이션에scanBasePackages
와scanBasePackageClasses
속성이 추가되었다.새로운
AllNestedConditions
과NoneNestedConditions
가 추가되었다. (현존하는AnyNestedCondition
과 비슷)활성화된 프로퍼티Active profiles는 이제 어플리케이션이 시작할때 출력로그output log를 프린트한다.
spring.main.banner-mode
프로퍼티는CONSOLE
,LOG
또는OFF
output 간에 스위치하는데 사용할 수 있다.원격 DevTools 은 이제 프록시 서버뒤에서 작동한다. (
spring.devtools.remote.proxy.*
프로퍼티를 보자)(Java 8 에서 지원하는) 잭슨의 parameter names module가 이제 사용자의클래스패스에 있으면 자동설정된다.
스프링의 웹소켓 메세지 변환기message converters는 이제 자동설정된다.
새로운
DelegatingFilterProxyRegistrationBean
클래스가 추가되어DelegatingFilterProxy
.를 거친 내장 서블릿 컨테이너와 함께 등록할 수 있게 되었다.
Deprecations in Spring Boot 1.3.0
setBannerMode
사용을 유도하기 위해Application.showBanner
와ApplicationBuilder.showBanner
메소드는 디프리케이트되었다.@ConditionalOnMissingClass
는 이제name
.보다value
속성을 사용하여 제공되기때문에 클래스 이름이 필요하다.아파치의
log4j 1.x의 서비스 종료(EOL)선언에 따라 Log4JLoggingSystem
는 디프리케이스되었다.ConfigurableEmbeddedServletContainer
setJspServletClassName
과setRegisterJspServlet
메소드는setJspServlet
로 대체되었다.EndpointMBean
클래스(와 서브클래스들)은 이제 생성자에 제공되려면ObjectMapper
이 필요하다.DropwizardMetricWriter
는DropwizardMetricService
로 대체되었다.String[]
을 가지는 protectedSpringApplication.afterRefresh
메소드는ApplicationArguments
.을 가지는 버젼에 의해 디프리케이트되었다.
는 디프리케이트되었다.CloudFoundryVcapEnvironmentPostProcessor
에 의해 VcapEnvironmentPostProcessor
받는 버젼에 의해 디프리케이트 되었다.LoggingSystem
initialize
메소드는 LoggingInitializationContextorg.springframework.boot.autoconfigure.orm.jpa.EntityManagerFactoryBuilder
는 디프리케이트되어 새 패키지org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder
를 사용해야한다.
'ReleaseNotes' 카테고리의 다른 글
스프링 부트 1.5 릴리즈 노트 (0) | 2017.07.21 |
---|---|
스프링 부트 1.4 릴리즈 노트 (0) | 2016.08.06 |
타임리프3 - Thymeleaf 3 five-minute migration guide (0) | 2015.12.08 |
Spring Boot 1.2 릴리즈 노트 (0) | 2015.11.18 |
Spring Boot 1.1 릴리즈노트 (0) | 2015.11.18 |