Struts 2 + Spring + Hibernate пример интеграции

Пример интеграции Struts 2 + Spring + Hibernate

Скачать -Struts2-Spring-Hibernate-Integration-Example.zip

В этом руководстве показано интегрирование между «Struts2 + Spring + Hibernate». Убедитесь, что вы проверили следующие уроки, прежде чем продолжить.

Смотрите сводку шагов интеграции:

  1. Получить все библиотеки зависимостей (много).

  2. ЗарегистрируйтеContextLoaderListener Spring для интеграции Struts 2 и Spring.

  3. ИспользуйтеLocalSessionFactoryBean Spring для интеграции Spring и Hibernate.

  4. Готово, все подключено.

Смотрите отношения:

Struts 2 <-- (ContextLoaderListener) --> Spring <-- (LocalSessionFactoryBean) --> Hibernate

Это будет очень длинный урок с небольшим объяснением, убедитесь, что вы проверили вышеупомянутые 3 статьи для подробного объяснения.

Учебники Начало ...

Будет создано создание страницы клиента с добавлением функции клиента и списка клиентов. Внешний интерфейс используетStruts 2 для отображения,Spring в качестве механизма внедрения зависимостей иHibernate для выполнения операции с базой данных. Давай начнем…

1. Структура проекта

Структура папок проекта.

Struts2 Spring Hibernate Project Structure

Struts2 Spring Hibernate Project Structure

2. MySQL табличный скрипт

Скрипт таблицы клиента.

DROP TABLE IF EXISTS `example`.`customer`;
CREATE TABLE  `example`.`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;

3.Dependency libraries

Этот учебник запрашивает много библиотек зависимостей.

Struts 2…

        
        
        org.apache.struts
        struts2-core
        2.1.8
        
    
    
            org.apache.struts
        struts2-spring-plugin
        2.1.8
        

MySQL…

        
    
        mysql
        mysql-connector-java
        5.1.9
    

Весна…

    
    
        org.springframework
        spring
        2.5.6
    
    
        org.springframework
        spring-web
        2.5.6
    

Hibernate ...

    
    
        org.hibernate
        hibernate
        3.2.7.ga
    

    
    
        dom4j
        dom4j
        1.6.1
    

    
        commons-logging
        commons-logging
        1.1.1
    

    
        commons-collections
        commons-collections
        3.2.1
    

    
        cglib
        cglib
        2.2
    
    

    
    
        antlr
        antlr
        2.7.7
    
    

4. Hibernate ...

Требуются только файлы модели и отображения, потому что Spring будет обрабатывать конфигурацию Hibernate.

Customer.java - создать класс для таблицы клиентов.

package com.example.customer.model;

import java.util.Date;

public class Customer implements java.io.Serializable {

    private Long customerId;
    private String name;
    private String address;
    private Date createdDate;

    //getter and setter methods
}

Customer.hbm.xml - файл сопоставления гибернации для клиента.





    
        
            
            
        
        
            
        
        
            
        
        
            
        
    

5. Struts 2…

Реализует шаблон проектирования Bo и DAO. Все Bo и DAO будут DI к Spring в файле конфигурации bean-компонента Spring. В DAO make он расширяет SpringHibernateDaoSupport для интеграции интеграции Spring и Hibernate.

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 listCustomer();

}

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;
    //DI via Spring
    public void setCustomerDAO(CustomerDAO customerDAO) {
        this.customerDAO = customerDAO;
    }

    //call DAO to save customer
    public void addCustomer(Customer customer){
        customerDAO.addCustomer(customer);
    }

    //call DAO to return customers
    public List listCustomer(){
        return customerDAO.listCustomer();
    }
}

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 listCustomer();

}

CustomerDAOImpl.java

package com.example.customer.dao.impl;

import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.example.customer.dao.CustomerDAO;
import com.example.customer.model.Customer;

public class CustomerDAOImpl extends HibernateDaoSupport
    implements CustomerDAO{

    //add the customer
    public void addCustomer(Customer customer){
        getHibernateTemplate().save(customer);
    }

    //return all the customers in list
    public List listCustomer(){
        return getHibernateTemplate().find("from Customer");
    }

}

CustomerAction.java - Действие Struts2 больше не нужно для расширенияActionSupport, Spring справится с этим.

package com.example.customer.action;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.example.customer.bo.CustomerBo;
import com.example.customer.model.Customer;
import com.opensymphony.xwork2.ModelDriven;

public class CustomerAction implements ModelDriven{

    Customer customer = new Customer();
    List customerList = new ArrayList();

    CustomerBo customerBo;
    //DI via Spring
    public void setCustomerBo(CustomerBo customerBo) {
        this.customerBo = customerBo;
    }

    public Object getModel() {
        return customer;
    }

    public List getCustomerList() {
        return customerList;
    }

    public void setCustomerList(List customerList) {
        this.customerList = customerList;
    }

    //save customer
    public String addCustomer() throws Exception{

        //save it
        customer.setCreatedDate(new Date());
        customerBo.addCustomer(customer);

        //reload the customer list
        customerList = null;
        customerList = customerBo.listCustomer();

        return "success";

    }

    //list all customers
    public String listCustomer() throws Exception{

        customerList = customerBo.listCustomer();

        return "success";

    }

}

6. Весна…

Здесь почти вся конфигурация сделана, вообще, Spring специализируется на работе по интеграции :).

CustomerBean.xml - объявить компоненты Spring: Action, BO и DAO.




    
        
    

    
        
    

    
        
    

database.properties - объявить детали базы данных.

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/example
jdbc.username=root
jdbc.password=password

DataSource.xml - Создать bean-компонент источника данных.



 
   
     WEB-INF/classes/config/database/properties/database.properties
   


  
    
    
    
    
  

HibernateSessionFactory.xml - Создайте bean-компонентsessionFactory для интеграции Spring и Hibernate.







    
      
    

    
       
         org.hibernate.dialect.MySQLDialect
         true
       
    

    
        
          com/example/customer/hibernate/Customer.hbm.xml
        
    


SpringBeans.xml - Создайте файл конфигурации основного компонента Spring, действуйте как центральное управление компонентом.



    
    
    

    
    

7. Страница JSP

Страница JSP для отображения элемента с тегами Struts 2.

customer.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>





Struts 2 + Spring + Hibernate integration example

Add Customer

All Customers

Customer Id Name Address Created Date


8. struts.xml

Связать все это ~





    

    

        
            pages/customer.jsp
        

        
            pages/customer.jsp
        

    

9. Struts 2 + Spring

Чтобы интегрировать Struts 2 и Spring, просто зарегистрируйте класс слушателяContextLoaderListener, определите параметр «contextConfigLocation», чтобы попросить контейнер Spring проанализировать «SpringBeans.xml» вместо значения по умолчанию «applicationContext.xml. ) s «.

web.xml




  Struts 2 Web Application

  
    struts2
    
      org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    
  

  
    struts2
    /*
  

  
    contextConfigLocation
    /WEB-INF/classes/SpringBeans.xml
  

  
    
      org.springframework.web.context.ContextLoaderListener
    
  

Related