springboot简介

Spring诞生时是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。无需 开发重量级的Enterprise JavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通 过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能

Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式, 可以代替XML

Spring Boot 精要

Spring Boot最重要的是以下四个核心。

     自动配置:针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置。

     起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库。

    命令行界面:这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序, 无需传统项目构建。

     Actuator:能够深入运行中的Spring Boot应用程序

 

Spring Boot 不是什么

     首先,Spring Boot不是应用服务器。这个误解是这样产生的:Spring Boot可以把Web应用程 序变为可自执行的JAR文件,不用部署到传统Java应用服务器里就能在命令行里运行。

     Spring Boot 在应用程序里嵌入了一个Servlet容器(Tomcat、Jetty或Undertow),以此实现这一功能。但这是 内嵌的Servlet容器提供的功能,不是Spring Boot实现的。

      Spring Boot也没有实现诸如JPA或JMS(Java Message Service,Java消息服务)之 类的企业级Java规范。它的确支持不少企业级Java规范,但是要在Spring里自动配置支持那些特 性的Bean。

    例如,Spring Boot没有实现JPA,不过它自动配置了某个JPA实现(比如Hibernate)的 Bean,以此支持JPA。

 

       最后,Spring Boot没有引入任何形式的代码生成,而是利用了Spring 4的条件化配置特性, 以及Maven和Gradle提供的传递依赖解析,以此实现Spring应用程序上下文里的自动配置

 

Spring Initializr 初始化 Spring Boot 项目

Spring Initializr从本质上来说就是一个Web应用程序,它能为你生成Spring Boot项目结构。

   虽 然不能生成应用程序代码,但它能为你提供一个基本的项目结构,以及一个用于构建代码的 Maven或Gradle构建说明文件。 Spring Initializr有几种用法。

     通过Web界面使用。

     通过Spring Tool Suite使用。

     通过IntelliJ IDEA使用。

     使用Spring Boot CLI使用。

 

idea使用创建springboot项目:

下一步:

下一步:

下一步:

再下一步:

然后构建了springboot项目架构,需要自己在pom.xml中配置maven依赖jar包

 

启动引导Spring ReadingListApplication在Spring Boot应用程序里有两个作用:

      配置和启动引导。

    首先, 这是主要的Spring配置类。虽然Spring Boot的自动配置免除了很多Spring配置,但你还需要进行 少量配置来启用自动配置。

   正如代码清单2-1所示,这里只有一行配置代码。

        代码清单2-1 ReadingListApplication.java不仅是启动引导类,还是配置类

        package readinglist;

        import org.springframework.boot.SpringApplication;

        import org.springframework.boot.autoconfigure.SpringBootApplication;

      @SpringBootApplication

       public class ReadingListApplication { public static void main(String[] args) {                                SpringApplication.run(ReadingListApplication.class, args);

    }

}

   @SpringBootApplication开启了Spring的组件扫描和Spring Boot的自动配置功能。

   @SpringBootApplication将三个有用的注解组合在了一起,等价于以下三个注解:

             @Configuration:标明该类使用Spring基于Java的配置。

             @ComponentScan:启用组件扫描,这样Web控制器类和其他组件才能自动发现并注册为Spring应用程序上下文里的                         Bean。使用@Controller进行注解,这样组件扫描才能找到它。

             @EnableAutoConfiguration :启用自动配置,不需要写很多配置文件。

 

在Spring Boot的早期版本中,需要在ReadingListApplication类上同时标上这三个注 解,但从Spring Boot 1.2.0开始,有@SpringBootApplication就行了。 如我所说,ReadingListApplication还是一个启动引导类。要运行Spring Boot应用程序 有几种方式,其中包含传统的WAR文件部署。但这里的main()方法让你可以在命令行里把该应 用程序当作一个可执行JAR文件来运行。这里向SpringApplication.run()传递了一个 ReadingListApplication类的引用,还有命令行参数,通过这些东西启动应用程序。

 

. 测试Spring Boot应用程序

Initializr还提供了一个测试类的骨架,可以基于它为你的应用程序编写测试。

 但 ReadingListApplicationTests(代码清单2-2)不止是个用于测试的占位符,它还是一个例 子,告诉你如何为Spring Boot应用程序编写测试。

代码清单2-2

@SpringApplicationConfiguration加载Spring应用程序上下文

package readinglist;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.boot.test.SpringApplicationConfiguration;

import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import org.springframework.test.context.web.WebAppConfiguration;

import readinglist.ReadingListApplication;

@RunWith(SpringJUnit4ClassRunner.class)

@SpringApplicationConfiguration( classes = ReadingListApplication.class)

@WebAppConfiguration

public class ReadingListApplicationTests {

@Test

     public void contextLoads() {

     }

}

一个典型的Spring集成测试会用@ContextConfiguration注解标识如何加载Spring的应用 程序上下文。但是,为了充分发挥Spring Boot,这里用@SpringApplicationConfiguration注解。

在代码清单2-2里看到的那样,ReadingListApplicationTests 使用@SpringApplicationConfiguration注解从ReadingListApplication配置类里加载Spring应用程序上下文。

ReadingListApplicationTests里还有一个简单的测试方法,即contextLoads()。

实 际上它就是个空方法。但这个空方法足以证明应用程序上下文的加载没有问题。如果 ReadingListApplication里定义的配置是好的,就能通过测试。如果有问题,测试就会失败。 当然,现在这只是一个新的应用程序,你还会添加自己的测试。但contextLoads()方法是 个良好的开端,此刻可以验证应用程序提供的各种功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值