Beispiel für die Integration von JSF 2.0 + Spring + Hibernate
In diesem langen Artikel erfahren Sie, wie SieJSF 2.0,Spring undHibernate zusammen integrieren. Am Ende des Artikels erstellen Sie eine Seite mit einer Liste der vorhandenen Kunden aus der Datenbank und einer Funktion zum Hinzufügen von Kunden, mit der Benutzer einen neuen Kunden zur Datenbank hinzufügen können.
P.S In this example, we are using MySQL database and deploy to Tomcat 6 web container.
1. Projektstruktur
Verzeichnisstruktur dieses Beispiels


2. Tabellenskript
Erstellen Sie eine Kundentabelle und fügen Sie zwei Dummy-Datensätze ein.
DROP TABLE IF EXISTS `exampledb`.`customer`; CREATE TABLE `exampledb`.`customer` ( `CUSTOMER_ID` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, `NAME` varchar(45) NOT NULL, `ADDRESS` varchar(255) NOT NULL, `CREATED_DATE` datetime NOT NULL, PRIMARY KEY (`CUSTOMER_ID`) ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8; insert into exampledb.customer(customer_id, name, address, created_date) values(1, 'example1', 'address1', now()); insert into exampledb.customer(customer_id, name, address, created_date) values(2, 'example2', 'address2', now());
3. Hibernate Stuff
Eine Modellklasse und eine Hibernate-Zuordnungsdatei für die Kundentabelle.
Datei: Customer.java
package com.example.customer.model;
import java.util.Date;
public class Customer{
public long customerId;
public String name;
public String address;
public Date createdDate;
//getter and setter methods
}
Datei: Customer.hbm.xml
4. Frühlingssachen
Die BO- und DAO-Klassen von Spring für Geschäftslogik und Datenbankinteraktion.
Datei: CustomerBo.java
package com.example.customer.bo;
import java.util.List;
import com.example.customer.model.Customer;
public interface CustomerBo{
void addCustomer(Customer customer);
List findAllCustomer();
}
Datei: CustomerBoImpl.java
package com.example.customer.bo.impl;
import java.util.List;
import com.example.customer.bo.CustomerBo;
import com.example.customer.dao.CustomerDao;
import com.example.customer.model.Customer;
public class CustomerBoImpl implements CustomerBo{
CustomerDao customerDao;
public void setCustomerDao(CustomerDao customerDao) {
this.customerDao = customerDao;
}
public void addCustomer(Customer customer){
customerDao.addCustomer(customer);
}
public List findAllCustomer(){
return customerDao.findAllCustomer();
}
}
Datei: CustomerDao.java
package com.example.customer.dao;
import java.util.List;
import com.example.customer.model.Customer;
public interface CustomerDao{
void addCustomer(Customer customer);
List findAllCustomer();
}
Datei: CustomerDaoImpl.java
package com.example.customer.dao.impl;
import java.util.Date;
import java.util.List;
import com.example.customer.dao.CustomerDao;
import com.example.customer.model.Customer;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class CustomerDaoImpl extends
HibernateDaoSupport implements CustomerDao{
public void addCustomer(Customer customer){
customer.setCreatedDate(new Date());
getHibernateTemplate().save(customer);
}
public List findAllCustomer(){
return getHibernateTemplate().find("from Customer");
}
}
Datei: CustomerBean.xml
5. Frühling + Datenbank
Konfigurieren Sie die Datenbankdetails im Frühjahr.
Datei: db.properties
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/exampledb jdbc.username=root jdbc.password=password
Datei: DataSource.xml
WEB-INF/classes/config/database/db.properties
6. Frühling + Winterschlaf
Integrieren Sie Ruhezustand und Feder überLocalSessionFactoryBean.
Datei: HibernateSessionFactory.xml
7. JSF 2.0
JSF verwaltete Bean, um Spring's BO aufzurufen und Kundendatensätze aus der Datenbank hinzuzufügen oder abzurufen.
Datei: CustomerBean.java
package com.example;
import java.io.Serializable;
import java.util.List;
import com.example.customer.bo.CustomerBo;
import com.example.customer.model.Customer;
public class CustomerBean implements Serializable{
//DI via Spring
CustomerBo customerBo;
public String name;
public String address;
//getter and setter methods
public void setCustomerBo(CustomerBo customerBo) {
this.customerBo = customerBo;
}
//get all customer data from database
public List getCustomerList(){
return customerBo.findAllCustomer();
}
//add a new customer data into database
public String addCustomer(){
Customer cust = new Customer();
cust.setName(getName());
cust.setAddress(getAddress());
customerBo.addCustomer(cust);
clearForm();
return "";
}
//clear form values
private void clearForm(){
setName("");
setAddress("");
}
}
Eine JSF-Seite zum Anzeigen vorhandener Kundendatensätze überh:dataTable und einige Textkomponenten, damit Benutzer neue Kundendatensätze in die Datenbank einfügen können.
Datei: default.xhtml
JSF 2.0 + Spring + Hibernate Example
Customer ID
#{c.customerId}
Name
#{c.name}
Address
#{c.address}
Created Date
#{c.createdDate}
Add New Customer
Name :
Address :
8. JSF 2.0 + Frühling
Integrieren Sie JSF 2.0 in Spring. Weitere Informationen finden Sie hier -JSF 2.0 + Spring integration example
Datei: applicationContext.xml
Datei :aces-config.xml
org.springframework.web.jsf.el.SpringBeanFacesELResolver customer com.example.CustomerBean session customerBo #{customerBo}
Datei: web.xml
JavaServerFaces org.springframework.web.context.ContextLoaderListener org.springframework.web.context.request.RequestContextListener javax.faces.PROJECT_STAGE Development faces/default.xhtml Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet /faces/* Faces Servlet *.jsf Faces Servlet *.faces Faces Servlet *.xhtml
9. Demo
Führen Sie es aus, geben Sie die Kundendaten ein und klicken Sie auf die Schaltfläche "Senden".


Quellcode herunterladen
Laden Sie es herunter -JSF-2-Spring-Hibernate-Integration-Example.zip (19KB)