일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- LOG4J
- tibero
- JPA
- Java
- kubectl
- nodejs
- JavaScript
- gradle
- MySQL
- NCP
- dbeaver
- Kubernetes
- gson
- react
- Git
- log4j2
- Windows
- useEffect
- intellijIDEA
- Spring
- jetbrains
- springboot
- database
- nginx
- BPMN
- VSCode
- mybatis
- docker
- wildfly
- IntelliJ
- Today
- Total
목록Spring (6)
두 손끝의 창조자
스프링부트로 프로젝트 수행 도중 타입 체크 (isAssignableFrom) 부분에서 문제가 발생했다. 특정 클래스의 오브젝트를 인자로 리플렉션으로 메소드를 실행하려고 하는데 메소드의 파라미터 타입과 클래스의 오브젝트 타입이 달라서 실행이 안되는 문제가 발생했다. 디버깅 해본 결과 분명 타입은 같은 타입이었다. 허나 다른 부분은 클래스로더였다. 하나는 RestartClassLoader 다른 하나는 AppclassLoader 였다. 클래스 로더가 다르면 둘의 타입은 다르다고 인식할 수 있기 때문에 가장 의심스러운 부분이었다. RestartClassLoader는 스프링부트의 spring-boot-devtools 를 사용하면 추가되는 클래스로더이다. spring-boot-devtools를 제거하고 나니 잘 수..
SpringTest로 테스트 실행 전 Sql을 실행하려면 클래스나 메소드에 @Sql 애노테이션으로 미리 작성된 쿼리를 실행할 수 있다. 만약, 실행했는데 java.lang.IllegalStateException: Failed to execute SQL scripts for test context ---- 생략 at org.springframework.util.Assert.state(Assert.java:97) ~[spring-core-5.3.13.jar:5.3.13] at org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener.executeSqlScripts(SqlScriptsTestExecutionListener.java:254) ~..
소스코드로 볼 때(compile time)와 실행할 때(run time)의 의존관계가 서로 달라서 그럴 수도 있다. 현재 의존관계에서 중복되거나 버전이 안 맞거나 하는 것을 찾아볼 필요가 있다. setReadOnly not defined in JpaTransactionObject in JpaTransactionManager · Issue #24422 · spring-projects/spring-framework In spring-orm-8.2.3.RELEASE the problem described in Ticket # 23943 is still present. At line 405 txObject.setReadOnly(definition.isReadOnly()); txObject is of type J..
테스트 돌리는데 예외 발생 java.lang.IllegalStateException: Failed to load ApplicationContext Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resourceHandlerMapping' defined in class path resource [org/springframework/web/servlet/config/annotation/DelegatingWebMvcConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.spr..
일반적인 웹 애플리케이션에 접속해서 인증을 받는 절차를 한번 상상해 보자. 자원요청 : home 페이지에 접속을 해서 열어보고 싶은 링크를 클릭한다. 요청자원인식 : 링크를 클릭하면 요청이 서버로가고, 서버는 사용자가 요청한 자원이 보호된 자원이라고 인식한다. 요청자원 제공 불가 알림 : 사용자가 인증되지 않은 상태라면, 서버는 사용자에게 인증, 즉 로그인을 하라고 알려준다. 이때 로그인 페이지로 이동될 수도 있고 아니면 그냥 에러 페이지를 띄울수 있다. 인증 인터페이스 : 인증 메커니즘에 따라서 ID와 패스워드를 입력하는 폼이 뜰수고 있고, 브라우저가 BASIC 인증 다이얼로그 박스나, 쿠키나, X.509 인증서 등을 뒤져서 신상을 파악한다. 인증요청 : 브라우저는 입력된 ID, 패스워드를 서버로 보내..
핵심 Interface PlatformTransactionManager getTransaction() commit() rollback() TransactionDefinition 트랜잭션 4가지 속성 구현체 DataSourceTransactionManager TransactionAPI를 이용해서 관리 트랜잭션을 적용할 datasource가 빈으로 등록되어 있어야 함 JDBC과 SqlMap으로 만든 DAO에 적용가능함 트랜잭션을 적용할 DAO가 사용하는 것과 동일한 datasource를 빈으로 제공해야 함 Datasource를 getConnection()이 호출될때마다 매번 새로운 Connection을 돌려줘야 함 ThreadLocal 등을 이용해 트랜잭션을 저장해두고 돌려주는 특별한 기능을 가진 DataS..