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”的方法。
最新文章
- 在VS2010配置MPI--win7下64位系统
- VS经常报错的link error 2019
- zabbix (一:zabbix服务端)
- Winform Krypton控件使用(一)
- 解决Cygwin中vim的backspace不能正常使用(转)
- linux dd命令参数及用法详解---用指定大小的块拷贝一个文件(也可整盘备份)
- 命令行调试smali
- OSG开发概览(转载)
- bzoj 4870: [Shoi2017]组合数问题
- Selenium 3 没办法启用指定的Firefox Profile
- 看到了必须要Mark啊,最全的编程中英文词汇对照汇总(里面有好几个版本的,每个版本从a到d的顺序排列)
- php弹出式登录窗口并获得登录后返回值
- VS编写一个项目的路径规划
- html的基本语法
- Practice1小学四则运算
- kafka集群安装,配置
- labview如何生成可执行文件
- when an event of selector will be fired
- 撩妹技能 get,教你用 canvas 画一场流星雨
- thinkPHP 上传文件的中文乱码
热门文章
- 解决";No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android";错误
- Java网络编程学习A轮_08_NIO的Reactor模型
- 手写DCGAN
- restframework api(基础3CBV)
- JavaScript基本概要
- JSONP、CORS解决跨域问题
- 简单CSS3代码实现立方体以及3D骰子
- ASP.NET MVC 使用NPOI导出Excel 无法访问已关闭的流(转)
- 关于CSS:transform、transition的运用
- PTA编程总