利用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),如何开启数据库访问层;
相关推荐
Spring Boot 是一个由 Pivotal 团队开发的框架,旨在简化 Spring 应用程序的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如 JDBC、MongoDB、RabbitMQ、Quartz 等,使得开发者可以“零配置”地启动项目,...
Spring Boot 是一个由 Pivotal 团队开发的框架,旨在简化 Spring 应用程序的初始设置和开发过程。它集成了大量常用的第三方库配置,如 JDBC、MongoDB、JPA、RabbitMQ、Quartz 等,使得开发者能够快速地创建生产级别...
1. **快速入门**:介绍如何通过最小化配置快速启动一个新的Spring Boot应用,包括使用`spring-boot-starter`起步依赖和`main`方法创建可执行的JAR。 2. **核心特性**:详细解释Spring Boot的核心特性,如自动配置、...
《Spring Boot企业级开发教程》配套资料是一份全面学习Spring Boot技术栈的宝贵资源,它涵盖了从基础到进阶的企业级应用开发知识。这个压缩包包含的教学材料多样,旨在帮助学习者深入理解并掌握Spring Boot的核心...
总的来说,这个压缩包资源为Spring Boot的学习者提供了一个全方位的学习平台,从理论到实践,从基础知识到高级应用,覆盖了企业级开发中可能遇到的各种场景。无论你是初学者还是经验丰富的开发者,都能从中受益匪浅...
Spring Boot 是一个由 Pivotal 团队开发的 Java 框架,旨在简化Spring应用的初始搭建以及开发过程。它预设了许多默认配置,使得开发者能够快速构建可运行的项目,而无需在配置上花费大量时间。本篇文章将深入探讨...
7. **Web开发**:Spring Boot支持使用Spring MVC或Thymeleaf等模板引擎进行Web开发,提供了RESTful API开发的强大支持。 8. **数据访问**:Spring Boot简化了与各种数据库的交互,包括JPA、Hibernate和MyBatis等,...
- **Spring Boot 的目标**:Spring Boot 致力于在快速应用开发领域成为领导者,通过提供一套完整的、可插拔的启动器依赖项来简化开发过程。这些启动器包含一组预配置好的库,可以极大地减少项目初期的配置工作量。 ...
《Spring Boot-实战》这本书是针对Java开发人员的一份实用指南,主要聚焦于Spring Boot框架的应用与实践。Spring Boot是Spring生态系统中的一个关键组件,它旨在简化Spring应用程序的初始搭建以及开发过程,使得...
总的来说,"Spring Boot系列教程入门"将涵盖以上知识点,并逐步教你如何从零开始搭建和运行一个完整的Spring Boot应用,包括配置、依赖管理、数据访问、Web开发和部署等方面,让你快速成为Spring Boot开发的行家里手...
在现代Web开发领域,Spring Boot和Vue3已经成为构建高效、可扩展应用的热门选择。本项目实战将深入讲解如何结合这两个强大的技术栈,实现一个全栈应用。下面,我们将详细探讨Spring Boot后端框架与Vue3前端框架的...
Spring Boot 是一款基于 Spring 架构的全新框架,它极大地简化了基于 Spring 的应用开发。Spring Boot 旨在提供快速应用开发所需的“一站式”解决方案。其目标是简化新Spring应用的初始搭建以及开发过程。 ##### 一...
Spring Boot是Java开发领域的一款热门框架,它简化了Spring应用的初始搭建以及开发过程,使得开发者可以更快地创建健壮的、独立的Spring应用程序。这个"Spring Boot入门培训"资料显然是针对初学者设计的,旨在帮助...
Spring Boot是Java领域的一款热门框架,它简化了Spring应用程序的初始搭建以及开发过程。通过内嵌Servlet容器(如Tomcat或Jetty),Spring Boot能够快速启动并运行。本教程将带你深入了解Spring Boot开发的基础知识...
Spring Boot是Java领域中的一个热门框架,它极大地简化了Spring应用程序的初始搭建以及开发过程,旨在“开箱即用”,让开发者能够快速构建可运行的Java应用。 这本书首先会介绍Spring Boot的基础概念,包括其核心...
《Spring Boot 入门到实战》是一门针对初学者精心设计的课程,旨在帮助开发者快速掌握Spring Boot这一强大且流行的Java开发框架。Spring Boot简化了Spring应用的初始搭建以及开发过程,通过“约定优于配置”的理念,...
3. **Web 开发**:讲解如何使用 Spring Boot 开发 Web 应用,包括 RESTful API 和 Thymeleaf 模板引擎的使用。 4. **数据访问**:涵盖 Spring Data JPA 和 Hibernate 的集成,以及如何操作数据库,包括事务管理。 ...
《Spring Boot实战》是针对JavaEE开发领域的一本权威指南,Spring Boot作为JavaEE开发的颠覆者,极大地简化了传统JavaEE应用的复杂性,提高了开发效率。这本书全面覆盖了Spring Boot的核心概念、配置以及实战应用,...
Spring Boot 是一个由 Pivotal 团队开发的 Java 框架,旨在简化创建独立的、生产级别的基于 Spring 的应用。它通过提供默认配置来消除大量的样板代码,使得开发者可以更快地构建应用程序。Spring Boot 基于 Spring ...
Spring Boot 是一个由 Pivotal 团队开发的框架,旨在简化Spring应用的初始搭建以及开发过程。它集成了大量的常用第三方库配置,如数据源、JPA、定时任务、缓存、邮件服务等,使得开发者可以“零”配置启动项目,极大...