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