Arquivo da tag: Spring

Spring MVC @PathVariable with dot (.) is getting truncated

As far as i know this issue appears only for the pathvariable at the end of the requestmapping.

We were able to solve that by defining the regex addon in the requestmapping.


Share and Enjoy !



Spring Profiles

Spring Profiles provide a way to segregate parts of your application configuration and make it only available in certain environments. Any @Component or @Configuration can be marked with @Profile to limit when it is loaded:

public class ProductionConfiguration {

    // ...


In the normal Spring way, you can use a Environment property to specify which profiles are active. You can specify the property in any of the usual ways, for example you could include it in your,hsqldb

or specify on the command line using the switch,hsqldb.

Share and Enjoy !



Spring JDBC Create Temp Table

package spring.test;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.DataAccessResourceFailureException;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.datasource.SingleConnectionDataSource;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

public class DbTestDao {

  JdbcTemplate jdbcTemplate;
  public void setDataSource(DataSource dataSource) {
    jdbcTemplate = new JdbcTemplate(dataSource);
  @Transactional(readOnly = true)
  public List getCustomers() {
    return jdbcTemplate.query("select id, name, customer_since from customers", 
        new CustomerMapper());
  // NOT Transactional - using Sybase temp tables
  public List getSomeCustomers(final List ids) {
    SingleConnectionDataSource scds = null;
    try {
      scds = new SingleConnectionDataSource(jdbcTemplate.getDataSource().getConnection(), true);
    } catch (SQLException e) {
      throw new DataAccessResourceFailureException("Unable to create single connnection ds", e);
    List results;
    try {
      JdbcTemplate scdsJdbcTemplate = new JdbcTemplate(scds);
      scdsJdbcTemplate.execute("create table #my_ids (id int)");

      scdsJdbcTemplate.batchUpdate("insert into #my_ids(id) values(?)", 
          new BatchPreparedStatementSetter() {

            public int getBatchSize() {
              return ids.size();

            public void setValues(PreparedStatement ps, int i)
                throws SQLException {
              ps.setLong(1, ids.get(i));
      results = scdsJdbcTemplate.query(
          "select id, name, customer_since from customers where id in (select id from #my_ids)", 
          new CustomerMapper()); 
      scdsJdbcTemplate.execute("drop table #my_ids");
    finally {
    return results;
  public class CustomerMapper implements RowMapper {
    public Object mapRow(ResultSet rs, int row) throws SQLException {
      Customer c = new Customer();
      return c;


Share and Enjoy !