美文网首页
[JavaWeb - 2] Hello SpringBoot

[JavaWeb - 2] Hello SpringBoot

作者: 做梦枯岛醒 | 来源:发表于2018-01-02 16:51 被阅读33次

    时间轴:
    发布时间:2017年12月
    更新时间:2018年12月

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。 [Baidu Baike]

    一.使用Spring Boot

    我们首先要New一个Spring工程,如图红框部分,我都标注了,依次点击配置好就行


    新建

    然后填入组名(域名倒置,我习惯写com.我的英文名,、比如com.xxx),Artifact的话填项目名。


    新建

    next
    选择web页,勾选web


    新建

    【可以看到,这个页面有好多技术或者框架,我们暂时不用添加,这个项目就是演示Hello World的,用不着他们,况且这些也可以在代码里面加,以后建立工程的时候,也可以通过这种idea提供的快速导入的方法来导入依赖】

    一路next finish
    最后我们的项目如下


    项目

    等插件都下载完成后,(这应该是个漫长的下载过程……我觉得出去约个会都差不多可以了,小白的话还是等吧,不要尝试其他的方法,看的眼花缭乱)


    image.png
    就OK了。

    这里是application,新建项目之后自动生成的,点击运行之后


    主文件

    出现下图。很霸气的商标(不过这时候只能在控制台看到这些信息,要想在浏览器显示,继续向下看)


    image.png

    接下来新建一个HelloController类(java class,暂时跟application同目录就行)
    内容如下(mapping里的/Hello正是你的访问地址)

    package com.example.demo;
    
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @EnableAutoConfiguration
    public class HelloController {
        @RequestMapping("/Hello")
        public String hello(){
            return "Hello Spring boot";
        }
    }
    

    运行结果(注意以下访问的地址,这些地址都是需要手动访问,一般不会自己弹出来的)

    image.png

    二 . 小Tips

    在上一部分我们的SpringBoot新工程已经跑起来了,那么我们来分析一下它的运行。

    首先看一下Application的源码

    package com.example.demo;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication //用于开启组件扫描和自动配置
    public class DemoApplication {
    
       public static void main(String[] args) {
                   //负责启动引导应用程序
           SpringApplication.run(DemoApplication.class, args);
       }
    }
    
    

    不出意外你的Application应该跟我的类似。

    以下文字修改自http://blog.csdn.net/sky786905664/article/details/52092415,感谢前辈知识指导。

    • SpringApplication是Spring Boot框架中描述Spring应用的类,它的run()方法会创建一个Spring应用上下文(Application Context)。
      此外它会扫描当前应用类路径上的依赖,来判断这是一个什么样类型的应用,比如说现在我们建立的Web应用,那么SpringBoot知道之后,将会启动一个内嵌的Servlet容器(默认是Tomcat)用于处理HTTP请求

    • Spring WebMvc框架会将Servlet容器里收到的HTTP请求根据路径分发给对应的@Controller类进行处理,@RestController是一类特殊的@Controller,它的返回值直接作为HTTP Response的Body部分返回给浏览,这段话的理解是这样的,我们使用的SpringBoot是基于MVC架构,C为控制层,我们在容器里执行的http请求(就是浏览器打链接回车的动作)最终会分发给对应的C去处理,C处理完return的String(上面的例子,源码再贴一下)将作为HTTP Response的Body部分,那么浏览器显示了Body部分,正好就是你所看到的截图上的Hello Spring boot这一句话

    package com.example.demo;
    
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @EnableAutoConfiguration
    public class HelloController {
        @RequestMapping("/Hello")
        public String hello(){
            return "Hello Spring boot";
        }
    }
    
    • @RequestMapping注解表明该方法处理那些URL对应的HTTP请求,也就是我们常说的URL路由(routing),请求的分发工作是有Spring完成的。
      那么我们上面代码所描述的,通过/Hello来访问它,如果我们试图访问一个不存在的url会提示404。

    三.补充一个文件结构

    项目结构图

    下面,我介绍比较重要的几个文件夹的意思。

    src文件夹

    该文件夹里面放的是项目的主体,你编写的工程的部分都在这里面。
    其中这里面有Java文件,也有resource,resource里面有static和templates和application.propertites,其中static是js和图片等网站必须资源,templats是模板文件(后面再说),application.propertites是工程的一些属性配置文件,极大的简化了我们的配置的繁琐性。

    pom.xml

    我们做项目时候需要用到一些别人写好的现成的工程或者框架,比如说sql,比如说jsp,比如说网页模板,等等,我们可以直接在maven库里下载,只要填写上相关信息,我们就可以下载下来了,而不必要去官网下载还得导入,这也同Gradle一样,极大的方便了开发。
    而我们所有的信息都是写在pom里面的。

    当然我们这是基于maven来建里的工程,如果你是用的gradle,你就需要去研究研究gradle啦,他跟maven类似。

    相关文章

      网友评论

          本文标题:[JavaWeb - 2] Hello SpringBoot

          本文链接:https://www.haomeiwen.com/subject/mnnfnxtx.html