@Transactional

2023. 2. 24. 15:51@Annotaion Book

@Transactional은 Spring Framework에서 트랜잭션 처리를 위해 사용되는 어노테이션 중 하나입니다.

@Transactional 어노테이션을 사용하면, 해당 메서드에서 수행되는 모든 데이터베이스 작업이 하나의 트랜잭션으로 묶이게 됩니다. 이러한 트랜잭션 처리는 데이터베이스의 일관성과 무결성을 유지하기 위해 중요합니다.

아래는 @Transactional 어노테이션을 사용하여 메서드에서 트랜잭션 처리를 수행하는 예시 코드입니다.

@Service
public class UserServiceImpl implements UserService {
 
    @Autowired
    private UserRepository userRepository;
 
    @Transactional
    public void createUser(User user) {
        userRepository.save(user);
    }
}

위 코드에서는 @Transactional 어노테이션을 사용하여 createUser() 메서드에서 트랜잭션 처리를 수행하고 있습니다. createUser() 메서드에서는 userRepository.save() 메서드를 호출하여 데이터베이스에 User 객체를 저장하고 있습니다. 이 메서드는 @Transactional 어노테이션으로 묶여 있기 때문에, userRepository.save() 메서드의 실행 결과가 데이터베이스에 반영되지 않으면, 이전에 수행된 모든 데이터베이스 작업도 롤백됩니다.

@Transactional 어노테이션은 메서드 레벨과 클래스 레벨에서 모두 사용할 수 있습니다. 클래스 레벨에서 @Transactional 어노테이션을 사용하면, 해당 클래스의 모든 메서드에서 트랜잭션 처리가 수행됩니다. 또한, @Transactional 어노테이션을 사용하여 트랜잭션 처리를 수행하려면, Spring의 트랜잭션 매니저가 설정되어 있어야 합니다. 이를 위해 @EnableTransactionManagement 어노테이션을 사용하여 트랜잭션 매니저를 활성화할 수 있습니다.

'@Annotaion Book' 카테고리의 다른 글

@Repository  (0) 2023.02.24
@ResponseBody  (0) 2023.02.24
@Service  (0) 2023.02.24
@Controller  (0) 2023.02.24
@Component  (0) 2023.02.24