我们通过刚刚创建的SpringBoot项目,来完成一个HelloWorld,首先打开我们的项目,我们看一下项目中的pom文件,我们已经添加一个WEB版的坐标,那么也就意味着,我们在做WEB的常用一些jar包,也都会注入到我们的项目当中,这里包含了SpringMVC的一些jar包,那么也就意味着,其实在我们的项目当中,通过编写SpringMVC的Controller,去完成一个HelloWorld的处理,那么接下来我们就来编写一个Controller,在这里我来new一个Class,起个名我们叫HelloController@Controller
public class HelloWorld {@RequestMapping("/hello")@ResponseBodypublic Map showHelloWorld(){Map map = new HashMap<>();map.put("msg", "HelloWorld");return map;}
}其实在SpringBoot中去编写Controller和在SpringMVC中编写Controller的流程是一样的,我需要加一个Annotation,这个Annotation叫做@Controller,标记出它是一个Controller,然后添加一个能够处理用户请求的方法,由于我们现在并没有讲整合视图层的技术,所以我现在只能返回一个JSON格式的数据,那么在这个方法当中我让他返回一个Map,方法名叫showHelloWorld,在这个方法当中呢,我们先来创建一个Map,我们要把方法和URL绑定,我们同样用到RequestMapping,然后在这里添加URI,由于我们的返回要做JSON处理,所以我们还要使用ResponseBody的Annotation,我们知道ResponseBody在做JSON转换的时候,需要依赖于Jackson的jar包,那么我们WEB启动器当中,有没有将Jackson注入进来呢,我们打开MavenDependecies看一下,其实jackson的jar包已经注入进来了,所以这一块是没有问题的,我们的返回Helloworld的Controller就已经编写完毕了,第二步启动SpringBoot,那么我们如何启动SpringBoot呢,这里我们需要编写一个启动类,其实启动类的名字你叫什么都可以,然后启动类当中要包含一个main方法@SpringBootApplication
public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);}
}我们需要在启动类上加一个Annotation,这个Annotation叫什么呢,叫@SpringBootApplication,这个Annotation的作用呢,对启动类的一个标记处理,只要在某个类上添加这个标记,那么也就意味着,这个类就是SpringBoot的启动类,然后我们要在启动类上添加一个main方法,在执行方法当中,我们调用Springboot中提供的一个静态方法,这个静态方法就是Springboot在启动时,需要调用的初始方法,这个方法位于哪儿呢,位于SpringApplication类当中,有一个run,这个run方法需要两个参数,第一个参数需要的是你当前启动类的class模板,模板对象,App.class,第二个参数就是main方法传过来的入参,这样我们就将一个启动器,这个时候我们可以看到SpringBoot启动时的一些输出信息,这个时候没有 异常出现,说明SpringBoot是启动成功的,我们能不能访问Controller得到结果呢,我们在浏览器输入localhost:8080/hello我们是将这个地址做了一个绑定{msg: "HelloWorld"
}这个时候我们可以看到,显示出来了,map的JSON转换,说明我们的HelloWorld是成功的,我们再来看一看第三个问题,关于编写启动器需要注意的问题,其实编写启动器还是比较简单的,但是这里有一个小的细节需要我们注意,就是启动器所出现的位置,需要我们注意,什么意思呢,大家可以看到我这个启动器,放到了Controller上一级的包中,如果我们把启动器放到Controller包当中,让他和Controller位于同一个包下,是不是可以呢,启动没有异常出现,是可以的,也就是启动器和Controller位于同一个包下,是没问题的,如果我现在再建一个包,这个包和controller位于同一个包下,位于同级别的,我把App拿过去,这个时候我再启动,启动没有问题,但是这个时候看到了一个错误页面,这是什么问题引起的呢,这个其实是我们启动器在启动时,它是从当前包下,查找我们所使用的一些组件,那么也就意味着,现在你的启动器和Controller处于一个平行的结构,所以我们的启动器在启动时,无法找到我们的Controller组件,所以这块是需要我们注意的第一个地方,启动器存放的位置,启动器可以和Controller放在同一个包下,或者位于Controller的上级包,但是不能放到Controller的平级以及子包下,这个是我们需要注意的一点
4.0.0com.learn01-spring-boot-hello0.0.1-SNAPSHOTorg.springframework.bootspring-boot-starter-parent1.5.12.RELEASEUTF-8UTF-81.8org.springframework.bootspring-boot-starter-web
package com.learn.controller;import java.util.HashMap;
import java.util.Map;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class HelloWorld {@RequestMapping("/hello")@ResponseBodypublic Map showHelloWorld(){Map map = new HashMap<>();map.put("msg", "HelloWorld");return map;}
}
package com.learn;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** SpringBoot 启动类* @author Leon.Sun**/
@SpringBootApplication
public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!