@Configuration과 싱글톤
2021. 9. 24. 22:27
Spring
✔️ @Configuration과 싱글톤의 관계 스프링 컨테이너에서 관리하도록 해주는 설정 정보 애노테이션 입니다. @Bean과 같이 사용됩니다. 그렇다면 싱글톤과 무슨 관계가 있을까요? 코드를 보며 설명하겠습니다. AppConfig @Configuration public class AppConfig { @Bean public Service1 service1() { System.out.println("call AppConfig.service1"); return new ServiceImpl1(discountPolicy()); } @Bean public Service2 service2() { System.out.println("call AppConfig.service2"); return new Service..
AOP란
2021. 9. 24. 22:26
Spring
✔️AOP(Aspect Oriented Programming) 관점 지향 프로그래밍 원하는 관점을 기준으로 프로그래밍을 하는 방식입니다. 음... 오히려 번역하고 설명하려면 더욱 이해하기 어려운 용어 같아서 간단하게 설명하자면, 중복된 기능을 클라이언트의 코드 변경없이 재사용하도록 하는 기법 이라고 보는게 좋을 것 같습니다. 🔍 순수 자바로 보는 AOP 순수 자바로 AOP를 구현 해보겠습니다. AOP에는 여러가지 방법이 있지만, 그 중 스프링에서 사용되는 Proxy 패턴에 대하여, 알아보도록 하겠습니다. Proxy는 아주 얕은 지식으로 이해한 바는 대부분 가짜라는 의미를 가지고 있습니다. 즉, 실제 객체를 사용하는 것이 아닌 관련된 다른 가짜를 만들어서 적용하는 패턴을 의미합니다. 코드로 살펴보겠습니다...
SpringBoot 2.4 설정파일(yml) 사용법
2021. 6. 20. 16:31
Spring
yml 기준 2.4부터는 기본적으로 기존에 사용하던 문법을 지양한다. 그렇다고 사용할 수 없는건 아니지만 2.4내용은 지양하도록 한다. 아래에서 설명 하도록 하겠다. List 구조로 가져오는 방법 application-blog.yml blogs: # prefix로써 리스트로 받기 위해서 필요하다. list: # 클래스의 변수와 매핑된다. # 아래는 리스트가 될 목록 - url: https://dev -monkey-dugi.tistory.com/ rssUrl: https://dev-monkey-dugi.tistory.com/rss description: 더기이 - url: https://jojoldu.tistory.com/ rssUrl: https://jojoldu.tistory.com/rss descri..
Spring Boot와 Thymeleaf로 페이징 처리 하기
2021. 5. 13. 21:37
Spring
Spring Boot 컨트롤러 스프링 부트에서 먼저 페이징 처리 코드를 살펴 보도록 하겠습니다. 컨트롤러 @PageableDefault : 페이징 파라미터가 없을 경우 디폴트 값 입니다. page 파라미터의 경우 디폴트가 0이러서 꼭 명시할 필요는 없습니다. Spring Boot Jpa를 사용하여 Pageable로 직접 구현없이 페이징을 하고 싶다면 직접 jpql이나 네이티브 쿼리 등 커스텀 하여 사용하면 Srping Data Jpa의 페이징 기능을 사용할 수 없게 됩니다. 물론 Query Dsl을 사용해도 되고, 다른 방법도 있겠지만, 딱히 어렵게 할 필요가 없었기 때문에 jpql로 직접 쿼리를 작성 하였다가 쿼리 메서드르 변경이 가능한 쿼리여서 쿼리 메서드를 사용하여 페이징 기능을 사용할 수 있게 되..
Spring Boot -Dspring으로 환경설정 파일 적용하기
2021. 5. 9. 15:48
Spring
스프링부트 프로젝트를 ec2에 배포하고 -Dsrping 명령어로 자바 프로젝트를 실행할 때 .yml, properties등 불러오고 싶은 파일을 명시 해주어야 한다. 명시 해주지 않으면 불러올 수 없고, 에러 또한 발생하지 않아 삽질의 위험이 있다. 아래 코드는 ec2에서 코드를 배포하기 위한 여러가지 코드들을 명령어 한방에 실행하기 위한 파일의 일부 코드이다. nohup java -jar \ -Dspring.config.location=classpath:/application-blog.yml,/home/ec2-user/app/application-real-db.yml \ -Dspring.config.activate.on-profile=real \ $REPOSITORY/$JAR_NAME 2>&1 & 코드..
spring boot 2.4에서 properties include 변경 사항
2021. 5. 2. 14:35
Spring
스프링 부트 2.4부터 properties, yml에서 include 및 active 사용 방법이 변경 되었다. 이것 때문에 고생 좀 했다.. 기존 방식 아래와 같이 real-db라는 파일을 include하고 real일 경우만 사용 하도록 active 할 수 있었다. spring: profiles: include: real-db active: real 변경 방식 하지만 2.4부터는 아래와 같이 변경 되었다. spring: config: import: application-real-db.yml activate: on-profile=real 참고 공식 문서