目录
本文概览:介绍了搭建一个Spring boot的实例。视图层支持json和velocity两种。对于视图模板Jsp/Velocity/Thymeleaf/Freemarker,只能在项目中支持一种,这里采用Velocity模板。
1 优点
1、搭建web工程不需要在配置xml。只需要配置properties
2、不需要配置tomcat,内嵌了tomcat,执行要打包成jar,然后执行java jar就可以了。
2 工程概览
一个项目结构如下图:

3 配置文件
3.1 配置pom.xml
需要注意的如下:
- <packaing>设置为jar
具体内容如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">     <modelVersion>4.0.0</modelVersion>     <groupId>com.heartthinkdo.template</groupId>     <artifactId>springbootTemplate</artifactId>     <version>1.0-SNAPSHOT</version>     <packaging>jar</packaging>     <name>springBootTemplate</name>     <parent>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-parent</artifactId>         <version>1.4.4.RELEASE</version>         <relativePath/> <!-- lookup parent from repository -->     </parent>     <properties>         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>         <java.version>1.7</java.version>         <log4j2.version>2.5</log4j2.version>         <mysql-connector.version>5.1.35</mysql-connector.version>         <guava.version>17.0</guava.version>         <apache-common3.version>3.2.1</apache-common3.version>         <joda-time.version>2.3</joda-time.version>         <junit.version>4.8.2</junit.version>     </properties>     <dependencies>         <!-- Spring boot配置 beg-->         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-web</artifactId>         </dependency>         <!-- Spring boot配置 end-->         <!-- 视图模板Jsp/Velocity/Thymeleaf/Freemarker  beg-->         <!--引入velocity的依赖包,spring自4.3开始废弃velocity-->         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-velocity</artifactId>         </dependency>         <!--引入thymeleaf的依赖包-->         <!--<dependency>-->         <!--<groupId>org.springframework.boot</groupId>-->         <!--<artifactId>spring-boot-starter-thymeleaf</artifactId>-->         <!--</dependency>-->         <!-- 引入Freemarker 依赖 -->         <!--<dependency>-->         <!--<groupId>org.springframework.boot</groupId>-->         <!--<artifactId>spring-boot-starter-freemarker</artifactId>-->         <!--</dependency>-->         <!-- 视图模板Jsp/Velocity/Thymeleaf/Freemarker  end-->         <!-- 访问数据层jpa beg-->         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-data-jpa</artifactId>         </dependency>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-data-rest</artifactId>         </dependency>         <!-- 访问数据层jpa end-->         <!-- mysql beg-->         <dependency>             <groupId>mysql</groupId>             <artifactId>mysql-connector-java</artifactId>             <version>${mysql-connector.version}</version>         </dependency>         <!-- mysql end -->         <!-- 配置logback beg-->         <dependency>             <groupId>org.slf4j</groupId>             <artifactId>slf4j-api</artifactId>             <version>1.7.21</version>         </dependency>         <dependency>             <groupId>ch.qos.logback</groupId>             <artifactId>logback-classic</artifactId>             <version>1.1.7</version>         </dependency>         <dependency>             <groupId>ch.qos.logback</groupId>             <artifactId>logback-core</artifactId>             <version>1.1.7</version>         </dependency>         <!-- 配置logback end-->         <!--配置guava beg-->         <dependency>             <groupId>com.google.guava</groupId>             <artifactId>guava</artifactId>             <version>${guava.version}</version>         </dependency>         <!--配置guava end-->         <dependency>             <groupId>org.apache.commons</groupId>             <artifactId>commons-lang3</artifactId>             <version>${apache-common3.version}</version>         </dependency>         <dependency>             <groupId>junit</groupId>             <artifactId>junit</artifactId>             <version>${junit.version}</version>             <scope>test</scope>         </dependency>         <dependency>             <groupId>org.apache.commons</groupId>             <artifactId>commons-csv</artifactId>             <version>1.1</version>         </dependency>     </dependencies>     <build>         <plugins>             <plugin>                 <groupId>org.springframework.boot</groupId>                 <artifactId>spring-boot-maven-plugin</artifactId>             </plugin>         </plugins>     </build> </project> | 
3.2 application.properties
文件内容如下:
| 1 2 3 4 5 | spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mall_db?characterEncoding=gbk&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&autoReconnect=true spring.datasource.username=root spring.datasource.password=53061208 logging.config=classpath:logback.xml server.port = 8088 | 
注意:需要配置数据库信息,如果不配置就会出现“Cannot determine embedded database driver class for database type NONE”。
还有一种方法可以避免出现这个错误,就是在@SpringBootApplication中添加“exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})”,如下
| 1 2 | @SpringBootApplication(scanBasePackages = {"com.wuzhonghu.template.springboottemplate"}, exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class}) | 
4 代码
4.1 Application
需要定义一个Application类作为项目的启动入口,如下
| 1 2 3 4 5 6 7 | @SpringBootApplication(scanBasePackages = {"com.wuzhonghu.template.springboottemplate"}) @ServletComponentScan public class Application {     public static void main(String[] args) {         SpringApplication.run(Application.class, args);     } } | 
4.2 控制器
定义一个测试的Controller,如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | @Controller public class HelloController {     @RequestMapping("/helloJson")     @ResponseBody     public ResponseDemo helloJson(){         ResponseDemo demo = new ResponseDemo();         demo.setMessage("success");         demo.setResultCode("000");         return demo;     }     @RequestMapping("/helloVm")     public String helloVm(){         return "helloVm";     } } | 
5 执行
5.1 IDE执行
直接ide执行Application中的main函数即可以。启动之后,在浏览器输入:http://127.0.0.1:8088/helloJson ,得到如下结果
| 1 2 3 4 | {     "resultCode": "000",     "message": "success" } | 
5.2 通过命令执行
步骤如下:
- 在项目中执行mvn clean package。
- 把生成springbootTemplate-1.0-SNAPSHOT.jar 拷贝到某一个文件夹,如下/home/web目录下面
- 在/home/web目录下面执行
 1nohup /home/pay/soft/jdk1.7.0_79/bin/java -jar springbootTemplate-1.0-SNAPSHOT.jar >output 2>&1 &
(全文完)






