Spring এবং Hibernate দুটি অত্যন্ত জনপ্রিয় এবং শক্তিশালী ফ্রেমওয়ার্ক যা Java-এ এন্টারপ্রাইজ অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়। Spring প্রধানত অ্যাপ্লিকেশনের আর্কিটেকচার এবং ডিপেনডেন্সি ইনজেকশন (DI) এর জন্য ব্যবহৃত হয়, এবং Hibernate একটি ORM (Object-Relational Mapping) ফ্রেমওয়ার্ক যা ডেটাবেসের সাথে কাজ করতে সহজ করে তোলে।
Dynamic Web Project হচ্ছে Eclipse এর একটি প্রোজেক্ট টাইপ, যা জাভা ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য ব্যবহৃত হয়। এখানে Spring এবং Hibernate ইন্টিগ্রেট করার ধাপগুলো দেওয়া হলো।
ধাপ ১: Eclipse এ Dynamic Web Project তৈরি করা
- Eclipse ওপেন করুন এবং File → New → Dynamic Web Project নির্বাচন করুন।
- প্রোজেক্টের নাম দিন, যেমন
SpringHibernateIntegration. - Target Runtime সিলেক্ট করুন (যেমন, Apache Tomcat বা JBoss)।
- Dynamic Web Module Version নির্বাচন করুন (যেমন 3.1 বা 4.0)।
- Finish বাটনে ক্লিক করুন।
এটি আপনার ডাইনামিক ওয়েব প্রোজেক্ট তৈরি করবে।
ধাপ ২: Spring এবং Hibernate Dependencies যোগ করা (Maven বা Library হিসেবে)
Maven ব্যবহার করে Spring এবং Hibernate ডিপেনডেন্সি যোগ করা
যদি আপনি Maven ব্যবহার করতে চান (যা খুবই সুবিধাজনক), তাহলে আপনার প্রোজেক্টে pom.xml ফাইলটি খুলুন এবং নিচের ডিপেনডেন্সি গুলি যোগ করুন:
<dependencies>
<!-- Spring Core Dependency -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.20</version>
</dependency>
<!-- Spring Context Dependency (DI) -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.20</version>
</dependency>
<!-- Hibernate Core Dependency -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.5.6.Final</version>
</dependency>
<!-- Spring ORM Dependency (for Hibernate integration with Spring) -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>5.3.20</version>
</dependency>
<!-- JDBC API for Hibernate -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>8.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
Library হিসেবে JAR যোগ করা
আপনি যদি Maven ব্যবহার না করেন, তাহলে আপনাকে manually JAR ফাইল গুলি ডাউনলোড করে lib ফোল্ডারে রাখতে হবে এবং প্রোজেক্টের Build Path এ যুক্ত করতে হবে।
Spring JARs:
spring-core.jarspring-context.jarspring-orm.jar
Hibernate JARs:
hibernate-core.jarhibernate-entitymanager.jarjavax.persistence.jar
ধাপ ৩: Hibernate কনফিগারেশন তৈরি করা
Hibernate কনফিগারেশন করার জন্য একটি hibernate.cfg.xml ফাইল তৈরি করতে হবে।
src/main/resourcesফোল্ডারেhibernate.cfg.xmlফাইল তৈরি করুন।
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- JDBC Database connection settings -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/your_database</property>
<property name="hibernate.connection.username">your_username</property>
<property name="hibernate.connection.password">your_password</property>
<!-- JDBC connection pool settings -->
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<!-- Specify dialect -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="hibernate.current_session_context_class">thread</property>
<!-- Echo all executed queries to stdout -->
<property name="hibernate.show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- Echo all executed queries to stdout -->
<property name="hibernate.format_sql">true</property>
<!-- Mention annotated class -->
<mapping class="com.yourpackage.YourEntity" />
</session-factory>
</hibernate-configuration>
এখানে আপনি আপনার ডাটাবেসের ডিটেইলস যেমন URL, ইউজারনেম এবং পাসওয়ার্ড যুক্ত করবেন। আপনার Entity ক্লাসের জন্য <mapping class="com.yourpackage.YourEntity"/> এর মধ্যে সঠিক প্যাকেজ এবং ক্লাস নাম যোগ করুন।
ধাপ ৪: Spring কনফিগারেশন তৈরি করা
Spring কনফিগারেশন ফাইল তৈরি করতে, একটি applicationContext.xml ফাইল তৈরি করুন।
src/main/resourcesফোল্ডারেapplicationContext.xmlফাইল তৈরি করুন।
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
<!-- Hibernate SessionFactory Bean -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="packagesToScan" value="com.yourpackage.model"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<!-- Hibernate Transaction Manager -->
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- DataSource Bean -->
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/your_database"/>
<property name="username" value="your_username"/>
<property name="password" value="your_password"/>
</bean>
</beans>
ধাপ ৫: Spring এবং Hibernate Service তৈরি করা
এখন, আপনি Spring এবং Hibernate এর মাধ্যমে একটি Entity ক্লাস এবং DAO (Data Access Object) তৈরি করতে পারেন।
- Entity ক্লাস (যেমন
YourEntity.java):
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class YourEntity {
@Id
private int id;
private String name;
// Getters and Setters
}
- DAO ক্লাস (যেমন
YourEntityDAO.java):
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class YourEntityDAO {
@Autowired
private SessionFactory sessionFactory;
public void save(YourEntity entity) {
Session session = sessionFactory.getCurrentSession();
session.save(entity);
}
// Other CRUD methods
}
ধাপ ৬: Web Application Configuration (Servlet Configuration)
- web.xml ফাইল তৈরি করে Spring DispatcherServlet এবং Hibernate SessionFactory ম্যানেজার কনফিগার করুন।
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<!-- Spring Dispatcher Servlet -->
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Mapping for Dispatcher Servlet -->
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- Hibernate Configuration -->
<!-- Your Hibernate configuration will be handled by Spring configuration -->
</web-app>
ধাপ ৭: Web Application রান করা
সব কনফিগারেশন এবং কোড তৈরি হওয়ার পর, আপনি Tomcat বা আপনার পছন্দের সার্ভারে প্রোজেক্টটি রান করতে পারেন।
সারাংশ:
Eclipse এ Dynamic Web Project এ Spring এবং Hibernate ইন্টিগ্রেশন করার জন্য আপনাকে:
- Maven বা Jar ফাইল ব্যবহার করে ডিপেনডেন্সি যোগ করতে হবে।
- Hibernate কনফিগারেশন (hibernate.cfg.xml) এবং Spring কনফিগারেশন (applicationContext.xml) ফাইল তৈরি করতে হবে।
- Spring-এ Hibernate SessionFactory এবং TransactionManager কনফিগার করতে হবে।
- DAO এবং Entity ক্লাস তৈরি করে Spring এবং Hibernate এর মাধ্যমে ডেটাবেস অপারেশন করতে হবে।
Read more