diff --git a/jsf/pom.xml b/jsf/pom.xml
index c4d4e333a1..2f5d315e41 100644
--- a/jsf/pom.xml
+++ b/jsf/pom.xml
@@ -48,6 +48,17 @@
spring-messaging
${org.springframework.version}
+
+ org.springframework
+ spring-web
+ ${org.springframework.version}
+
+
+ javax.servlet
+ javax.servlet-api
+ provided
+ ${javax.servlet.version}
+
@@ -98,5 +109,8 @@
1.7.13
1.1.3
+
+
+ 3.1.0
\ No newline at end of file
diff --git a/jsf/src/main/java/com/baeldung/springintegration/config/MainWebAppInitializer.java b/jsf/src/main/java/com/baeldung/springintegration/config/MainWebAppInitializer.java
new file mode 100644
index 0000000000..2de647915c
--- /dev/null
+++ b/jsf/src/main/java/com/baeldung/springintegration/config/MainWebAppInitializer.java
@@ -0,0 +1,36 @@
+package com.baeldung.springintegration.config;
+
+import com.sun.faces.config.FacesInitializer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.WebApplicationInitializer;
+import org.springframework.web.context.ContextLoaderListener;
+import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import java.util.Set;
+
+public class MainWebAppInitializer extends FacesInitializer implements WebApplicationInitializer {
+ private static final Logger LOGGER = LoggerFactory.getLogger(MainWebAppInitializer.class);
+
+ @Override
+ public void onStartup(Set> classes, ServletContext servletContext) throws ServletException {
+ super.onStartup(classes, servletContext);
+ }
+
+ /**
+ * Register and configure all Servlet container components necessary to power the web application.
+ */
+ @Override
+ public void onStartup(final ServletContext sc) throws ServletException {
+ LOGGER.info("MainWebAppInitializer.onStartup()");
+ sc.setInitParameter("javax.faces.FACELETS_SKIP_COMMENTS", "true");
+
+ // Create the 'root' Spring application context
+ final AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext();
+ root.register(SpringCoreConfig.class);
+ sc.addListener(new ContextLoaderListener(root));
+ }
+
+}
diff --git a/jsf/src/main/java/com/baeldung/springintegration/config/SpringCoreConfig.java b/jsf/src/main/java/com/baeldung/springintegration/config/SpringCoreConfig.java
new file mode 100644
index 0000000000..a39da3fe25
--- /dev/null
+++ b/jsf/src/main/java/com/baeldung/springintegration/config/SpringCoreConfig.java
@@ -0,0 +1,15 @@
+package com.baeldung.springintegration.config;
+
+import com.baeldung.springintegration.dao.UserManagementDAO;
+import com.baeldung.springintegration.dao.UserManagementDAOImpl;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class SpringCoreConfig {
+
+ @Bean
+ public UserManagementDAO userManagementDAO() {
+ return new UserManagementDAOImpl();
+ }
+}
diff --git a/jsf/src/main/java/com/baeldung/springintegration/controllers/RegistrationBean.java b/jsf/src/main/java/com/baeldung/springintegration/controllers/RegistrationBean.java
index 635e4d48b8..cf8dab5289 100644
--- a/jsf/src/main/java/com/baeldung/springintegration/controllers/RegistrationBean.java
+++ b/jsf/src/main/java/com/baeldung/springintegration/controllers/RegistrationBean.java
@@ -1,6 +1,6 @@
package com.baeldung.springintegration.controllers;
-import com.baeldung.springintegration.dao.IUserManagementDAO;
+import com.baeldung.springintegration.dao.UserManagementDAO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -16,7 +16,7 @@ public class RegistrationBean implements Serializable {
private static final Logger LOGGER = LoggerFactory.getLogger(RegistrationBean.class);
@ManagedProperty(value = "#{userManagementDAO}")
- transient private IUserManagementDAO userDao;
+ transient private UserManagementDAO userDao;
private String userName;
private String operationMessage;
@@ -44,11 +44,11 @@ public class RegistrationBean implements Serializable {
this.userName = userName;
}
- public void setUserDao(IUserManagementDAO userDao) {
+ public void setUserDao(UserManagementDAO userDao) {
this.userDao = userDao;
}
- public IUserManagementDAO getUserDao() {
+ public UserManagementDAO getUserDao() {
return this.userDao;
}
diff --git a/jsf/src/main/java/com/baeldung/springintegration/dao/IUserManagementDAO.java b/jsf/src/main/java/com/baeldung/springintegration/dao/IUserManagementDAO.java
deleted file mode 100644
index bfa50cc998..0000000000
--- a/jsf/src/main/java/com/baeldung/springintegration/dao/IUserManagementDAO.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package com.baeldung.springintegration.dao;
-
-
-/**
- * @author Tayo
- */
-public abstract class IUserManagementDAO implements UserManagementDAO {
-
-
- @Override
- public abstract boolean createUser(String userName);
-
-
-}
diff --git a/jsf/src/main/java/com/baeldung/springintegration/dao/UserManagementDAO.java b/jsf/src/main/java/com/baeldung/springintegration/dao/UserManagementDAO.java
index 8ee8bb906f..2acb4e636d 100644
--- a/jsf/src/main/java/com/baeldung/springintegration/dao/UserManagementDAO.java
+++ b/jsf/src/main/java/com/baeldung/springintegration/dao/UserManagementDAO.java
@@ -1,16 +1,7 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
package com.baeldung.springintegration.dao;
-
-/**
- * @author Tayo
- */
public interface UserManagementDAO {
- public boolean createUser(String newUserData);
-
+ boolean createUser(String newUserData);
}
diff --git a/jsf/src/main/java/com/baeldung/springintegration/dao/UserManagementDAOImpl.java b/jsf/src/main/java/com/baeldung/springintegration/dao/UserManagementDAOImpl.java
index b27aa582e3..56cbdd7b88 100644
--- a/jsf/src/main/java/com/baeldung/springintegration/dao/UserManagementDAOImpl.java
+++ b/jsf/src/main/java/com/baeldung/springintegration/dao/UserManagementDAOImpl.java
@@ -1,12 +1,17 @@
package com.baeldung.springintegration.dao;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Repository;
+
import java.util.ArrayList;
import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import javax.annotation.PostConstruct;
-public class UserManagementDAOImpl extends IUserManagementDAO {
+@Repository
+public class UserManagementDAOImpl implements UserManagementDAO {
+ private static final Logger LOGGER = LoggerFactory.getLogger(UserManagementDAOImpl.class);
private List users;
@@ -19,7 +24,7 @@ public class UserManagementDAOImpl extends IUserManagementDAO {
public boolean createUser(String newUserData) {
if (newUserData != null) {
users.add(newUserData);
- Logger.getAnonymousLogger().log(Level.INFO, "User {0} successfully created", newUserData);
+ LOGGER.info("User {} successfully created", newUserData);
return true;
} else {
return false;
diff --git a/jsf/src/main/webapp/WEB-INF/applicationContext.xml b/jsf/src/main/webapp/WEB-INF/applicationContext.xml
deleted file mode 100644
index 5d162f56ba..0000000000
--- a/jsf/src/main/webapp/WEB-INF/applicationContext.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
diff --git a/jsf/src/main/webapp/WEB-INF/web.xml b/jsf/src/main/webapp/WEB-INF/web.xml
deleted file mode 100644
index 3522338919..0000000000
--- a/jsf/src/main/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
- javax.faces.PROJECT_STAGE
- Production
-
-
- javax.faces.STATE_SAVING_MODE
- SERVER
-
-
- javax.faces.FACELETS_SKIP_COMMENTS
- true
-
-
- Faces Servlet
- javax.faces.webapp.FacesServlet
- 1
-
-
- Faces Servlet
- *.jsf
-
-
-
- 30
-
-
-
- /index.jsf
-
-
-
- org.springframework.web.context.ContextLoaderListener
-
-
-
-