springboot快速入门
来源:互联网 发布:淘宝驳回售后服务 编辑:程序博客网 时间:2024/05/21 01:50
让我们学习一下如何利用Spring Boot快速的搭建一个简单的web应用。
环境准备 :
一个称手的IDE(Eclipse、Idea Intellij)
Java环境(JDK 1.7或以上版本)
Maven 3.0+(Eclipse和Idea IntelliJ内置,如果使用IDE并且不使用命令行工具可以不安装)
一个最简单的Web应用 >>> (hello world)
使用Spring Boot框架可以大大加速Web应用的开发过程,首先在Maven项目依赖中引入spring-boot-starter-web:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>spring</groupId>
<artifactId>spring</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>spring Maven Webapp</name>
<url>http://maven.apache.org</url>
<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>
接下来创建一个应用程序的入口:Application.java
运行应用:mvn spring-boot:run或在IDE中运行main()方法,
在浏览器中访问http://localhost:8080,Hello World!
就出现在了页面中。只用了区区十几行Java代码,一个Hello World应用就可以正确运行了,
那么这段代码究竟做了什么呢?我们从程序的入口SpringApplication.run(Application.class, args);开始分析:
SpringBootApplication 将三个有用的注解组合在了一起。
Spring的 @Configuration :标明该类使用Spring基于Java的配置。
Spring的 @ComponentScan :启用组件扫描,这样你写的Web控制器类和其他组件才能被
自动发现并注册为Spring应用程序上下文里的Bean。本章稍后会写一个简单的Spring MVC
控制器,使用 @Controller 进行注解,这样组件扫描才能找到它。
Spring Boot 的 @EnableAutoConfiguration : 这 个 不 起 眼 的 小 注 解 也 可 以 称 为
@Abracadabra ,就是这一行配置开启了Spring Boot自动配置的魔力,让你不用再写成
篇的配置了。
在Spring Boot的早期版本中,你需要在 ReadingListApplication 类上同时标上这三个注
解,但从Spring Boot 1.2.0开始,有 @SpringBootApplication 就行了。
一: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
代码:
请求:
@RequestMapping可以注解@Controller类:
之后访问http://localhost:8080/demo/ >>>> 就能看到Index page页面了
提示:
可以定义多个@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);
}
在上述例子中,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";
}
本文学习来源于:http://blog.csdn.net/xiaoyu411502/article/details/47864969
- SpringBoot 快速入门
- SpringBoot快速入门
- springboot快速入门
- SpringBoot快速入门
- SpringBoot 快速入门
- 快速入门1springboot
- SpringBoot快速入门
- springboot的快速入门
- springboot快速入门
- springboot快速入门
- SpringBoot+IDEA+Maven快速入门
- SpringBoot快速入门(一)
- SpringBoot入门-快速整合Mybatis
- SpringBoot系列<一>快速入门
- SpringData 基于SpringBoot快速入门
- SpringBoot快速入门,不继承SpringBoot父依赖项目
- springboot入门(一)--快速搭建一个springboot框架
- SpringBoot初识和快速入门(一)
- pom.xml解释
- 第一个CSDN博客!
- 学习小结
- gridview 表头合并
- 宽字节 多字节 mbstowcs wcstombs
- springboot快速入门
- 重新装Mysql后原来数据的恢复办法
- C++对象模型之第二章——构造函数语义学
- 媒体和相机:ExoPlayer
- Struts2框架基础篇
- 【剑指offer】反转链表
- spark 读取hive parquet
- 代码注释,神兽护体,代码无bug
- nginx基本命令