SpringBoot初体验(完整版)

来源:互联网 发布:603881数据港股票 编辑:程序博客网 时间:2024/06/05 06:07

SpringBoot是做什么的?我想各位应该已经通过网络都已经了解了,其实也就是一种高度抽象封装,对各种常用操作做了默认的实现与配置,使得开发人员更多地关注业务层。

本文开发使用的是工具是IDEA()+Maven,下面进入SpringBoot的“初体验”!

和一般Maven项目不同的是,我们在新建项目的时候,选择Spring Initialiar,其他保持默认,如下图,在点击Next的时候需要确保网络的可用性,不然没法创建:


以下完全可以保持默认,打包方式有Jar和War两种方式,Jar方式可以直接通过java –jar的方式运行项目(此方式jar包内默认打包了tomcat),War的方式可以运行在外部容器中,此文先以默认的Jar来做操作,后面在改成War的方式。


下一步后,会让你选择该项目需要集成的功能,有很多,此处只选择Web,如下图:


下一步就是给项目起名字(此处以demo1命名),以及项目路径,可保持默认:

以下就是创建完后的目录结构图:


该项目有个启动类,用于启动项目,实例项目的启动类则就是DemoApplication。

完整的pom文件信息如下:


接下创建一个HelloController,先创建一个controller的package


HelloController的类信息如下,注意,类的注解使用的是@RestController而不是@Controller,其实@RestController=@Controller+@ResponseBody,也可以理解为注解集合,@RestContoller的内容为Json。


HelloController创建完后,点击右上角的运行按钮或Debug按钮启动程序:


我们可以从启动信息中看出来,项目使用Tomcat启动,且端口号为8080,这就是SpringBoot给我们内置了Tomcat,我们只关注业务,而无需关注配置,8080的端口号是可以自定义的,后面具体说,此处先来看下我们写的第一个方法如何访问以及返回什么:


在浏览器中可以看到如下内容:



是的,页面显示的是我们方法中返回的字符串内容,细心的朋友可以发现,我们没有写任何页面,它是怎么出来的呢?好吧,那么我们来以页面的方式呈现,并修改启动端口:

我们在目录结构中找到application.properties文件,在其中写入如下配置,其中server.port为Tomcat启动端口的配置,其它两个配置为视图解析:

配置好后重启服务,发现已启动在8090端口:

浏览器修改端口,并再次访问,可正常访问,可是,还是没看到如何呈现自定义的页面,下面就创建application.properties中的目录路径,在main目录下创建webapp/WEB-INF/views,并编写welcome.jsp


页面写好了,但要如何显示呢?再创建一个方法:


这个时候再启动的话,我们访问路径:localhost:8080/hello/saySomething.html发现,页面显示的是welcome字符串,而非welcome.jsp中的内容,这是为什么呢?这是因为HelloController我们添加的注解是@RestController,此时该类的所有方法的返回都以json内容解析返回,所以,出现了welcome的字符串,而不是跳转到welcome.jsp页面。我们修改@RestController为@Controller,重新启动,此时,还是没有出现我们想要的页面,而是一个错误页:Whitelabel Error Page


我们来看下target目录内容,发现并没有WEB-INF/views目录及welcome.jsp文件,所以无法返回:


我们修改pom文件中打包方式为war,并添加外部Tomcat来运行:


右上角下拉,选择Edit…


选择已有的Tomcat,如果尚未添加,则点击Configure添加即可


选择Deployment页签,点击右侧的加号,选择Artifact:


确定后返回,别着急,配置还没完成,我们需要修改启动类,以继承SpringBootServeletInitializer,此时clean 然后 package,启动Tomcat,在访问以上请求路径,即可看到想要的页面:


上一个的方法的返回值为String,即返回值为页面的名称,如果以ModelAndView的形式返回,方法声明如下,setViewName中设置要返回页面的名称:


至此,算是基本结束,不过本人有个问题,就是以启动类的方式来运行,而非以外部容器运行时,始终无法返回到相应的页面,如果有知情朋友,还望不吝赐教!

原创粉丝点击