본문 바로가기

Framework/Spring에 해당하는 글들

9 Articles matched
목록이 없습니다.
[Spring] 버전별 jdk 버전 호환 💡 Spring framework 버전별 호환되는 JDK 버전 정리 Spring Framework를 마이그레이션 할 때에 기존에 레거시에서 사용중인 JDK 버전과 호환이 되는지 확인이 필요할 경우가 있다. 이 경우 말고도 Spring Framework와 특정 JDK 버전이 호환이 되는지 찾아볼 때가 있는데 매번 구글링 하지 않고 블로그에서 찾아 볼 수 있게 하기 위해서 정리해본다. Spring Framework - JDK 호환 버전 Spring Framework 4.3.x - JDK 6 ~ 8 Spring Framework 5.0.x - JDK 8 ~ 10 Spring Framework 5.1.x - JDK 8 ~ 12 Spring Framework 5.2.x - JDK 8 ~ 15 Spring Fram..
[Spring framework] logback RollingFileAppender 설정 기존에 log4j를 로깅 구현체로 사용하고 있었는데 보안이슈가 연달아 터지면서 관리하는 여러 서버들의 버전업을 일괄 처리하는 매우 비효율적인 작업을 반복하다 보니 log4j를 사용하기 싫어지기도 했고 logback이 log4j를 만든분이 그 다음에 만든 것이라고하여 뭔가 좀 더 나은게 있지 않을까 찾아보았다. 사실 log4j 자체도 제대로 사용하고 있다는 느낌은 아니었기 때문에 이번에 바꾸기로 한거 좀 더 깊게 알아보자하여 찾아보니 logback에 유용한 기능들이 아주 많다는 것을 알게 되었고 logback으로 바꾸는게 좋겠다는 생각이 좀 더 기울었다. 우선 log4j로 서버에서 로깅을하면 아무래도 파일 기반 로깅을 하고 있기 때문에 한정된 서버 용량에 로그가 넘치지 않게 하기 위해서 주기적으로 관리가 ..
[Spring Framework] 멀티 서버에서 Spring 스케줄러 중복실행 방지 Spring의 @Scheduled 어노테이션은 Spring Framework에서 쉽게 cron을 구성할 수 있는 유용한 기능입니다. 그런데 WAS를 늘리게 되면 상당히 골치아픈 상황이 벌어집니다. cron작업이 WAS마다 실행되기 때문에 WAS의 개수만큼 중복된 cron이 실행되기 때문인데요 이러한 상황을 해결할 수 있는 방법을 정리해보려고 합니다. Scheduler Lock 위와 같이 2개 이상의 서버로 구성된 환경에서 중복된 Schedule이 실행되지 않도록 Lock을 걸 수 있게 만들어놓은 라이브러리입니다. maven repository에 shedlock이라는 이름으로 올라와있습니다. 그 중에 shedlock-spring과 shedlock-provider-jdbc-template을 추가합니다. sh..
[Spring] 운영 properties와 개발 properties 구분하기 Spring Framework를 사용하는 소스에서 여러가지 설정과 관련된 다양한 properties들이 늘어남에 따라서 운영에서 사용되는 properties와 개발 시 사용할 properties를 구분해야 하는 경우가 생겼습니다. 이런 경우에 찾아보니 properties 파일을 로드할 때 운영 환경 시 로드될 파일들을 ops 폴더 아래에 두고 개발 환경 시 로드될 파일들을 dev 폴더 아래에 위치 시킵니다. 그런 다음에 JAVA Option으로 spring.profiles.active라는 변수를 정의해서 properties 파일들을 로드할 때 spring.profiles.active를 경로 사이에 넣은 다음에 운영 환경일 경우 해당 변수를 ops로 개발 환경일 경우 해당 변수를 dev로 저장하여 소스를 ..
[Spring] 스프링 기초(시작) 이것만 알고가자 : 동작 개념 Spring(스프링)을 처음 접하게 되면 그 사이즈부터 구조까지 한 번에 이해하기 힘들고 전반적인 개념을 알아듣기조차 힘들어요 ( 물론 아닌사람도 있겠지만 ..) 아직도 완전히 알지는 못하지만 그래도 처음 스프링프로젝트를 접했을 때 이 개념이 이 글이 조금이라도 도움이 되었으면 좋겠다고 바라면서 그리고 나 또한 이 구조를 잊지 않기 위해서 정리해 보려고 해요 Spring(스프링) Request Life Cycle (요청 생명 주기) - 동작 개념 제가 처음 Spring을 접했을 때 핵심개념인 DI(Dependency Injection)이며 IOC(Inversion Of Control) 컨테이너 등 이런 개념들은 둘째 치고 도대체 어떻게 프로젝트가 동작하는지 너무너무 답답하고 막막했어요 어디서부터 공부를 ..
[Spring] @Autowired annotation(어노테이션) Framework가 등장하게 된 계기는 유지보수를 좀 더 효율적으로 운영하기 위해서 그리고 생산성을 높이기 위해서라고 해요(쉽게 말해서 좀 더 편하게 하기 위해서.. i++ ) Framework는 언어별로 그리고 기능별로 종류가 엄청 많은데요 그 중에서 Spring Framework라는 자바 기반 프레임워크를 차근차근 살펴볼게요 Spring Framework에서 유용한 기능들이 아주 많~이있는데 그중에서 오늘은 @autowired 어노테이션을 정리해보려고 해요! 1. 코드 Car라는 클래스에 tire라고 하는 속성을 만들 때 보통은 다음과 같은 코드를 작성하게 되요 123456789Tire tire; public Tire getTire() { return tire;} public void setTire(..
[Spring] 스프링 @Value annotation(어노테이션) 스프링에서 텍스트 파일로 변수값들을 선언하고 싶을 때 (보통 이런 변수값들을 프로퍼티라고 함) 다음의 과정을 거친다. 1. 프로퍼티 파일을 생성 resources/config/config.properties 파일 생성 파일의 내용 img.path=/home/upload/images/ 2. application-servlet.xml 파일에 프로퍼티 파일을 선언 beans 선언문에 다음과 같이 util 네임스페이스를 추가한다. 프로퍼티 파일을 선언 3. controller에서 선언한 프로퍼티 사용 @Value를 사용하면 프로퍼티 값을 가져올 수 있다. @Value("#{config['img.path']}") String imgPath; 참고 : https://dukeom.wordpress.com/
[Spring Framework] 스프링 빈(Spring Bean) 생명주기 [ 스프링 빈 생명 주기 ] 스프링 컨테이너를 생성하고 설정하는 시점에 빈 객체가 초기화가 되는데 이 과정에서 생성이 이루어지고스프링 컨테이너가 종료를 하는 시점에 빈 객체 또한 소멸하는 과정을 거친다. 소스(자바) 코드에서 그 순서는 다음과 같다. ( InitializingBean 인터페이스 구현 )@Overridepublic void afterPropertiesSet() throws Exception { } ; @PostConstruct[지정 메서드] @PreDestroy[지정 메서드] ( DisposableBean 인터페이스 구현 )@Overridepublic void destroy() throws Exception { } ; 이를 이용해서 ..