• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > Spring Boot 入门教程

Spring Boot 入门教程

作者:茶爸爸 字体:[增加 减小] 来源:互联网 时间:2017-05-28

茶爸爸 通过本文主要向大家介绍了spring boot入门,spring boot入门视频,spring boot入门实例,spring boot 快速入门,spring boot教程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

简介

相信很多人都接触spring框架很长时间了,每次搭建spring框架的时候都需要配置好多的jar、xml,做很多繁琐重复的配置,稍微不留神就会出现各种各样的问题,每次调试真的是香菇、蓝瘦啊。

spring boot的出现帮助我们彻底解决了这些jar的依赖,只需要很少的配置就可以完成我们的开发工作,我们可以把自己的应用打包成jar,使用java -jar来运行spring web应用,spring boot集成了很多的web容器。今天给大家介绍一下spring Boot MVC,让我们学习一下如何利用Spring Boot快速的搭建一个简单的web应用。

环境准备

  • 一个称手的文本编辑器(例如Vim、Emacs、Sublime Text)或者IDE(Eclipse、Idea Intellij)
  • Java环境(JDK 1.7或以上版本)
  • Maven 3.0+(Eclipse和Idea IntelliJ内置,如果使用IDE并且不使用命令行工具可以不安装)

一个最简单的Web应用

使用Spring Boot框架可以大大加速Web应用的开发过程,首先在Maven项目依赖中引入spring-boot-starter-web:

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.tianmaying</groupId>
 <artifactId>spring-web-demo</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>jar</packaging>
 <name>spring-web-demo</name>
 <description>Demo project for Spring WebMvc</description>
 <parent>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-parent</artifactId>
 <version>1.2.5.RELEASE</version>
 <relativePath/>
 </parent>
 <properties>
 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 <java.version>1.8</java.version>
 </properties>
 <dependencies>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 </dependencies>
 <build>
 <plugins>
 <plugin>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-maven-plugin</artifactId>
 </plugin>
 </plugins>
 </build>
</project>
</div>

接下来创建src/main/Java/Application.java:

 import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class Application {
 @RequestMapping("/")
 public String greeting() {
 return "Hello World!";
 }
 public static void main(String[] args) {
 SpringApplication.run(Application.class, args);
 }
}
</div>

运行应用:mvn spring-boot:run或在IDE中运行main()方法,在浏览器中访问http://localhost:8080,Hello World!就出现在了页面中。只用了区区十几行Java代码,一个Hello World应用就可以正确运行了,那么这段代码究竟做了什么呢?我们从程序的入口SpringApplication.run(Application.class, args);开始分析:

  • SpringApplication是Spring Boot框架中描述Spring应用的类,它的run()方法会创建一个Spring应用上下文(Application Context)。另一方面它会扫描当前应用类路径上的依赖,例如本例中发现spring-webmvc(由 spring-boot-starter-web传递引入)在类路径中,那么Spring Boot会判断这是一个Web应用,并启动一个内嵌的Servlet容器(默认是Tomcat)用于处理HTTP请求。
  • Spring WebMvc框架会将Servlet容器里收到的HTTP请求根据路径分发给对应的@Controller类进行处理,@RestController是一类特殊的@Controller,它的返回值直接作为HTTP Response的Body部分返回给浏览器。
  • @RequestMapping注解表明该方法处理那些URL对应的HTTP请求,也就是我们常说的URL路由(routing),请求的分发工作是有Spring完成的。例如上面的代码中http://localhost:8080/根路径就被路由至greeting()方法进行处理。如果访问http://localhost:8080/hello,则会出现404 Not Found错误,因为我们并没有编写任何方法来处理/hello请求。

使用@Controller实现URL路由

现代Web应用往往包括很多页面,不同的页面也对应着不同的URL。对于不同的URL,通常需要不同的方法进行处理并返回不同的内容。

匹配多个URL

@RestController
public class Application {
 @RequestMapping("/")
 public String index() {
 return "Index Page";
 }
 @RequestMapping("/hello")
 public String hello() {
 return "Hello World!";
 }
}
</div>

@RequestMapping可以注解@Controller类:

 @RestController
@RequestMapping("/classPath")
public class Application {
 @RequestMapping("/methodPath")
 public String method() {
 return "mapping url is /classPath/methodPath";
 }
}
</div>

method方法匹配的URL是/classPath/methodPath"。

提示

可以定义多个@Controller将不同URL的处理方法分散在不同的类中

URL中的变量——PathVariable

在Web应用中URL通常不是一成不变的,例如微博两个不同用户的个人主页对应两个不同的URL:http://weibo.com/user1,http://weibo.com/user2。我们不可能对于每一个用户都编写一个被@RequestMapping注解的方法来处理其请求,Spring MVC提供了一套机制来处理这种情况:

 @RequestMapping("/users/{username}")
public String userProfile(@PathVariable("username") String username) {
 return String.format("user %s", username);
}
@RequestMapping("/posts/{id}")
public String post(@PathVariable("id") int id) {
 return String.format("post %d", id);
}
</div>

在上述例子中,URL中的变量可以用{variableName}来表示,同时在方法的参数中加上@PathVariable("variableName"),那么当请求被转发给该方法处理时,对应的URL中的变量会被自动赋值给被@PathVariable注解的参数(能够自动根据参数类型赋值,例如上例中的int)。

支持HTTP方法

对于HTTP请求除了其URL,还需要注意它的方法(Method)。例如我们在浏览器中访问一个页面通常是GET方法,而表单的提交一般是POST方法。@Controller中的方法同样需要对其进行区分:

 @RequestMapping(value = "/login", method = RequestMethod.GET)
public String loginGet() {
 return "Login Page";
}
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String loginPost() {
 return "Login Post Request";
}
</div>

模板渲染

在之前所有的@RequestMapping注解的方法中,返回值字符串都被直接传送到浏览器端并显示给用户。但是为了能够呈现更加丰富、美观的页面,我们需要将HTML代码返回给浏览器,浏览器再进行页面的渲染、显示。

一种很直观的方法是在处理请求的方法中,直接返回HTML代码,但是这样做的问题在于——一个复杂的页面HTML代码往往也非常复杂,并且嵌入在Java代码中十分不利于维护。更好的做法是将页面的HTML代码写在模板文件中,渲染后再返回给用户。为了能够进行模板渲染,需要将

@RestController改成@Controller:

 import org.springframework.ui.Model;
@Controller
p



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • spring boot(一)之入门篇
  • Spring boot实现文件上传实例(多文件上传)
  • Spring Boot实现邮件注册功能示例代码
  • Spring Boot实现动态更新任务的方法
  • Spring Boot如何使用Spring Security进行安全控制
  • Spring Boot 开发私有即时通信系统(WebSocket)
  • spring boot拦截器实现IP黑名单实例代码
  • Spring Boot实现异步请求(Servlet 3.0)
  • Spring Boot无缝集成MongoDB
  • Spring Boot(三)之找回熟悉的Controller,Service

相关文章

  • 2017-05-28详解Spring简单容器中的Bean基本加载过程
  • 2017-05-28java json字符串转JSONObject和JSONArray以及取值的实例
  • 2017-05-28SpringMVC实现自定义类型转换器
  • 2017-05-28Spring+SpringMVC+MyBatis深入学习及搭建(三)之MyBatis全局配置文件解析
  • 2017-09-12Java进阶学习之路
  • 2017-05-28详解Spring整合Quartz实现动态定时任务
  • 2017-05-28Spring Boot开发Web应用详解
  • 2017-05-28java中常见的中文乱码总结
  • 2017-05-28java 数据的加密与解密普遍实例代码
  • 2017-05-28java设计模式—静态代理模式(聚合与继承方式对比)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Java JVM原理与调优_动力节点Java学院整理
    • 解决Android Studio安装后运行出错dose not...和Internal error...
    • springMVC发送邮件的简单实现
    • Java中的对象和引用详解
    • Java 选择排序、插入排序、希尔算法实例详解
    • Java实现分页的前台页面和后台代码
    • Spring AOP 自定义注解的实现代码
    • 使用Spring MVC拦截器实现日志记录的方法
    • java WSDL接口webService实现方式
    • Java 爬虫工具Jsoup详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有