title: Spring Boot Batch ResourcelessTransactionManager DataSourceProperties$DataSourceBeanCreationException
body: <p>I'm trying to setup a spring boot batch project that uses a <code>ResourcelessTransactionManager</code> transaction manager using Java Configuration, but I'm having no luck.</p>
  
  <p>The reason I am trying to do this is that I don't want any state persisted, and I'd prefer not to waste memory with hsqldb if I don't want it to begin with.  I have an existing Spring Batch project that is not using Spring Boot, and it is working with no persistance and without hsqldb.</p>
  
  <p>I'm using this <a href="https://github.com/spring-projects/spring-boot/blob/v1.4.0.RELEASE/spring-boot-samples/spring-boot-sample-batch/src/main/java/sample/batch/SampleBatchApplication.java" rel="nofollow noreferrer">sample project</a> as the base (but with hsqldb removed), and this <a href="https://stackoverflow.com/a/25077659/359999">other answer</a> as a reference but I keep getting this exception:</p>
  
  <pre><code>Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Cannot determine embedded database driver class for database type NONE. If you want an embedded database please put a supported one on the classpath. If you have database settings to be loaded from a particular profile you may need to active it (no profiles are currently active).
      at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineDriverClassName(DataSourceProperties.java:218) ~[spring-boot-autoconfigure-1.4.0.RELEASE.jar:1.4.0.RELEASE]
      at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.createDataSource(DataSourceConfiguration.java:42) ~[spring-boot-autoconfigure-1.4.0.RELEASE.jar:1.4.0.RELEASE]
      at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Tomcat.dataSource(DataSourceConfiguration.java:55) ~[spring-boot-autoconfigure-1.4.0.RELEASE.jar:1.4.0.RELEASE]
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_73]
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_73]
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_73]
      at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_73]
      at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
      ... 56 common frames omitted
  </code></pre>
  
  <p>This is what I modified:</p>
  
  <pre><code>@SpringBootApplication
  @EnableBatchProcessing
  @Configuration
  public class SampleBatchApplication {
  
      @Autowired
      private JobBuilderFactory jobs;
  
      @Autowired
      private StepBuilderFactory steps;
  
      @Bean
      protected Tasklet tasklet() {
  
          return new Tasklet() {
              @Override
              public RepeatStatus execute(StepContribution contribution,
                      ChunkContext context) {
                  return RepeatStatus.FINISHED;
              }
          };
  
      }
  
      @Bean
      public Job job() throws Exception {
          return this.jobs.get("job").start(step1()).build();
      }
  
      @Bean
      protected Step step1() throws Exception {
          return this.steps.get("step1").tasklet(tasklet()).build();
      }
  
  
      public static void main(String[] args) throws Exception {
          // System.exit is common for Batch applications since the exit code can be used to
          // drive a workflow
          System.exit(SpringApplication
                  .exit(SpringApplication.run(SampleBatchApplication.class, args)));
      }
  
      @Bean
      ResourcelessTransactionManager transactionManager() {
          return new ResourcelessTransactionManager();
      }
  
      @Bean
      public JobRepository getJobRepo() throws Exception {
          return new MapJobRepositoryFactoryBean(transactionManager()).getObject();
      }
  
  }
  </code></pre>
  
  <p>What do I need to do to make it use the <code>ResourcelessTransactionManager</code>?</p>
  
  <p>EDIT: Added clarity around why I want the ResourcelessTransactionManager to work.</p>