add spring tutorial
diff --git a/spring-tutorial/pom.xml b/spring-tutorial/pom.xml
index 18a46d0..73a95c4 100644
--- a/spring-tutorial/pom.xml
+++ b/spring-tutorial/pom.xml
@@ -29,11 +29,35 @@
       <artifactId>spring-boot-starter-web</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-data-jpa</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-actuator</artifactId>
+    </dependency>
+<!--
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-freemarker</artifactId>
+    </dependency>
+-->
+    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>3.8.1</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>com.h2database</groupId>
+      <artifactId>h2</artifactId>
+      <version>1.4.178</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
+      <version>3.1</version>
+    </dependency>
   </dependencies>
 
   <build>
@@ -42,6 +66,16 @@
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
       </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>exec-maven-plugin</artifactId>
+        <version>1.3</version>
+        <configuration>
+          <includeProjectDependencies>true</includeProjectDependencies>
+          <mainClass>org.h2.tools.Server</mainClass>
+          <commandlineArgs>-baseDir ${basedir}</commandlineArgs>
+        </configuration>
+      </plugin>
     </plugins>
   </build>
 </project>
diff --git a/spring-tutorial/src/main/java/com/supwisdom/tutorial/App.java b/spring-tutorial/src/main/java/com/supwisdom/tutorial/App.java
deleted file mode 100644
index d3bac10..0000000
--- a/spring-tutorial/src/main/java/com/supwisdom/tutorial/App.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.supwisdom.tutorial;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * Hello world!
- */
-@RestController
-@EnableAutoConfiguration
-public class App {
-  @RequestMapping("/")
-  String home() {
-    return "Hello World!";
-  }
-
-  public static void main(String[] args) throws Exception {
-    SpringApplication.run(App.class, args);
-  }
-}
diff --git a/spring-tutorial/src/main/java/com/supwisdom/tutorial/Application.java b/spring-tutorial/src/main/java/com/supwisdom/tutorial/Application.java
new file mode 100644
index 0000000..db15ff7
--- /dev/null
+++ b/spring-tutorial/src/main/java/com/supwisdom/tutorial/Application.java
@@ -0,0 +1,17 @@
+package com.supwisdom.tutorial;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+
+@ComponentScan
+@EnableAutoConfiguration
+@EnableJpaRepositories
+public class Application {
+
+  public static void main(String[] args) throws Exception {
+    ConfigurableApplicationContext context = SpringApplication.run(Application.class, args);
+  }
+}
diff --git a/spring-tutorial/src/main/java/com/supwisdom/tutorial/domain/Event.java b/spring-tutorial/src/main/java/com/supwisdom/tutorial/domain/Event.java
new file mode 100644
index 0000000..7864453
--- /dev/null
+++ b/spring-tutorial/src/main/java/com/supwisdom/tutorial/domain/Event.java
@@ -0,0 +1,83 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
+ * indicated by the @author tags or express copyright attribution
+ * statements applied by the authors.  All third-party contributions are
+ * distributed under license by Red Hat Inc.
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA  02110-1301  USA
+ */
+package com.supwisdom.tutorial.domain;
+
+import java.util.Date;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+
+import org.hibernate.annotations.GenericGenerator;
+
+@Entity
+@Table(name = "EVENTS")
+public class Event {
+  private Long id;
+
+  private String title;
+  private Date date;
+
+  public Event() {
+    // this form used by Hibernate
+  }
+
+  public Event(String title, Date date) {
+    // for application use, to create new events
+    this.title = title;
+    this.date = date;
+  }
+
+  @Id
+  @GeneratedValue(generator = "increment")
+  @GenericGenerator(name = "increment", strategy = "increment")
+  public Long getId() {
+    return id;
+  }
+
+  private void setId(Long id) {
+    this.id = id;
+  }
+
+  @Temporal(TemporalType.TIMESTAMP)
+  @Column(name = "EVENT_DATE")
+  public Date getDate() {
+    return date;
+  }
+
+  public void setDate(Date date) {
+    this.date = date;
+  }
+
+  public String getTitle() {
+    return title;
+  }
+
+  public void setTitle(String title) {
+    this.title = title;
+  }
+}
diff --git a/spring-tutorial/src/main/java/com/supwisdom/tutorial/web/HelloWorldController.java b/spring-tutorial/src/main/java/com/supwisdom/tutorial/web/HelloWorldController.java
new file mode 100644
index 0000000..4f1c670
--- /dev/null
+++ b/spring-tutorial/src/main/java/com/supwisdom/tutorial/web/HelloWorldController.java
@@ -0,0 +1,23 @@
+package com.supwisdom.tutorial.web;
+
+import org.hibernate.SessionFactory;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * Hello world!
+ */
+@RestController
+public class HelloWorldController {
+  
+  protected SessionFactory sessionFactory;
+  
+  protected JdbcTemplate jdbcTemplate;
+  
+  @RequestMapping("/")
+  String home() {
+    return "Hello World!";
+  }
+
+}
diff --git a/spring-tutorial/src/main/resources/application.properties b/spring-tutorial/src/main/resources/application.properties
new file mode 100644
index 0000000..3608e37
--- /dev/null
+++ b/spring-tutorial/src/main/resources/application.properties
@@ -0,0 +1,4 @@
+spring.datasource.driverClassName=org.h2.Driver
+spring.datasource.url=jdbc:h2:tcp://localhost/test
+spring.datasource.username=sa
+spring.datasource.password=
\ No newline at end of file
diff --git a/spring-tutorial/src/main/resources/logback.xml b/spring-tutorial/src/main/resources/logback.xml
new file mode 100644
index 0000000..335ce65
--- /dev/null
+++ b/spring-tutorial/src/main/resources/logback.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<configuration debug="false">
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <encoder>
+      <pattern>%d{MM-dd HH:mm:s} %-5level %logger{36} - %msg%n</pattern>
+    </encoder>
+  </appender>
+  <root level="INFO">
+    <appender-ref ref="STDOUT" />
+  </root>
+  <!--
+  <logger name="org.hibernate" level="WARN">
+    <appender-ref ref="STDOUT" />
+  </logger>
+  <logger name="org.apache.struts2" level="WARN">
+    <appender-ref ref="STDOUT" />
+  </logger>
+  -->
+</configuration>