目录
本文概览:介绍了搭建一个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 &
(全文完)