利用Spring Boot快速搭建一个web应用,简直是太方便了。本例快速搭建一个spring mvc应用,为前端提供api请求接口,不包含web页面,数据库持久层采用默认的spring-jdbc。
一、环境准备:
1.安装maven及ide(eclipse或idea)并安装maven插件;
2.mysql或其他数据库(本例使用mysql);
3.jdk1.8+
二、建立工程
步骤:1.编辑pom.xml文件添加spring-boot依赖
2.编写启动类(AppMain.java)
3.编写Controller路由类(LoginController.java)
4.启动测试
1.在ide里建立一个简单maven工程,编辑pom.xml文件,内容如下:
<?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.zweichxu.springboot</groupId> <artifactId>spring-boot-web</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>spring-boot-web</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.1.RELEASE</version> <relativePath/> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <!-- 创建一个web应用,默认j2ee容器是spring boot内置的tomcat, 默认访问端口是8080,默认访问context-path是“/” --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>21.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> <version>1.3.8.RELEASE</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>true</executable> </configuration> </plugin> </plugins> </build> </project>
2.建立应用启动类(AppMain.java),也是应用启动入口:
package com.zweichxu.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * * @author zweichxu * @date 2017年3月30日 14:12:41 * @version 1.0 */ @SpringBootApplication public class AppMain { public static void main(String[] args){ SpringApplication.run(AppMain.class, args); } }
spring boot应用只允许惟一一个类拥有public static void main(String[] args)方法。该类最主要的是@SpringBootApplication注解,该注解是@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan三个注解的组合。三个注解的功能,从名字上可以猜测出来,不多解释。
启动spring boot应用只需要一句代码:SpringApplication.run(AppMain.class, args);
3. 建立Controller类(LoginController.java)接收客户端请求
package com.zweichxu.springboot.controller; import javax.annotation.Resource; import javax.servlet.http.HttpSession; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import com.zweichxu.platform.entity.BaseResp; import com.zweichxu.platform.util.Util; import com.zweichxu.springboot.model.User; @RestController public class LoginController { @RequestMapping(value="login") public BaseResp doLogin(@RequestParam("acct") String userName, @RequestParam("pwd") String password){ if (Util.isEmpty(userName) || Util.isEmpty(password)){ return BaseResp.fail(BaseResp.RET_CODE_PROTOCOL_ERROR, "用户名及密码均不能为空"); } //do something User user = new User(); user.setName("小王"); user.setAccount(userName); return BaseResp.success().setRetMsg("登录成功").addProperty("loginUser", user); } @RequestMapping(value="logout") public BaseResp doLogout(){ //do something return BaseResp.success().setRetMsg("登出成功"); } }
注意:所有需要通过注解自动注入的类(如LoginController类,有@RestController注解),都必须放在启动类所在的包(com.zweichxu.springboot)或子包(如com.zweichxu.springboot.controller)下面,否则需要指定扫描路径。
返回值基础类(BaseResp.java)
package com.zweichxu.platform.entity; import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonIgnore; /** * 响应信息基础类 * * @author zweichxu * */ public class BaseResp extends HashMap<String, Object> { private static final long serialVersionUID = -4036551233822181281L; public BaseResp() { this(0, ""); } public BaseResp(Integer retCode) { setRetCode(retCode); } public BaseResp(Integer retCode, String retMsg) { setRetCode(retCode); setRetMsg(retMsg); } public String getToken(){ return (String) get("token"); } public BaseResp setToken(String token){ put("token", token); return this; } public Integer getRetCode(){ return (Integer) get("retCode"); } public BaseResp setRetCode(Integer retCode){ put("retCode", retCode); return this; } public String getRetMsg(){ return (String) get("retMsg"); } public BaseResp setRetMsg(String retMsg){ put("retMsg", retMsg); return this; } public BaseResp addProperty(String propName, Object propValue){ put(propName, propValue); return this; } @JsonIgnore public boolean isFail() { return !(isSuccess()); } @JsonIgnore public boolean isSuccess() { Integer retCode = getRetCode(); return retCode != null && retCode == RETURN_SUCCESS; } public static BaseResp success(){ return new BaseResp(RETURN_SUCCESS, "操作成功"); } public static BaseResp success(String retMsg){ BaseResp resp = success(); resp.setRetMsg(retMsg); return resp; } public static BaseResp fail(Integer retCode, String retMsg){ return new BaseResp(retCode, retMsg); } public static BaseResp fail(String retMsg){ return new BaseResp(RETURN_FAILURE, retMsg); } /**操作成功*/ public static final int RETURN_SUCCESS = 1; /**操作失败*/ public static final int RETURN_FAILURE = 0; /**数据记录不存在:0x00001002*/ public static final int DATA_NOT_EXIST = 0x00001002; /**返回码:协议参数错误:0x00002001*/ public static final int RET_CODE_PROTOCOL_ERROR = 0x00002001; }
4.启动应用:在ide上直接运行AppMain.java类,然后在浏览器地址栏访问:http://localhost:8080/login?acct=zweichxu&pwd=123,可以看到浏览器页面返回值:
至此,一个简单的web应用搭建成功。
下一篇介绍如何修改访问端口(上面浏览器图片中可以看出,我已将默认的8080端口改成了18081),如何开启数据库访问层;
相关推荐
API Document Generate Spring Boot Project 如何使用 1. 编译安装 mvn clean install 2.添加依赖至WEB项目 <groupId>top.webdevelop.gull <artifactId>spring-boot-starter-api-doc <version>1.0.RELEASE 3. ...
Spring Boot简化了基于Spring的应用开发,通过少量的代码就能创建一个独立的、产品级别的Spring应用。 Spring Boot为Spring平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。多数Spring Boot应用只...
若依是一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot、Spring Security、MyBatis、Jwt、Vue),内置模块如:部门管理、角色用户、菜单及按钮授权、数据权限、系统参数、日志管理、代码生成等。...
Spring Boot整合MyBatis实现Restfull API实例,具体原理请参考笔者专栏Spring Boot从入门到精通
Spring Boot入门套件适用于Spring Boot应用程序的生产就绪入门工具包。目录哲学为了减少复杂性和依赖性,Spring Boot进行了大量工作,从而大大减轻了我们以前的保留。 如果您生活在Spring生态系统中,并且正在转向...
Spring Boot 实践折腾记的代码实现package说明:boot学习Spring Boot的文章集合入门Web应用操作数据库序列化API化Spring Boot 实践折腾记(8):极速简化MVCSpring Boot 实践折腾记(9):快速构建 Web API响应式...
开发您的第一个Spring Boot应用程序 11.1.创建POM 11.2.添加Classpath依赖项 11.3.编写代码 11.3.1.@RestController和@RequestMapping Annotations 11.3.2.@EnableAutoConfiguration注释 11.3.3....
了解并喜欢Spring Boot的强大功能-展示了其所有功能,这些内容包括开发一个管理待办事项的Web应用程序和用于调查问卷的基本API。 还涵盖单元测试,模拟和集成测试。 介绍 Spring Boot拥有很多魔力。 用它开发应用...
Spring Boot 是用于开发 REST API 和微服务的排名第一的 Java 框架。 Azure 是当今顶级云服务提供商之一。 通过使用 Azure Web Apps 和 Azure App Service 将 Spring 应用程序部署到云来学习 Azure 怎么样? 入门 ...
chapter1:基本项目构建(可作为工程脚手架),引入web模块,完成一个简单的RESTful API 使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程 工程配置 chapter2-1-1:配置文件详解:自定义属性、...
Spring Boot是用于开发REST API和微服务的第一号Java框架。 AWS(Amazon Web Services)是当今的第一大云服务提供商。 如何通过使用Elastic Beanstalk将Spring应用程序部署到云来学习AWS?入门安装指南必备工具适用...
Spring Boot应用程序模板/入门项目 比Maven原型更好的唯一事情是回购,您可以将已经设置的所有内容分叉,以加快基于Spring Boot的新Web应用程序的创建,而只是分叉和编码。 该存储库包含用于引导Monolithic Web...
在上给我发消息watsonwork-spring-boot 使用Spring Boot编写的Watson Work Services应用程序。 该项目允许应用程序连接到Watson Work Services,以通过Webhook API接收和发送消息。 该项目的主要目的是使第三方应用...
* 核心框架:Spring Boot + Spring Cloud * 视图框架:Spring MVC * 页面引擎:Thymeleaf * ORM 框架:tk.mybatis 简化 MyBatis 开发 * 数据库连接池:Alibaba Druid * 数据库缓存:Redis Sentinel * 消息中间件:...
基于Spring Boot、Mybatis、MySQL、Lombok、Web Bluetooth API、Thymeleaf、AdminLTE3、JqGrid 的RIREE交互系统 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一...
带有Vue JS的Spring BOOT Rest API描述该基于Web的应用程序是为满足Kodluyoruz训练营毕业标准而开发的。 为此,使用Java Spring Boot框架开发了Rest API。 用于用户界面开发的Vue JS框架。 用于API请求的Axios。 该...
推荐工具:-OpenWrite:Markdown微信编辑器是一种... 二,系列文章目录『Spring Boot 2快速教程』『基础-入门篇』『基础-Web业务开发篇』Spring Boot使用Swagger2构建RESRful API文档Spring Boot集成JSP 弹簧靴集成胸腺
reCAPTCHA Spring Boot入门 要使用启动程序,您将需要一个reCAPTCHA站点密钥和一个秘密密钥。 要获取它们,请转到并设置您的reCAPTCHA。 正在安装 repositories { mavenCentral() } dependencies { compile group...
本实验课程将教您设置端到端 Spring Boot 应用程序,该应用程序使用 REST API 公开 PostgresQL 数据库。 实验室包含三个部分,不同的 Git 分支建立在上一部分的工作之上,所以如果你卡住了,你可以随时检查下一个...
Sprint Boot子大师班了解并喜欢Spring Boot的强大功能-展示了其所有功能,这些内容包括开发一个管理待办事项的Web应用程序和用于调查问卷的基本API。 还涵盖单元测试,模拟和集成测试。概述介绍Spring Boot具有很多...