Рубрики
Без рубрики

Стойки 2 + Пружина + Пример интеграции гибернации

– Стойки 2 + Пружина + Пример интеграции гибернации

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

  1. Пример интеграции Struts 2 + гибернация
  2. Пример интеграции стоек 2 + пружины
  3. Стойки 1.пример интеграции x + Spring + Hibernate

Смотрите краткое описание этапов интеграции:

  1. Получите все библиотеки зависимостей (много).
  2. Зарегистрируйте Spring ContextLoaderListener для интеграции стоек 2 и Spring.
  3. Используйте Spring LocalSessionFactoryBean для интеграции Spring и Hibernate.
  4. Готово, все подключено.

Посмотрите на отношения:

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

Учебные пособия Начинаются…

Он создаст страницу клиента с функцией добавления клиента и списка клиентов. Передний конец использует Стойки 2 для отображения, Spring в качестве механизма внедрения зависимостей и Переход в спящий режим для выполнения операции с базой данных. Давайте начнем…

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

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

2. Скрипт таблицы MySQL

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

DROP TABLE IF EXISTS `mkyong`.`customer`;
CREATE TABLE  `mkyong`.`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. Библиотеки зависимостей

В этом учебном пособии запрашивается множество библиотек зависимостей.

Распорки 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
	

Зимовать…

    
	
		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. Зимовать…

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

Customer.java – Создайте класс для таблицы клиентов.

package com.mkyong.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. Распорки 2…

Реализует шаблон проектирования Bo и DAO. Все Bo и DAO будут DI к весне в файле конфигурации Spring bean. В DAO сделайте так, чтобы он расширял поддержку Spring HibernateDaoSupport для интеграции интеграции Spring и Hibernate.

В DAO сделайте так, чтобы он расширял поддержку Spring ||HibernateDaoSupport|| для интеграции интеграции Spring и Hibernate.

package com.mkyong.customer.bo;

import java.util.List;
import com.mkyong.customer.model.Customer;
 
public interface CustomerBo{
	
	void addCustomer(Customer customer);
	List listCustomer();
	
}

В DAO сделайте так, чтобы он расширял поддержку Spring ||HibernateDaoSupport|| для интеграции интеграции Spring и Hibernate.

package com.mkyong.customer.bo.impl;

import java.util.List;
import com.mkyong.customer.bo.CustomerBo;
import com.mkyong.customer.dao.CustomerDAO;
import com.mkyong.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();
	}
}

В DAO сделайте так, чтобы он расширял поддержку Spring ||HibernateDaoSupport|| для интеграции интеграции Spring и Hibernate.

package com.mkyong.customer.dao;

import java.util.List;
import com.mkyong.customer.model.Customer;
 
public interface CustomerDAO{
	
	void addCustomer(Customer customer);
	List listCustomer();	
	
}

В DAO сделайте так, чтобы он расширял поддержку Spring ||HibernateDaoSupport|| для интеграции интеграции Spring и Hibernate.

package com.mkyong.customer.dao.impl;

import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.mkyong.customer.dao.CustomerDAO;
import com.mkyong.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");		
	}
	
}

Реакция клиента.java – Действие Struts2 больше не требуется для расширения поддержки действий , Весна справится с этим.

package com.mkyong.customer.action;

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

import com.mkyong.customer.bo.CustomerBo;
import com.mkyong.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 – Объявите весенние бобы: Действие, БО и ДАО.



 
 	
			
	

	
		
	
	
   	
		
	
 

база данных.свойства – Объявите данные базы данных.

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

DataSource.xml – Создайте компонент источника данных.


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

 
  
	
	
	
	
  
 

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



 


 
    
      
    
 
    
       
         org.hibernate.dialect.MySQLDialect
         true
       
    
 
    
		
          com/mkyong/customer/hibernate/Customer.hbm.xml
		
    	
 


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


	
	
	
	
 
	
	
 

7. Страница JSP

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

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

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



 

Struts 2 + Spring + Hibernate integration example

Add Customer

All Customers

Customer Id Name Address Created Date


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

Свяжите все это~




 

 	
 	
	
		
		
		    pages/customer.jsp
		
	
		
		    pages/customer.jsp
		
		
	
	

9. Стойки 2 + Пружина

Чтобы интегрировать Struts2 и Spring, просто зарегистрируйте ContextLoaderListener класс прослушивателя, определите параметр ” contextConfigLocation “, чтобы попросить контейнер Spring проанализировать ” SpringBeans.xml “вместо значения по умолчанию” applicationContext.xml “.

ContextLoaderListener||класс прослушивателя, определите параметр “||contextConfigLocation ||”, чтобы попросить контейнер Spring проанализировать “|| SpringBeans.xml || “вместо значения по умолчанию” || applicationContext.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
    
  
  

10. Демонстрация

Проверьте это: http://localhost:8080/Struts2Example/listCustomerAction.action

Ссылка

  1. Пример интеграции Struts 2 + гибернация
  2. Пример интеграции стоек 2 + пружины
  3. Пример гибернации Struts 2 + с плагином полного гибернации
  4. Стойки 1.пример интеграции x + Spring + Hibernate

Оригинал: “https://mkyong.com/struts2/struts-2-spring-hibernate-integration-example/”