Posts tagged Spring
Spring + Hibernate Tutorial
Filed under Spring
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);
Spring + Sitemesh
Filed under Spring
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>
Spring Locale Change
Filed under Spring
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