1. org.springframework.boot:spring-boot-actuator-docs 추가됨

SpringBoot에서 제공하는 관리기능 모듈인 Actuator에 기능 하나가 추가되었다.

org.springframework.boot:spring-boot-actuator-docs

2015/10/07 출시된 http://spring.io/blog/2015/10/07/spring-rest-docs-1-0-0-release을 기반으로 한 것으로 보이는~ 애플리케이션에 actuator 설정을 기반으로 해서 asciidoc을 생성하여 웹상에서 보여주는 기능이다. 스프링의 MockMVC 를 기반으로 해서 REST DOC를 만드는 기술을 응용한 것으로 추축된다.

이 기능을 보고는 와…!

더불어서 actuator API를 HAETOS로 처리한 화면도 보여준다.

1.1. 추가방법

build.gradle 에 org.springframework.boot:spring-boot-starter-actuator org.springframework.boot:spring-boot-actuator-docs 추가

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    compile('org.springframework.boot:spring-boot-starter-actuator')
    compile('org.springframework.boot:spring-boot-actuator-docs') // actuator가 함께 설치되어야 함
    compile('org.springframework.boot:spring-boot-devtools')
    compile('org.projectlombok:lombok')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}


실행시 로그를 살펴보면 '/docs' 라고 하는 o.s.b.a.e.mvc.EndpointHandlerMapping 에 등록되는 것을 확인할 수 있다.


1.2. Actuator HATEOAS 적용


1.3. 각 Endpoints 에도 HATEOAS 적용


1.4. actuator API에 대한 문서가 생성되고 웹으로 접근(/docs)하여 본 화면



이 기능을 확인하고, 문득 드는 생각은...

한글로 번역한 asciidoc 템플릿을 제공한다고 하면 꽤 괜찮겠다.

스프링부트는 점점 멋있어진다. +_+)


* GITHUB 저장소: https://github.com/ihoneymon/rocking-the-spring4x-for-web


어쩌다보니 10월말에 발표를 하게 되었다. 흙.

거기다가 첫번째 타자.

부담감 백배

놀 수 없게 됐다. ㅠㅅ-)

발표주제는 Spring Framework 4.x 의 웹 지원기술들을 살펴볼 예정이다.


Spring Framework 4.2 를 기반으로 해서 기능설명을 진행할 예정이라, 프로젝트는 Spring Boot 1.3.0.M5 로 생성했다.

DATA 쪽은 딱히 체크를 하지 않아도 되겠지만... 습관적으로. ㅡ0-);;




일찍 자다가 모기 때문에 깨어나,

간단하게 발표할 내용과 그 예제 프로젝트를 만들어둔다.

하아... ㅡ_-);; 살펴봐야할 내용이 매우매우 많다.


사내 발표로 진행한 스프링부트 소개.


나는 STS로.... Gradle, YML

Caused by: org.hibernate.MappingException: property mapping has wrong number of columns: Parent.child type: Child
    at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:497)
    at org.hibernate.mapping.RootClass.validate(RootClass.java:270)
    at org.hibernate.cfg.Configuration.validate(Configuration.java:1360)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1851)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
    ... 23 more

1. 원인

2. 이유

연관관계의 주인(mappedBy)를 설정하지 않았기 때문이다.

양방향 매핑의 규칙: 연관관계의 주인
양방향 연관관계 매핑시 지켜야 할 규칙이 있는데 두 연관관계 중 하나를 연관관계의 주인으로 정해야 한다. 연관관게의 주인만이 데이터베이스 연관관계와 매핑되고 외래 키를 관리(등록, 수정, 삭제)할 수 있다. 반면이 주인이 아닌 쪽은 읽기만 할 수 있다. - 자바 ORM 표준 JPA 프로그래밍, 181p.

3. 해결책

mappedBy 를 선언해주어 연관관계의 주인을 지정해주면 된다.


+ Recent posts