Spring Boot入门

Spring Boot 精要

Spring Boot的四个核心:

  • 自动配置
  • 起步依赖
  • 命令行界面(可选特性)
  • Actuactor
  1. 自动配置

    使用JDBC访问关系型数据库

    @Bean
    public JdbcTemplate jdbcTemplate(DataSource dataSource) {
        return new JdbcTemplate(datasource);
    }
    

    这段Bean声明创建了一个JdbcTemplate的实例,注入了一个DataSource依赖。

    配置DataSource Bean(以H2数据库为例)

    @Bean
    public DataSource dataSource() {
        return new EmbededDataBuilder()
            .setType(EmbededDataBaseType.H2)
            .addScript('schema.sql', 'data.sql')
            .build();
    }
    

    这个Bean配置方法创建了一个嵌入式数据库,并指定在该数据库上执行两段SQL脚本。build() 方法返回了一个指向该数据库的引用。

    Spring Boot的自动配置远不止嵌入式数据库和JdbcTemplate, 还设计Java持久化(JPA)、 Thymeleaf模板、安全和Spring MVC。

  2. 起步依赖

    起步依赖其实就是特殊的Maven依赖或者Gradle依赖,利用了传递依赖解析,把常用库聚合到一起,组成了几个为特定功能而定制的依赖。

    向项目中添加Web起步依赖,实际上指定了应用程序所需的一些功能。如果应用程序需要用到JPA,那么久可以引入JPA起步依赖。如果需要安全功能,那么久可以加入security起步依赖。

  3. 命令行界面(CLI)

    Spring Boot CLI利用了起步依赖和自动配置,让你专注于代码本身。CLI能检测到你使用了哪些类,它知道要向ClassPath中添加哪些岂不依赖才能让它运转起来。

    CLI是Spring Boot的非必要组成部分,但是它大大地简化了开发。

  4. Acutactor
    其他三个部分旨在简化Spring开发,而Acutactor提供了在运行时检查应用程序内部情况的能力。
    它能窥探应用程序内部的细节:

    • Spring应用程序上下文里配置的Bean
    • Spring Boot自动配置做的决策
    • 应用程序取到的环境变量、系统属性、配置属性和命令行参数
    • 应用程序里线程的当前状态
    • 应用程序最近处理过的HTTP请求的追踪情况
    • 各种和内存用量、垃圾回收、Web请求以及数据源用量相关的指标。

Spring Boot不是什么

Spring Boot简化了开发,但是Spring Boot不是全能的。

  1. Spring Boot不是应用服务器

    Spring Boot在应用程序中嵌入了一个Servlet容器(Tomcat、Jetty或Undertow),以实现这一功能。

  2. Spring Boot没有实现JMS或JPA之类的企业级Java规范

    Spring Boot确实支持不少企业级Java规范,但是要在Spring里自动配置支持那些特性的Bean。

  3. Spring Boot没有引入任何形式的代码生成

    Spring Boot利用了Spring 4的条件化配置特性,以及Maven和Gradle提供的传递依赖解析,以实现Spring应用程序上下文里的自动配置。

你可能感兴趣的:(Spring Boot入门)