====== Spring 잡다한 지식 ======
===== 버전 =====
==== Spring - JDK ====
^ Spring Framework ^ JDK ^
| 5.3.x | JDK 8 ~ 19 |
| 5.2.x | JDK 8 ~ 15 |
| 5.1.x | JDK 8 ~ 12 |
| 5.0.x | JDK8 ~ 10 |
| 4.3.x | JDK6 ~ 8 |
==== Spring Boot - JDK ====
^ Spring Boot ^ JDK ^
| 2.3 이상 | JDK 9 이상 |
| 2.1 이하 | JDK 8 ~ 11 |
[[https://codify.tistory.com/89|[Spring] 스프링 JDK 버전 호환]]
===== 용어 =====
DI
Dependency Injection (의존성 주입)
IoC
(제어의 역전)
AOP
관점 지향
===== 설정 =====
* [[https://zzznara2.tistory.com/414|[스프링] Spring에서 패키지 여러개(multiple package) 사용하는 방법]]
* [[https://whakscjs.tistory.com/entry/Collection-%EA%B0%9D%EC%B2%B4-%EC%A3%BC%EC%9E%85%ED%95%98%EA%B8%B0-Spring|Collection 객체 주입하기 - Spring]]
* [[http://egloos.zum.com/pelican7/v/2583817|XML 설정파일 - 컬렉션타입 프로퍼티 설정]]
* [[https://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/xsd-config.html|Appendix E. XML Schema-based configuration]]
* [[wiki:spring:jap|스프링에 jpa 설정]]
===== 로그인 =====
* [[https://blog.miyam.net/67|Spring 에서 Interceptor 를 이용한 Session 처리]]
===== 메시지 ===
* [[https://offbyone.tistory.com/24|Spring Framework 메시지 국제화(다국어 지원) 사용하기]]
===== Ajax =====
* [[https://offbyone.tistory.com/112|스프링프레임웍 - Ajax 통신(@RequestBody, @ResponseBody)]]
===== Annotation =====
* [[https://since.tistory.com/23|Spring에서 RequestMapping 전체 목록 화면에 출력 하기]]
* [[wiki:spring:Annotation|@SuppressWarning]]
===== Bean =====
// 등록된 bean의 이름을 모두 가져옴
String[] beanNames = applicationContext.getBeanDefinitionNames();
// bean 이름을 출력
for(String beanName : beanNames) {
System.out.println(beanName);
}
or
beanNames.forEach(System.out::println);
===== Cache =====
* [[https://jaehun2841.github.io/2018/11/07/2018-10-03-spring-ehcache/|Cache에 대하여.. (Spring+EHCache)]]
* [[https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:fdl:cache|표준프레임워크 Cache 서비스]]
===== Controller =====
* [[wiki:spring:controller|컨트롤러에서 사용되는 주요 개념 및 활용 방법]]
* [[https://stove99.github.io/java/2019/05/02/spring-boot-interceptor-forward/|Spring Boot : Interceptor 에서 forward 처리하기]]
===== DBCP =====
* [[https://linked2ev.github.io/spring/2019/08/14/Spring-3-%EC%BB%A4%EB%84%A5%EC%85%98-%ED%92%80%EC%9D%B4%EB%9E%80/|[스프링] 커넥션 풀 이란?]]
* [[https://d2.naver.com/helloworld/5102792|[스프링] Commons DBCP 이해하기]]
===== Error 핸들링 =====
* [[wiki:spring:exception|스프링 에러 핸들링]]
===== JSTL =====
* [[wiki:spring:jstl|JSTL 예시]]
===== Logging =====
* [[https://beyondj2ee.tumblr.com/post/14507640070/spring%EC%97%90%EC%84%9C-powerful%ED%95%98%EA%B2%8C-sql-%EB%A1%9C%EA%B7%B8-%EB%B3%B4%EA%B8%B0/amp|Spring에서 Powerful하게 SQL 로그 보기]] \\
* [[https://offbyone.tistory.com/208|log4jdbc-remix의 Custom SQL Formatter 만들기(SQL log 줄 바꿈)]] \\
* [[https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte3:fdl:%EC%84%A4%EC%A0%95_%ED%8C%8C%EC%9D%BC%EC%9D%84_%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94_%EB%B0%A9%EB%B2%95|Log4j 2 환경설정 [설정 파일 사용 시]]] \\
* [[https://yeti.tistory.com/24|[전자정부프레임워크] log4j2 사용하기]] \\
* [[http://dveamer.github.io/java/Log4j2.html|Log4j 2 설정하기]] \\
===== Maven =====
* [[wiki:spring:maven|메이븐 Tip]]
* [[https://jujupapa.tistory.com/22|[Maven] ojdbc6 받기 Missing artifact com.oracle:ojdbc6:jar:11.2.0.3]] \\
\\
\\
> ojdbc8 오류 해결
com.oracle.ojdbc
ojdbc8
19.3.0.0
===== MessageConverter =====
* [[https://www.whitestar.kr/328|messageConverter 방법]]
===== Mybatis =====
* [[wiki:spring:mybatis|Mybatis 예시]]
===== Parameter Mapping(파라미터 매핑) =====
* [[https://bamdule.tistory.com/131|[Spring] Parameter Mapping 방법]]
===== Resource ===
* [[https://marindie.github.io/spring/Spring-Include-Resource-KR/|Spring: MVC. JSP 에서 JS CSS 불러오기]]
===== Schedule =====
Quartz 예제 \\
식
의미
"0 0 12 * * ?"
매일 12시(정오)에실행
"0 15 10 ? * *"
매일 오전 10시15분에 실행
"0 15 10 * * ?"
매일 오전 10시15분에 실행
"0 15 10 * * ? *"
매일 오전 10시15분에 실행
"0 15 10 * * ? 2005"
2005년의 매일 오전 10시15분에 실행
"0 * 14 * * ?"
매일 오후 2시부터 오후 2시59분까지 매분마다 실행
"0 0/5 14 * * ?"
매일 오후 2시부터 오후 2시55분까지 매5분마다 실행
"0 0/5 14,18 * * ?"
매일 오후 2시부터 오후 2시55분까지 매5분마다 실행 그리고
매일 오후 6시부터 오후 6시55분까지 매5분마다 실행
"0 0-5 14 * * ?"
매일 오후 2시부터 오후 2시05분까지 매분마다 실행
"0 10,44 14 ? 3 WED"
3월의 매주 수요일 오후 2시10분과 오후 2시44분에 실행
"0 15 10 ? * MON-FRI"
매주 월, 화, 수, 목, 금요일 오전 10시15분에 실행
"0 15 10 15 * ?"
매월 15일 오전 10시15분에 실행
"0 15 10 L * ?"
매월 마지막날 오전 10시15분에 실행
"0 15 10 ? * 6L"
매월 마지막 금요일 오전 10시15분에 실행
"0 15 10 ? * 6L 2002-2005"
2002년부터 2005년까지의 매월 마지막 금요일 오전 10시15분에 실행
"0 15 10 ? * 6#3"
매월 세번째 금요일 오전 10시15분에 실행
\\
[[https://invincure.tistory.com/entry/Java-Quartz-%EC%BF%BC%EC%B8%A0%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-%EC%9E%90%EB%B0%94-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81scheduling-%ED%95%98%EA%B8%B0|[JAVA] Quartz (쿼츠)를 사용하여 자바 스케줄링(scheduling) 하기]]
* [[https://offbyone.tistory.com/256|Spring + Quartz 주기적으로 작업 실행하기]]
* [[https://kingbbode.tistory.com/38|Quartz + Spring Batch 조합하기]]
* [[https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:fdl:scheduling|전자정부표준프레임워크 Scheduling 서비스]]
* [[https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:%EC%84%9C%EB%B2%84%EC%9E%90%EC%9B%90%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81|요소기술 - 서버자원모니터링]]
===== web.xml =====
* [[https://cnpnote.tistory.com/entry/SPRING-Spring-welcome-file-list-%EC%98%AC%EB%B0%94%EB%A5%B8-%EB%A7%A4%ED%95%91|[SPRING] Spring welcome-file-list 올바른 매핑]]
===== Tip =====
===== Troubleshooting =====
윈도우 톰캣에서 서비스가 시작되지 않거나 .properties 파일 읽기 실패하였을 경우
> 설치 경로에서 공백을 제거하자.
===== Spring Note =====
* [[wiki:spring:Spring Note]]
{{tag>주레피 도봉산핵주먹 천호동밤안개 eleven 다국어 message 메시지 스프링 세션 로그인 커넥션풀 DBCP}}