资讯专栏INFORMATION COLUMN

SpringBoot学习日记1 第一个SpringBoot程序

ybak / 709人阅读

摘要:学习日记简单的小程序配置引入依赖编写代码最后通过这两个简单的配置,就可以使用浏览器访问访问到这个页面了分析和主要的作用是告知渲染结果直接返回给调用者。数据相当于就是在中作为路由功能的注解。

SpringBoot学习日记 简单的Hello Word小程序

配置pom引入依赖


        org.springframework.boot
        spring-boot-starter-parent
        1.5.9.RELEASE


    
        org.springframework.boot
        spring-boot-starter-web
    

编写代码

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.web.bind.annotation.*;

@RestController
@EnableAutoConfiguration
public class Example {
    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }
    public static void main(String[] args) throws Exception {
        SpringApplication.run(Example.class, args);
    }
}

最后通过这两个简单的配置,就可以使用浏览器访问localhost:8080 访问到 hello word这个页面了

分析

@RestController@EnableAutoConfiguration@RequestMapping

@RestController主要的作用是告知Spring渲染结果直接返回给调用者。==Json数据==

相当于

@ Controller
@ ResponseBody

@RequestMapping 就是在SpringMVC中作为路由功能的注解。

@EnableAutoConfiguration Spring Boot会通过pom.xml文件的依赖来自动配置,由于Spring-boot-starter-web中配置了Tomcat和SpringMVC,自动配置会配置为Web应用。

SpringBoot热部署:
  
    org.springframework.boot  
    spring-boot-maven-plugin   
       
           
           
            org.springframework   
            springloaded   
            1.2.4.RELEASE  
           
       
       
           
               
                repackage   
               
               
                exec   
               
           
      
  
分析pom.xml 依赖的关系

    org.springframework.boot
    spring-boot-starter-parent
    1.5.9.RELEASE

依赖于下面:

    org.springframework.boot
    spring-boot-dependencies
    1.5.9.RELEASE
    ../../spring-boot-dependencies

管理SpringBoot所有依赖,==SpringBoot版本仲裁中心==

所以以后的导入依赖是不用写具体版本号的。

导入的依赖:


    
        org.springframework.boot
        spring-boot-starter-web
    

Spring-boot-starter-==web==:导入Web应用的时候,导入Web需要用到的依赖。

Spring-boot-starter-x:Spring Boot的场景启动器(里面包含了多个整合好的依赖)。

SpringBoot将所有的功能场景都抽取出来做成Staters 只需要引入Staters就可以了

@SpringBootApplication:

包含:

@Component:定义为一个组件可以被bean扫描器扫描出来

@ComponentScan:扫描被注解的对象。

@EnableAutoConfiguration:自动配置,自动导入

1 自动导入
    @Import(EnableAutoConfigurationImportSelector.class)

导入SpringBootApplication注解修饰类的包名里面的所有的子包全部导入。

2 自动配置

EnableAutoConfigurationImportSelector 继承于 AutoConfigurationImportSelector

@Override
    public String[] selectImports(AnnotationMetadata annotationMetadata) {
            List configurations = getCandidateConfigurations(annotationMetadata,
        
    }
/**
    扫描META-INF/spring.factories中获取EnableAutoConfiguration的值再包装成Properties,从properties中获取到EnableAutoConfiguration.class对应的全限定名类名,添加进入容器中。
*/
protected List getCandidateConfigurations(AnnotationMetadata metadata,
            AnnotationAttributes attributes) {
        List configurations = SpringFactoriesLoader.loadFactoryNames(
                getSpringFactoriesLoaderFactoryClass(), getBeanClassLoader());
    }

SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.calss ,classLoader);

获取类路径下META-INF/spring.factories中获取EnableAutoConfiguration的值,再将这些值作为自动配置类导入到容器中。

==结论==:@SpringBootApplication 被修饰的类为主配置类,将主配置类所在的包下的所有的子包里面的组件全部扫描到Spring容器中来,再从根目录下的文件中读取配置文件生成配置类,自动配置好。

JaveEE的整体整合和自动配置都在:pring-boot-autoconfigure-1.5.9.RELEASE.jar中

Spring Initializer

生成Boot项目的目录:

static :保存静态文件;js,css,png

templates : 保存模板页面;(默认不支持jsp,可以使用模板引擎)

application.properties : Spring Boot的配置文件,默认配置文件可以在此文件中更改。

配置文件

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77605.html

相关文章

  • Springboot下使用Mybatis

    摘要:最近有项目需要使用语言开发数据接口,整体框架需要符合微服务架构,在网上查找了相关资料,最终选定了的架构,此文主要记录在下的使用,一方面作为学习日记,另一方面也希望对正在学习的朋友们有一定帮助。最后,整个项目完成后目录结构如下 最近有项目需要使用java语言开发数据接口,整体框架需要符合微服务架构,在网上查找了相关资料,最终选定了Springcloud+Springboot的架构,此文...

    rollback 评论0 收藏0
  • springboot学习(一)——helloworld

    摘要:关于的自动配置,这个是重点之一,后面细说。在后续的学习中会慢慢学习到。红色标记的就是已经扫描到了并初始化成功了。 以下内容,如有问题,烦请指出,谢谢 springboot出来也很久了,以前零散地学习了不少,不过很长时间了都没有在实际中使用过了,忘了不少,因此要最近准备抽时间系统的学习积累下springboot,给自己留个根。 因为以前学过一些,这里就主要根据官方文档来学习了,可能会根据...

    The question 评论0 收藏0
  • 慕课网_《2小时学会SpringBoot学习总结

    摘要:小时学会学习总结时间年月日星期六说明本文部分内容均来自慕课网。慕课网教学示例源码暂无。数据库操作下第六章事务管理事务管理只有查询的时候不加事务,其它任何操作都要加事务。第七章课程回顾课程回顾总结介绍安装配置的使用数据库操作 《2小时学会SpringBoot》学习总结 时间:2017年2月18日星期六说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示...

    aisuhua 评论0 收藏0
  • SpringBoot 实战 (二) | 一个 SpringBoot 工程详解

    摘要:代码如下可以看到中一共有个依赖,其中只有是我手动加入的,用于单元测试。点击项目启动按钮,效果如下好的程序必须配备完善的单元测试。测试结果如下可以看到红圈框住的地方,出现这个绿色标志证明单元测试没问题。 微信公众号:一个优秀的废人如有问题或建议,请后台留言,我会尽力解决你的问题。 前言 哎呦喂,按照以往的惯例今天周六我的安排应该是待在家学学猫叫啥的。但是今年这种日子就可能一去不复返了,没...

    GeekQiaQia 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<