SpringBoot入门(1)
一、初始
①、首先还是要创建一个maven工程
②、然后编写Controller
让SpringBoot跑起来并不需要太多的代码,就能实现了我们平时要配置很多的功能,这是怎么做到的呢?我们就下面一个入门类,做一个解释。
1 @RestController//注解:其实就是@Controller和@ResponseBody注解加在一起 2 //@Controller//告诉spring这个类是控制器 3 @EnableAutoConfiguration//开启自动配置 4 @RequestMapping(value = "/user")//配置请求路径 5 public class UserController { 6 /** 7 * Get请求 8 * 输出JSON 9 */ 10 //@ResponseBody//该方法的返回结果直接写入 HTTP response body 中,比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据。 11 @RequestMapping(value = "/list",method = RequestMethod.GET)//请求路径和声明过来的是get请求 12 public Map<String, Object> user(){ 13 HashMap<String, Object> dataMap = new HashMap<String, Object>(); 14 dataMap.put("username","贱小提莫"); 15 dataMap.put("userage","18"); 16 return dataMap; 17 } 18 19 public static void main(String[] args){ 20 //SpringBoot 里面的方法,把当前对象给SpringBoot去托管,运行(自带tomcat) 21 //和springmvc不一样的地方,还要注意一个是 在上面加上自动配置的注解 22 SpringApplication.run(UserController.class); 23 } 24 }
然后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”))
1 package com.zbb; 2 3 ... 4 5 @Configuration 6 @EnableAutoConfiguration 7 @ComponentScan 8 public class AppMain { 9 public static void main(String[] args){ 10 SpringApplication.run(AppMain.class); 11 } 12 }
可以看到,这里的包名是 “com.zbb” , 而 UserController 我们是放在了 “com.zbb.controller” 里面。依然能启动成功,并且访问成功“/user/list”的方法。