본문 바로가기

JAVA/Spring Boot

(19)
애플리케이션 설정 웹 애플리케이션 설정 웹 애플리케이션을 설정하는 방법은 크게 3가지로 분류 스프링 웹 프레임워크에서 제공하는 확장 인터페이스를 사용하여 필요한 기능을 추가하거나 교체하는 방법 WebMvcConfigurer 인터페이스에 제공하는 콜백메서드를 개발자가 설정할 부분만 구현하는 것이다. 애플리케이션을 실행하면 개발자가 구현한 메서드가 실행되고 설정된다. 스프링 프레임워크에 기본 설정으로 만들어진 스프링 빈을 재설정하는 방법 @Primary 사용하여 스프링 빈을 덮어 정의한다. 스프링 웹 MVC 프레임워크에서 미리 정의한 스프링 빈 이름과 타입으로 사용자가 생성하는 방법 애플리케이션을 실행하면 스프링 프레임워크는 미리 정의된 이름의 스프링 빈이 있는지 확인하고 있으면 로딩한다. DispatcherServlet은 ..
스프링 부트 기본설정 및 기본 테스트 gradle 설정 build.gradle buildscript { ext { springBootVersion = '2.1.7.RELEASE' } repositories { mavenCentral() jcenter() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' group 'com.swan.ee' version '1.0-SNAP..
Swagger-UI url 변경 @Configuration @EnableSwagger2 @Import(BeanValidatorPluginsConfiguration.class) public class SpringFoxConfig extends WebMvcConfigurationSupport{ @Bean public Docket apiDocket() { return new Docket(DocumentationType.SWAGGER_2) .useDefaultResponseMessages(false) .select() .apis(RequestHandlerSelectors.basePackage(CommonConstants.BASE_PACKAGE_NAME)) .paths(PathSelectors.ant("/api/v1/**")) .build() ..
스프링 부트 기본-#2 자동설정 자동설정은 스프링 부트의 장점이며 매우 중요한 역할. 스프링 부트 자동 설정은 web, h2, jdbc 등 여러개의 자동설정을 제공한다. h2 의존성이 클래스 경로에 존재한다면 자동으로 인메모리 데이터베이스에 접근한다. 자동환경설정 어노테이션 기존의 스프링 프레임워크를 사용했다면 의존성을 일일이 bean으로 설정했어야 한다. 스프링 부트는 관련 의존성을 스타터라는 묶음으로 제공하며 수동 설정을 지양한다. @SpringBootApplication @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @Compon..
스프링 부트 기본-#1 스프링 부트 특징 임베디드 톰캣, 제티, 언더토우를 사용하여 독립 실행이 가능한 스프링 애플리케이션 개발 통합 스타터를 제공하여 메이븐/그레이들 구성 간소화 스타터를 통한 자동화된 스프링 설정 제공 JAR를 사용하여 자바 옵션마으로도 배포 가능 애플리케이션의 모니터링과 관리를 위한 스프링 액츄에이터 제공 장점 각각의 의존성 버전을 올리는 것이 수월 (스프링 부트의 버전이 올라갈때마다 각 버전의 호환성에 대한 충분한 테스트를 거치고 릴리스 되기 때문) 간단한 어노테이션 설정이나 프로퍼티 설정으로 세부적인 설정 없이 원하는 기능을 빠르게 적용 별도의 외장 톰캣을 설치할 필요가 없으며 톰캣버전도 더욱 편리하게 관리 단점 설정을 개인화(커스터마이징)하면 버전을 올릴때 기존 스프링 프레임워크를 사용하는 것과 동일..
Spring MyBatis사용 및 설정 Mybatis Mybatis 의존설정 기존 스프링 기반에서는 Mybatis.jar, Mybatis-Spring.jar 사용. 스프링 부트 기반에서는 mybatis-spring-boot-starter를 사용. compile ('org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3') implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3' Mybatis에서는 쿼리 매핑 구문을 실행하기 위해 sqlSession 객체를 사용 sqlSession 객체를 생성하기 위해 SqlSessionFactory를 사용. 스프링과 같이 사용할때는 SqlSessionTemplate를 사용. why? 스..
메이븐 멀티 프로젝트 구성 예제에서 참고한 메이븐 멀티 프로젝트 구성 taco-cloud-parent pom.xml 4.0.0 sia taco-cloud-parent 0.0.7-SNAPSHOT pom org.springframework.boot spring-boot-starter-parent 2.0.4.RELEASE 1.8 1.8 ${project.version} tacos tacocloud-api tacocloud-data tacocloud-domain tacocloud-restclient tacocloud-security tacocloud-web tacocloud-ui 모듈 구성 tacos pom.xml 4.0.0 taco-cloud jar taco-cloud Taco Cloud Example sia taco-cloud-par..
Spring Data JPA 사용 및 설정 Spring Data JPA 설정 org.springframework.boot spring-boot-starter-data-jpa 데이터 저장소로 h2 사용 com.h2database h2 1.4.200 test JDBC를 지원하고 라이브러리 추가만으로 사용 가능하므로 로컬에서 개발시에 많이 쓰인다. Spring Data JPA의 Repository 구조 스프링을 사용할때 자바 클래스들은 ApplicationContext를 사용하여 빈으로 등록하고 콘텍스트를 통해 제어하는 것처럼 ORM을 사용할때는 엔티티 매니저로 영속성 콘텍스트를 제어해서 자바 객체와 데이터베이스 간의 데이터 통신 및 동기화 제어를 수행한다. 엔티티 매니저의 기능을 보다 쉽게 사용할수 있도록 Repository 인터페이스를 제공하고 R..