Refactor Hibernate configuration to use a static local environment variable and simplify controller instantiation
This commit is contained in:
@@ -18,7 +18,11 @@ import org.hibernate.SessionFactory;
|
||||
import java.util.List;
|
||||
|
||||
public class App {
|
||||
|
||||
public static final boolean LOCAL_ENVIRONMENT = true;
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
System.out.println("Démarrage de l'application");
|
||||
|
||||
RestClient client = new RestClient();
|
||||
@@ -30,7 +34,7 @@ public class App {
|
||||
System.out.println("Erreur lors du démarrage du serveur : " + e.getMessage());
|
||||
}
|
||||
|
||||
SessionFactory sessionFactory = new HibernateConfig(true).getSessionFactory();
|
||||
SessionFactory sessionFactory = new HibernateConfig().getSessionFactory();
|
||||
|
||||
UserService userService = new UserService(new UserDao(sessionFactory));
|
||||
ArticleService articleService = new ArticleService(new ArticleDao(sessionFactory));
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.humanbooster.config;
|
||||
|
||||
import com.humanbooster.App;
|
||||
import org.hibernate.SessionFactory;
|
||||
import org.hibernate.boot.Metadata;
|
||||
import org.hibernate.boot.MetadataSources;
|
||||
@@ -12,17 +13,11 @@ import jakarta.persistence.Entity;
|
||||
|
||||
public class HibernateConfig {
|
||||
|
||||
private final boolean isLocalEnvironment;
|
||||
|
||||
public HibernateConfig(boolean isLocalEnvironment) {
|
||||
this.isLocalEnvironment = isLocalEnvironment;
|
||||
}
|
||||
|
||||
public SessionFactory getSessionFactory() {
|
||||
|
||||
SessionFactory sessionFactory;
|
||||
|
||||
if (isLocalEnvironment) {
|
||||
if (App.LOCAL_ENVIRONMENT) {
|
||||
|
||||
Configuration config = new Configuration()
|
||||
.setProperty("hibernate.connection.url", "jdbc:mysql://127.0.0.1:3306/testdb")
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.humanbooster.controller;
|
||||
|
||||
import com.humanbooster.config.HibernateConfig;
|
||||
import com.humanbooster.dao.ArticleDao;
|
||||
import com.humanbooster.dao.GenericDao;
|
||||
import com.humanbooster.model.Article;
|
||||
import jakarta.ws.rs.Path;
|
||||
@@ -8,7 +10,11 @@ import org.hibernate.SessionFactory;
|
||||
@Path("/articles")
|
||||
public class ArticleController extends GenericControllerImpl<Article, Long> {
|
||||
|
||||
public ArticleController() {
|
||||
this(new HibernateConfig().getSessionFactory(), new ArticleDao(new HibernateConfig().getSessionFactory()));
|
||||
}
|
||||
|
||||
public ArticleController(SessionFactory sessionFactory, GenericDao<Article, Long> dao) {
|
||||
super(sessionFactory,dao);
|
||||
super(sessionFactory, dao);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.humanbooster.controller;
|
||||
|
||||
import com.humanbooster.config.HibernateConfig;
|
||||
import com.humanbooster.dao.GenericDao;
|
||||
import jakarta.ws.rs.*;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
@@ -9,7 +10,7 @@ import java.util.List;
|
||||
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
public abstract class GenericControllerImpl<T, ID> implements GenericController<T, ID>, GenericDao<T, ID> {
|
||||
public abstract class GenericControllerImpl<T, ID> implements GenericController<T, ID>, GenericDao<T, ID> {
|
||||
|
||||
protected final SessionFactory sessionFactory;
|
||||
private final GenericDao<T, ID> dao;
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
package com.humanbooster.controller;
|
||||
|
||||
import com.humanbooster.config.HibernateConfig;
|
||||
import com.humanbooster.dao.GenericDao;
|
||||
import com.humanbooster.dao.UserDao;
|
||||
import com.humanbooster.model.User;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.ws.rs.*;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
import org.hibernate.SessionFactory;
|
||||
@@ -16,7 +14,7 @@ import org.hibernate.SessionFactory;
|
||||
public class UserController extends GenericControllerImpl<User, Long> {
|
||||
|
||||
public UserController() {
|
||||
this(HibernateConfig.getSessionFactory(), new UserDao(HibernateConfig.getSessionFactory()));
|
||||
this(new HibernateConfig().getSessionFactory(), new UserDao(new HibernateConfig().getSessionFactory()));
|
||||
}
|
||||
|
||||
public UserController(SessionFactory sessionFactory, UserDao userDao) {
|
||||
|
||||
Reference in New Issue
Block a user