Posts tagged Spring

Spring + Hibernate Tutorial

dispatcher-servlet.xml
 
    <tx:annotation-driven transaction-manager="transactionManager"/>
 
    <context:property-placeholder location="/WEB-INF/jdbc.properties" />
 
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${database.driver}" />
        <property name="url" value="${database.url}" />
        <property name="username" value="${database.user}" />
        <property name="password" value="${database.password}" />
    </bean>
 
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="annotatedClasses">
            <list>
                <value>gov.bd.nea.db.Test</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
                <prop key="hibernate.connection.pool_size">${hibernate.connection.pool_size}</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">create</prop>                
            </props>
        </property>
    </bean>
 
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
jdbc.properties
 
database.driver=org.apache.derby.jdbc.ClientDriver
database.url=jdbc:derby://localhost:1527/sample
database.user=app
database.password=app
hibernate.dialect=org.hibernate.dialect.DerbyDialect
hibernate.show_sql=true
hibernate.connection.pool_size=5
Test.java
 
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;
 
 
import javax.validation.constraints.NotNull;
 
import org.hibernate.annotations.Proxy;
import org.hibernate.validator.constraints.NotEmpty;
 
/**
 *
 * @author Asif
 */
@Entity
@Table(name = "test")
@Proxy(lazy = false)
public class Test implements Serializable {
 
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    private String name;
    private String sex;
    private String country;
    private String hobby;
 
    @Lob
    @Column(length = 100000)
    private byte[] file;
 
//getter and setter methods
}
TestDaoImpl.java
 
import java.util.List;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
 
/**
 *
 * @author Asif
 */
@Repository("testDao")
public class TestDaoImpl implements TestDao {
 
    @Autowired
    private SessionFactory sessionFactory;
 
    @Override
    public List<Test> getTestList() {
        return (List<Test>) sessionFactory.getCurrentSession().createCriteria(Test.class).list();
 
    }
 
    @Override
    public void save(Test test) {
        sessionFactory.getCurrentSession().saveOrUpdate(test);
    }
 
    @Override
    public Test getTestById(Integer id) {
        return (Test) sessionFactory.getCurrentSession().load(Test.class, id);
    }
}
TestService.java
 
 
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
/**
 *
 * @author Asif
 */
@Service("testService")
@Transactional
public class TestServiceImpl implements TestService {
 
    @Autowired
    private TestDao testDao;
 
    @Override
    public List<Test> getTestList() {
        return testDao.getTestList();
    }
 
    @Override
    public void saveTest(Test test) {
        testDao.save(test);
    }
 
    @Override
    public Test getTestById(Integer id){
        return testDao.getTestById(id);
    }
 
}
TestController.java
 
@Controller
@RequestMapping("/test")
public class TestController {
 
    private static final Logger logger = Logger.getLogger(TestController.class);
 
    @Autowired
    private TestService testService;
 
....
 
.... = testService.getTestById(id);
Comments (0)

Spring + Sitemesh

web.xml
 
<!--Sitemesh-->
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.module.sitemesh.filter.PageFilter
</filter-class>
</filter>
 
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
decorators.xml
 
<?xml version="1.0" encoding="UTF-8"?>
 
<decorators defaultdir="/WEB-INF/jsp/layouts">
<decorator name="main" page="main.jsp">
<pattern>/*</pattern>
</decorator>
 
</decorators>
main.jsp
 
 
<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
 
<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator"%>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
 
<title><decorator:title default="MySite" /></title>
 
</head>
<body>
<h1>Template</h1>
 
<decorator:body />
 
</body>
</html>
Comments (0)

Spring Locale Change

 dispatcher-servlet.xml
 
    <!--Message/Locale-->
 
    <mvc:interceptors>  
        <bean id="localeChangeInterceptor"
    class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
            <property name="paramName" value="lang" />
        </bean>
    </mvc:interceptors>
    <bean id="localeResolver"
    class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
        <property name="defaultLocale" value="es"/>
    </bean>
    <bean id="messageSource"
    class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="/WEB-INF/messages" />
        <property name="defaultEncoding" value="UTF-8"/>
    </bean>
 messages_en_US.properties
 
button.cancel=Cancel
button.create=Create
button.edit=Edit
button.delete=Delete
button.reset=Reset
button.save=Save
button.search=Search
 messages_es.properties
 
button.cancel=Cancelar
button.create=Crear
button.edit=Corregir
button.delete=Borrar
button.reset=Restaurar
button.save=Guardar
button.search=Buscar

To change locale: any url?lang=en

Comments (0)
Go to Top