일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- docker
- 리팩토링
- DataGridView
- Java
- 코틀린
- 도커
- github
- Kotlin
- VOA
- 스프링
- machine-learning
- kubernetes
- 쿠버네티스
- 리액트
- 파이썬
- Winform
- AWS
- react
- c#
- design pattern
- 스프링부트
- git
- Python
- mybatis
- springboot
- Spring Boot
- 마이바티스
- Spring
- MySQL
- 자바
- Today
- Total
목록springboot (7)
보뇨 다이어리
우선 코드위주로 설명 Spring boot + testcontainer + mysql 구성은 쉬운데 Oracle 이 쉽지않음..ㅠ
레거시 코드를 개선하다가 로컬에서는 문제가 없고 정작 배포를 하면 제목과 같은 에러가 발생했는데 정확히는 아래 내용도 포함하여 에러를 던졌다. java.lang.IllegalStateException: Failed to introspect Class from ClassLoader 원인은 스프링부트 2.4.0 이상부터는 configurationprocessor 쪽 패키지를 컴파일레벨에서만 처리하도록하고 제거된것이 특징이다. 그렇기때문에 2.4.0 미만 버전에서만 동작하던것들이 안되는것임을 알았다. https://github.com/spring-projects/spring-boot/issues/24244 2.4 Release Notes does not indicate that known annotation ..
일단 테스트코드부터 막 짜본거라 돌아가는것만 확인해보자 @SpringBootTest @RunWith(SpringRunner.class) public class DivisionServiceTest { private final String URL = "http://127.0.0.1:8080/api/students/53"; @Autowired private RestTemplate restTemplate; @Test public void test() { ResponseEntity response = restTemplate.getForEntity(URL, Student.class); assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); assertThat..
spring boot 에서 test 코드 작성하다가 에러 발생함 에러내용은 다음과 같다 URI is not absolute java.lang.IllegalArgumentException : URI is not absolute말그대로 절대경로로 되어있지 않기때문에 에러가 난건데 URI 부분은 다음과 같이 있었다 api/students 그래서 아차차차 싶어서 이렇게 고치니 잘되었다 솔직히 글만 읽으면.. private final String URI = "127.0.0.1:8080/api/students";
다른 사람들은 모두 메이븐으로 빌드해버려서 간단한건데도 인터넷 찾느랴 시간버림...ㅠ 맨처음 제외시키지않고 컴파일하면 이런 에러가 발생한다 뭐 첫문장부터 보면 왜 뻑나는지 알수있져 바로 기존 spring boot 에 logging 과 겹치기때문에 에러를 툭 하니 뱉는건데...나도 다 아는데 어떻게 exclude 시키는지몰라서 고생했단말이유... SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/C:/Users/ee/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-slf4j-impl/2.11.2/4d44e4edc4a7fb39f09b9..
현재 api 재개발하면서 불필요하게 중복된 코드가 들어가는부분이 바로 모든 Controller 클래스 상단에 있는 @RequestMapping("/api") 이 부분이다 예전부터 꼴도보기 싫어서 일괄처리할수있는 방법을 찾아보았다 아래와 같이 resource 폴더내에 application.yml 에 넣어주면 된다 server: servlet: context-path: /api 참고로 스프링부트 2.1.5 버전을 사용중입니다!! 참고 https://stackoverflow.com/questions/32927937/how-to-set-base-url-for-rest-in-spring-boot
현재 내가 다니고 있는 회사에서는 post 시 return 값으로 이런식으로 보내준다 { "id" : 230 } 근데 굳이 RequestBody 에 넣어야하나 싶기도하고 솔직히 옳고 그름은 없지만 좀더 쿨한 모습이 뭘까 생각하다가 문득 넷플릭스는 어떻게 했을까 궁금해서 찾아보았다 거기는 이런식으로 되어있었다 HTTP/1.1 201 Created Location: https://genie.example.com/api/v3/applications/07d38b08-91f1-47e9-8629-29e42a6e2b8aLocation 저거는 json 으로 뿌려주는건가싶어서 찾아봤는데 그건아니였다 http header 에 Location 필드 초기화 시키는것이였다!! 그래서 오우야 어차피 날아가는 http header..