SpringBoot入门(1)
一、初始
①、首先还是要创建一个maven工程
②、然后编写Controller
让SpringBoot跑起来并不需要太多的代码,就能实现了我们平时要配置很多的功能,这是怎么做到的呢?我们就下面一个入门类,做一个解释。
@RestController//注解:其实就是@Controller和@ResponseBody注解加在一起
//@Controller//告诉spring这个类是控制器
@EnableAutoConfiguration//开启自动配置
@RequestMapping(value = "/user")//配置请求路径
public class UserController {
/**
* Get请求
* 输出JSON
*/
//@ResponseBody//该方法的返回结果直接写入 HTTP response body 中,比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据。
@RequestMapping(value = "/list",method = RequestMethod.GET)//请求路径和声明过来的是get请求
public Map<String, Object> user(){
HashMap<String, Object> dataMap = new HashMap<String, Object>();
dataMap.put("username","贱小提莫");
dataMap.put("userage","18");
return dataMap;
} public static void main(String[] args){
//SpringBoot 里面的方法,把当前对象给SpringBoot去托管,运行(自带tomcat)
//和springmvc不一样的地方,还要注意一个是 在上面加上自动配置的注解
SpringApplication.run(UserController.class);
}
}
然后run,就跑起来了

二、相关注解和方法说明
代码里面其实也有写相应的注释,但是在这边就再详细的说一下
@RestController
这里我们先进入它的源码,发现

它上面加了@Controller和ResponseBody注解,说明它同时拥有这2注解的功能,@Controller注解表示后,该类将会被spring管理,@ResponseBody注解标识后,响应数据可以是文本或者JSON数据类型。所以这里我们return map的时候,可以直接输出JSON数据。当然@RestController注解属于springmvc的,并不属于springboot的。
@EnableAutoConfiguration注解
这个注解告诉 SpringBoot 根据添加的 jar 依赖,猜测你会如何配置 Spring 。在Idea打开jar包的依赖关系图我们可以发现 spring-boot-starter-web 下添加了 Tomcat 和 SpringMVC,所以auto-configuration 将假定你正在开发的一个web应用并相应的对spring进行设置。
main方法
我们的 main 方法通过调用 run,将业务委托给了 SpringBoot 的 SpringApplication类。SpringApplication 将引导我们的应用,启动 Spring,相应的启动被自动配置的 Tomcat web 服务器。我们需要 Example.class 作为参数传递给 run 方法来告诉SpringApplication谁是主要的 Spring 组件。
三、关于 SpringBoot 的启动
上面的例子,我们是把 main 方法,写到了 UserController 这个类里面,但是有时候我们要加载更多的一些类和方法呢。—— 在它们的上级文件夹中写一个 AppMain,作为一个启动类。(不在上级文件夹也可以,在@Componentscan这个注解后面指定扫描的包名(value=“com.zbb”))
package com.zbb; ... @Configuration
@EnableAutoConfiguration
@ComponentScan
public class AppMain {
public static void main(String[] args){
SpringApplication.run(AppMain.class);
}
}
可以看到,这里的包名是 “com.zbb” , 而 UserController 我们是放在了 “com.zbb.controller” 里面。依然能启动成功,并且访问成功“/user/list”的方法。
SpringBoot入门(1)的更多相关文章
- SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1
在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...
- SpringBoot入门基础
目录 SpringBoot入门 (一) HelloWorld. 2 一 什么是springboot 1 二 入门实例... 1 SpringBoot入门 (二) 属性文件读取... 16 一 自定义属 ...
- SpringBoot入门示例
SpringBoot入门Demo SpringBoot可以说是Spring的简化版.配置简单.使用方便.主要有以下几种特点: 创建独立的Spring应用程序 嵌入的Tomcat,无需部署WAR文件 简 ...
- Spring全家桶系列–[SpringBoot入门到跑路]
//本文作者:cuifuan Spring全家桶————[SpringBoot入门到跑路] 对于之前的Spring框架的使用,各种配置文件XML.properties一旦出错之后错误难寻,这也是为什么 ...
- springboot入门之一:环境搭建(续)
在上篇博客中从springboot的入门到运行一个springboot项目进行了简单讲述,详情请查看“springboot入门之一”.下面继续对springboot做讲述. 开发springboot测 ...
- 【Java】SpringBoot入门学习及基本使用
SpringBoot入门及基本使用 SpringBoot的介绍我就不多说了,核心的就是"约定大于配置",接下来直接上干货吧! 本文的实例: github-LPCloud,欢迎sta ...
- SpringBoot入门(三)——入口类解析
本文来自网易云社区 上一篇介绍了起步依赖,这篇我们先来看下SpringBoot项目是如何启动的. 入口类 再次观察工程的Maven配置文件,可以看到工程的默认打包方式是jar格式的. <pack ...
- SpringBoot入门(五)——自定义配置
本文来自网易云社区 大部分比萨店也提供某种形式的自动配置.你可以点荤比萨.素比萨.香辣意大利比萨,或者是自动配置比萨中的极品--至尊比萨.在下单时,你并没有指定具体的辅料,你所点的比萨种类决定了所用的 ...
- SpringBoot入门(四)——自动配置
本文来自网易云社区 SpringBoot之所以能够快速构建项目,得益于它的2个新特性,一个是起步依赖前面已经介绍过,另外一个则是自动配置.起步依赖用于降低项目依赖的复杂度,自动配置负责减少人工配置的工 ...
- SpringBoot入门(二)——起步依赖
本文来自网易云社区 在前一篇我们通过简单几步操作就生成了一个可以直接运行的Web程序,这是因为SpringBoot代替我们做了许多工作,概括来讲可以分为起步依赖和自动配置.这一篇先来看看起步依赖. 项 ...
随机推荐
- SSH基本管理和配置文件的使用
服务端:linl_S IP:10.0.0.15 客户端:lin_C IP:10.0.0.16 SSHD服务 SSH协议:安全外壳协议.为Secure Shell的缩写.SSH为建立在应 ...
- iOS开发网络篇—Socket编程
一.网络各个协议:TCP/IP.SOCKET.HTTP等 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 其中物理层.数据链路层和网络层通常被称作媒体层,是网络工程 ...
- JavaScript权威指南--正则表达式
知识要点 正则表达式,是一个描述字符模式的对象.javascript的RegExp类表示正则表达式,String和RegExp都定义了方法,后者使用正则表达式进行强大的模式匹配和文本检索与替换功能. ...
- js 面试题总结
面试题解析 window.number = 1; var obj = { number: 4, dbl: (function(){ console.log(obj.number); this.numb ...
- Mysql中FIND_IN_SET和REPLACE函数简介
一 FIND_IN_SET() SELECT * from u_user where FIND_IN_SET('32',tags) 上面的sql是精确查找,查找表中tags中含有32的记录(注意这里 ...
- WPF——RenderTransform特效
WPF: RenderTransform特效 WPF中的变形(RenderTransform)类是为了达到直接去改变某个Silverlight对象的形状(比如缩放.旋转一个元素)的目的而设计的,Ren ...
- hihocoder1513
https://hihocoder.com/problemset/problem/1513 五维偏序问题,直接bitset压位,复杂度O(n^2/32) (本来想写三维偏序,但是cdq不会只好写写五维 ...
- UVA-11167 Monkeys in the Emei Mountain(区间模型最大流+输出方案)
题目大意:有n只猴子,每只猴子都有一组参数(v,a,b),表示这只猴子在时间段[a,b]之间必须要喝v个单位水,并且每个时间单位只能和一个单位水,每次至少喝一个单位.但是只有一个水池,并且这个水池最多 ...
- ruby on rails Mac 安装
网上的资料有很多,但好多坑,有的已经过期了,有的不符合现整理了一下 貌似有的还跟os系统版本有关系,请勿照搬,根据实际情况安装 我的系统版本是10.12.3 ps:选择一个较好的网络,很多问题有得时候 ...
- Spring Boot @SpringApplicationConfiguration 不能导入的问题
较新版的Spring Boot取消了@SpringApplicationConfiguration这个注解,用@SpringBootTest就可以了