From a0dfb3fa59b6f36e7805ca6782ee191fab95e83c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beatrice=20Dellac=C3=A0?= Date: Wed, 7 Aug 2024 00:57:39 +0200 Subject: [PATCH] use spring boot autowired for service injection --- .../releasehive/resource/AccountResource.java | 9 ++++++--- .../releasehive/service/AccountService.java | 12 ++---------- .../service/AccountServiceImpl.java | 19 +++++++++++++++++++ 3 files changed, 27 insertions(+), 13 deletions(-) create mode 100644 src/main/java/wtf/beatrice/releasehive/service/AccountServiceImpl.java diff --git a/src/main/java/wtf/beatrice/releasehive/resource/AccountResource.java b/src/main/java/wtf/beatrice/releasehive/resource/AccountResource.java index 7a7be06..9d3b0b6 100644 --- a/src/main/java/wtf/beatrice/releasehive/resource/AccountResource.java +++ b/src/main/java/wtf/beatrice/releasehive/resource/AccountResource.java @@ -1,17 +1,20 @@ package wtf.beatrice.releasehive.resource; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import wtf.beatrice.releasehive.util.JsonUtil; import wtf.beatrice.releasehive.model.User; import wtf.beatrice.releasehive.service.AccountService; -import java.util.UUID; - @RequestMapping("/api/v1/users") @RestController public class AccountResource { - private final AccountService accountService = new AccountService(); + private final AccountService accountService; + + public AccountResource(@Autowired AccountService accountService) { + this.accountService = accountService; + } @PostMapping( diff --git a/src/main/java/wtf/beatrice/releasehive/service/AccountService.java b/src/main/java/wtf/beatrice/releasehive/service/AccountService.java index 62976eb..11fcb68 100644 --- a/src/main/java/wtf/beatrice/releasehive/service/AccountService.java +++ b/src/main/java/wtf/beatrice/releasehive/service/AccountService.java @@ -1,17 +1,9 @@ package wtf.beatrice.releasehive.service; -import org.hibernate.Session; -import org.hibernate.Transaction; -import wtf.beatrice.releasehive.db.HibernateManager; import wtf.beatrice.releasehive.model.User; -public class AccountService +public interface AccountService { - public void registerUser(User user) { - Session session = HibernateManager.getSession(); - Transaction transaction = session.beginTransaction(); - session.save(user); - transaction.commit(); - } + void registerUser(User user); } diff --git a/src/main/java/wtf/beatrice/releasehive/service/AccountServiceImpl.java b/src/main/java/wtf/beatrice/releasehive/service/AccountServiceImpl.java new file mode 100644 index 0000000..746c21a --- /dev/null +++ b/src/main/java/wtf/beatrice/releasehive/service/AccountServiceImpl.java @@ -0,0 +1,19 @@ +package wtf.beatrice.releasehive.service; + +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.springframework.stereotype.Service; +import wtf.beatrice.releasehive.db.HibernateManager; +import wtf.beatrice.releasehive.model.User; + +@Service +public class AccountServiceImpl implements AccountService { + + @Override + public void registerUser(User user) { + Session session = HibernateManager.getSession(); + Transaction transaction = session.beginTransaction(); + session.save(user); + transaction.commit(); + } +}