본문 바로가기

JAVA/Spring Framework

(11)
[Spring] RequestParam값 객체로 매핑하기, Custom Annotation 만들기 스프링 Controller에서 Request값을 도메인객체를 사용해서 받을 때는 Json으로 넘어오는 경우에는 requestBody로 받으면 손쉽게 해결할 수 있었다. 위의 상황을 코드로 이야기하자면 다음과 같다. @RequestMapping(value = "/binding", method = RequestMethod.POST) @ResponseBody public TesUsrAdmA createUser( @RequestBody TestDomain testDomain ) { return testDomain; } Post 의 payload에 데이터가 json 형식으로 포함되어 다음의 형식으로 넘어온 것을 jackson library가 messageConvert 해줍니다. { name : "이름", etc ..
[Spring] application.yaml 설정하기 (다중 설정, custom.yaml 생성) 다중 데이터 소스를 설정한 뒤 데이터베이스가 여러 개가 예상이 되어 database.yaml을 분리하였다. application.yaml이 아닌 database.yaml의 설정 내용을 어떻게 하면 인식 할 수 있을까? 간단한 방법으로는 다음과 같다. @SpringBootApplication public class Application { public static final String PROPERTIES = "spring.config.location=" +"classpath:/application.yaml" +",classpath:/database.yaml"; public static void main(String[] args) { new SpringApplicationBuilder(Application..
[Spring] 다중데이터소스 설정, application.yaml 분리 후 Testcase 오류 발생 및 해결 오류 내용은 다음과 같았다. Caused by: java.lang.IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required. 물론 더 긴 내용이 있겠지만 대충 내용을 파악하자면 DataSource가 제대로 생성되지 않아서 이 후 모든 주입되는 빈에 영향을 주고 있었다. 상당히 고통을 받으며 해결하게 되었으므로 오늘은 해결 과정에 대해서 포스팅을 해보고자 한다. jdbc-url 설정?? 많은 내용을 구글에서 검색하며 찾아본 결과 다음의 포스팅을 발견하였다. 해당 내용은 이미 설정이 되어 있음을 확인하였고 문제가 되는 부분이 아니라고 인식하게 되었다 다중으로 datasource를 설정하는 부분이 잘못된 게 아닌가? 의..
[Spring] 간단한 TestCase 만들기 사전 작업 : [Spring] Controller와 Service 생성하기 테스트 진행을 위하여 다음과 같이 작업합니다. implementation 'junit:junit:4.12' testImplementation('org.springframework.boot:spring-boot-starter-test') { exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' } @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK) @AutoConfigureMockMvc public class TestTableTest { @Autowired private MockMvc mockMv..
[Spring] Controller와 Service 생성하기 사전 작업 : [Spring] 다중 데이터소스 설정(Multiple Datasource JPA, Mybatis) Mybatis 를 위한 mapper SELECT * FROM test_table import com.cafe24.cmc.domain.test.TestTable; import org.springframework.stereotype.Repository; import java.util.List; import java.util.Map; @Repository public interface TestMapper { Map getAll() throws Exception; } JPA를 위한 Entity, Repository import lombok.Data; import lombok.NoArgsConstruc..
[Spring] 다중 데이터소스 설정(Multiple Datasource JPA, Mybatis) How to Configure Multiple DataSource 다중 데이터 소스를 설정하는 방법에 대해 알아보겠습니다. 데이터베이스가 하나만 존재하는 경우에는 간단하게 application.yaml 에 설정 내용만 추가하면 바로 사용이 가능했습니다. 그러나 데이터베이스가 여러 개 존재하는 경우에는 여러 데이터소스를 만들어서 transaction도 잡아주고 DB위치도 다르게 잡아줘야 합니다. 우선은 예시를 위한 디렉토리 구조를 살펴보겠습니다. 디렉토리 구조 중점으로 봐야할 파일은 config.database 디렉토리의 하위 파일입니다. 다중데이터소스 설정을 위한 첫 번째 단계는 application.yaml에 database에 대한 정보를 적어주는 일입니다. application.yaml에 DataSo..
GSON 과 JSON 차이 및 변형 https://galid1.tistory.com/501
[Spring Framework] Security 설정 및 원리 스프링 시큐리티 스프링 시큐리티는 필터체인으로 인증과 권한을 확인한다. 따라서 webApplicationContext에 설정을 할 경우 모든 bean이 생성되지 않은 상태에서 로딩이 되므로 에러가 발생한다. rootApplicationContext에 설정하여 우선적으로 bean이 만들어질 수 있도록 해야 한다. 설정방법은 다음과 같다. 파일명 : pom.xml org.springframework.security spring-security-core 4.1.3.RELEASE springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy springSecurityFilterChain /* config/app/SecurityConf..