[Spring Boot] @Transactional이 COMMIT을 실행하는 코드까지
2022. 8. 6. 14:59
Java/Spring Boot
Spring Boot의 @Transactional 어노테이션은 트랜잭션을 사용자가 편리하게 사용할 수 있도록 제공되는 어노테이션입니다. @Transactional 어노테이션을 통해 해당 트랜잭션의 다양한 옵션을 설정할 수 있습니다(propagation, isolation level 등). 이번 포스팅에서는 @Transactional 어노테이션이 어떻게 동작하는지 알아보겠습니다. Spring Boot는 AOP(Aspect Oriented Programming) 기법을 통해 공통 관심사를 Aspect의 형태로 처리합니다. @Transactional 기능은 데이터베이스와 상호작용하는 다양한 메서드들의 공통 관심사인 트랜잭션을 분리해서 처리하는 점에서 AOP에 포함된다고 볼 수 있습니다. 그럼 AOP를 구현하는..
[Spring Boot] refresh context 차근차근 따라가기
2022. 5. 11. 08:19
Java/Spring Boot
해당 포스팅은 [Spring Boot] 대체 어떻게 실행되는걸까 ? 포스팅의 일부입니다. 2022.05.01 - [Java] - [Spring Boot] 대체 어떻게 실행되는걸까 ? [Spring Boot] 대체 어떻게 실행되는걸까 ? beanFactory.registerSingleton("springApplicationArguments", applicationArguments); Spring boot를 사용하다 보면 이 마법 같은 프레임워크가 어떻게 동작하는지 궁금할 때가 있습니다. Spring boot는 어떻게.. code-run.tistory.com Spring Boot의 ApplicationContext가 초기화되는 과정에서 refresh 과정이 있습니다. 이번 포스팅을 통해 refresh가 어떻..
[Spring Boot] Bean이 살고있는 집 ApplicationContext 기능 살펴보기
2022. 5. 5. 12:51
Java/Spring Boot
해당 포스팅은 [Spring Boot] 대체 어떻게 실행되는걸까 ? 포스팅의 일부입니다. 2022.05.01 - [Java] - [Spring Boot] 대체 어떻게 실행되는걸까 ? [Spring Boot] 대체 어떻게 실행되는걸까 ? beanFactory.registerSingleton("springApplicationArguments", applicationArguments); Spring boot를 사용하다 보면 이 마법 같은 프레임워크가 어떻게 동작하는지 궁금할 때가 있습니다. Spring boot는 어떻게.. code-run.tistory.com ApplicationContext의 기능 ApplicationContext는 Spring의 advanced container입니다. Applicatio..
[Java] System.out.println() 동작원리 native method까지 까보기
2022. 5. 3. 07:41
Java/Deep Java
System.out.println() 메서드는 Java 프로그램에서 console로 출력이 필요할 때 가장 많이 사용하는 메서드 중 하나입니다. 하지만 정작 내부원리를 이해하려 노력해본 결과가 없었기에... 이번 포스팅을 통해 자세히 알아보고자 합니다. System.out.println("hello")에 breakpoint를 걸고 디버깅하며 차근차근 내부를 들여다보겠습니다. public class Main { public static void main(String[] args) { System.out.println("hello"); } } System.out.println("hello")의 System.out은 PrintStream 클래스의 객체입니다. PrintStream은 다음과 같은 메서드를 통해서..
[Java] 처음 들어보는 java.beans.Introspector
2022. 5. 2. 22:38
Java/Deep Java
Docs에서 찾아본 Java의 Introspector의 기능은 .. 다음과 같습니다. The Introspector class provides a standard way for tools to learn about the properties, events, and methods supported by a target Java Bean. Docs에 게제된 설명만으로는 확실히 이해하기 어려우니 관련된 용어부터 차근차근 알아가보겠습니다. Java Bean JavaBean은 Java 클래스를 어떻게 작성할지에 대한 표준 중 하나입니다. JavaBean의 특징은 다음과 같습니다. 모든 properties는 private 속성을 가집니다. (public getter, setter을 설정합니다) 인자가 없는 publ..
[Spring Boot] 알쏭달쏭한 환경변수 설정원리
2022. 5. 1. 21:40
Java/Spring Boot
해당 포스팅은 [Spring Boot] 대체 어떻게 실행되는 걸까? 포스팅의 일부입니다. 2022.05.01 - [Java] - [Spring Boot] 대체 어떻게 실행되는 걸까? [Spring Boot] 대체 어떻게 실행되는걸까 ? beanFactory.registerSingleton("springApplicationArguments", applicationArguments); Spring boot를 사용하다 보면 이 마법 같은 프레임워크가 어떻게 동작하는지 궁금할 때가 있습니다. Spring boot는 어떻게.. code-run.tistory.com Spring boot의 환경변수를 설정하는 방법은 다양합니다. application.properties 설정, system의 환경변수 또는 comman..
[Spring Boot] 대체 어떻게 실행되는걸까 ?
2022. 5. 1. 08:42
Java/Spring Boot
Spring boot를 사용하다 보면 이 마법 같은 프레임워크가 어떻게 동작하는지 궁금할 때가 있습니다. Spring boot는 어떻게 실행되는지, 자동 설정은 어떻게 수행되는지 등... Spring boot를 자주 사용하지만 정작 내부 원리를 알지 못하니 겉핥기 수준으로 Spring boot를 사용하고 있다는 느낌을 떨칠 수가 없습니다. 그래서 이번 포스팅을 계기로 조금 내부 원리를 이해해보고자 합니다. Spring boot도 결국에는 Java program이기 때문에 시작점은 main()입니다. 따라서 SpringApplication.run(SpringBootAutowireApplication.class, args); 가 Spring boot의 시작 지점입니다. @SpringBootApplicatio..