@Transactional(rollbackFor = Exception.class) 1. rollbackFor를 명시해준다2. 메소드는 public으로 선언해준다 다른 패키지에서 안쓴다고 public으로 안했다가 삽질 경험그 외에 다른 DataSourceTransactionManager니 @EnableTransactionManagement니이런거 안넣어도 잘 동작함(블로그 글 기준) [개발/JAVA] - 스프링 부트(Spring boot)에서 mybatis(oracle) 적용하기 참고https://stackoverflow.com/questions/7085271/how-to-set-up-transaction-with-mybatis-and-spring
Caused by: java.lang.ClassNotFoundException: kotlin.reflect.full.KClassesat java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_151]at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_151]at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) ~[na:1.8.0_151]at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_151]... 26 common frames omi..
H2 DB를 사용 시 다음과 같은 오류 메세지를 만날때가 있습니다 The file is locked 내용 보면 알겠지만 여러 프로세스에서 동시에 접근할때 발행하는 오류입니다제 경우 API 서버를 띄워놓고 배치를 돌릴때 이미 DB를 사용중이기 때문에 발생한 경우였습니다.그럴 경우 설정을 다음과 같이 변경해 주시면 두개의 프로세스에서 동시 접근이 가능합니다. datasource: # url: jdbc:h2:file:~/test url: jdbc:h2:~/test;AUTO_SERVER=true username: sa driver-class-name: org.h2.Driver
최근 삽질 application.yml에 값을 설정 해두고spring: profiles: local sleep: min: 100 max: 500 --- spring: profiles: dev sleep: min: 500 max: 1000 application.properties에 아래와 같이 프로파일을 설정해주었다spring.profiles.active=dev 어플리케이션 구동했으나 계속 발생하는 오류. 심지어 다른 서버에서는 정상 동작 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sleepAspect': Injection of autowired dependencies failed; neste..
[개발/JAVA] - Threadlocal을 이용하여 사용자별 요청 처리하기 ThreadLocal과 같이 보시면 좋습니다. 스프링에서 빈 Scope 타입은 여러가지 방식이 있으며 아래를 참고해 주세요. https://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch04s04.html 별도의 옵션이 없다면 빈은 싱글톤으로 관리되며 부모의 속성을 따라갑니다. 즉 controller는 따로 설정을 하지 않았기 때문에 singleton으로 동작하게 되며 그 안에서 주입받은 빈 역시 scope를 request로 줘도 singleton으로 동작하게 됩니다. 빈을 생성해 주고 위에 보이는것처럼 scope를 request로 선언해줍니다. 그리고 위처럼 컨트롤러를 구현합니다..
개발시 소스 전체에서 사용할 수 있는 전역변수처럼 데이터를 할당하고 싶을떄가 있습니다. Threadlocal을 이용하여 이를 구현해 봅니다. ShoppingController.java @RestController public class ShoppingController { private int melon; @RequestMapping("/") private String test() { this.addMelon(); return String.valueOf(melon); } private void addMelon() { melon++; } } 사용자별로 요청 시 카트에 멜론을 담는 기능을 구현하려고 합니다. 이 떄 카트 수량은 여러 메소드에서 사용할 수 있기 때문에 멤버변수로 선언을 합니다. 이렇게 작성 후..
쓸때마다 새로만드는 것 같아서 저장용 UTF-8일 경우subStringBytes("블라블라블라라", 10, 3);EUC-KR일 경우subStringBytes("블라블라블라라", 10, 2); public String subStringBytes(String str, int byteLength, int sizePerLetter) { int retLength = 0; int tempSize = 0; int asc; if (str == null || "".equals(str) || "null".equals(str)) { str = ""; } int length = str.length(); for (int i = 1; i 127) { if (byteLength >= tempSize + sizePerLetter) ..
- Total
- Today
- Yesterday
- Spring
- ls
- Database
- 합정
- IntelliJ
- 맛집
- maven
- jQuery
- Profile
- vi
- Access
- vrapper
- Kotlin
- Tomcat
- 도커
- 코틀린
- oracle
- docker
- 톰캣
- Linux
- Eclipse
- resttemplate
- Build
- grant
- java
- properties
- vim
- boot
- Shell
- mybatis
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |