Programming/Spring

Spring Scheduler cronTab 표현식 매년 1월 1일 스케쥴러를 통해 데이터 변경을 하는 기능 개발을 위해 적용했다. @Scheduled(cron = "0 0/30 8-22 * * ?") // 매일 아침 08:00 ~ 22:00 까지 30분마다 한번씩 실행. @Scheduled(cron = "0 */3 * * * ?") // 3분 마다 실행 @Scheduled(cron = "0 20 14 9 12 ?") // 12월9일 14:20 분 실행 @Scheduled(cron = "0 0/10 9-18 * * ?") // 9~18시 10분마다 실행 @Scheduled(cron="0 0 0 1 1 ?") // 1월1일 1년에 한번 실행 0 0 6 6 9 ? | | | | | | | | | | | | ..
요구사항 사내 시스템에서 유저가 어떠한 서비스 예약을 하면 예약 시간 5분 전에 슬랙 메세지로 리마인드 하는 기능을 구현 요청 바로 메세지 발송하는 건 찾아보면 많은데 예약은 잘못 찾겠어서 참고용으로 남기려한당 pom.xml 에 Slack 라이브러리 추가 com.slack.api slack-api-client 1.6.2 슬랙 메세지 텍스트 세팅~, properties에 입력된 slack token 조회 슬렉 메세지에 이모지를 넣고 싶으면 :pray: 처럼 넣으면 된당 public final static int BEFORE_MINUTE = 5; public final static String SCHEDULE_TEXT = "예약시간 " + BEFORE_MINUTE + "분 전입니다.\n" + "늦지 않게 방..
요구사항 AWS S3 다른 버킷으로 업로드, 다운로드, 삭제 기능 구현 그냥 두개을 버킷을 사용하려면 두개의 빈을 생성하면 된다~~! 코드는 A 버킷, B 버킷으로 작성했다 Bean 등록 A, B 버킷 두가지를 빈으로 등록하는 과정 properties에 입력된 값을 읽어온다. import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import lombok.extern.slf4j.Slf4j; import ..
각각 세팅은 금방 하지만 세가지 동시 세팅에 시간을 많이 사용해서 정리하려고 글을 씁니당 이렇게 세팅해두면 컴파일 시 QueryDsl Q class, MapStruct Impl 파일들이 생성되기 때문에 변수 변동 사항이 바로 적용돼요. dependency에 lombok-mapstruct-binding 를 추가했는데 이 부분은 필요 없는 것 같아요. lombok 1.16인가 이상 버전에서 MapStruct 같이 사용 시 써야한다는데 그냥 되네용? 두 팀이 협업을 했다는 말도 있네요. lombok이랑 Mapstruct 같이 사용할 때는 Annotation processor 순서도 중요합니다. 참고 핵심은 plug in 태그에 Annotation processor 태그임니당. 설명 컴파일 시점에 Annotat..
JPA가 세팅되어 있는 프로젝트에 Mybatis를 같이 사용하기 위해 세팅하는 과정입니다. 복잡성 있는 쿼리를 Read용으로 사용하기 위해 세팅했으며, Transaction 처리는 추가로 필요합니다. JPA가 세팅되어 있는 상태 기준으로 작성했습니다. pom.xml org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.3 MybatisConfig.java JPA와 같이 사용할 것이라서 따로 Config 파일을 생성하였습니다. @Configuration @MapperScan(basePackages = {"kr.demo.test.mapper"}, sqlSessionFactoryRef = "sqlSessionFactory", sqlSessionTemplateRef..
H2 DB Dummy Data Spring boot H2 DB를 사용할 때 더미 데이터를 생성해야 하는 경우가 생깁니다. 어떻게 더미 데이터를 설정하는지 알아보도록 합시다. Gradle과 H2 세팅 후 기준으로 설명을 하겠습니다. application.properties에 하단 세줄을 추가해줍니다. 서버 기동 시 실행할 schema.sql 과 data.sql 파일의 경로를 적습니다. application.properties # H2 세팅 spring.h2.console.enabled=true spring.h2.console.path=/h2-console spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring...
Spring 핵심 3대 요소 제어의 역전 (Ioc, Inversion of Control) 관점 지향 프로그래밍 (AOP, Aspect Oriented Programming) 서비스 추상화 (PSA, Portable Service Abstraction) 스프링에 대해 이해도를 높이기 위해 백기선님의 인프런 - 예제로 배우는 스프링 입문(개정판) 강의를 들으며 정리를 위해 포스팅합니다. 동영상 강의이고, 예제 코드를 통한 진행을 하므로 이해에 더욱 도움이 됩니다. 무료 강의이니 수강하시는 걸 추천드립니다! 제어의 역전 (IoC, Inversion of Control) 일반적인 경우 클래스에서 사용할 의존성을 직접 만들어서 사용합니다. class OwnerController { private OwnerRep..
woodadada
'Programming/Spring' 카테고리의 글 목록