您的位置:首页 > 编程语言 > Java开发

SpringBoot入门

2017-06-19 10:05 274 查看

SpringBoot简化了Spring应用程序开发

Spring 历史:

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

虽然Spring的组建代码是轻量级的,但是配置却是重量级的。

Spring2.5引入了基于注解的组建扫描,Spring3.0引入了基于Java的配置。

SpringBoot的核心:

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

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

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

Actuator:能够深入到运行中的Spring应用程序,窥探应用程序内部情况。

使用Spring Initial初始化Spring Boot项目

几种用法:

通过Web界面使用:http://start.spring.io

通过Spring Tool Suite使用:http://spring.io/tools/sts下载。

通过IntelliJ IDEA使用

使用Spring Boot CLI使用

第一个SpringBoot应用程序

使用IntelliJ IDEA创建SpringBoot项目:

file->new project->左侧栏选择Spring Initial

项目结构:



项目结构解释:

build.gradle:Gradle构建说明文件。

SpringbootFirstappApplication.java:应用程序的启动引导类,也是主要的Spring配置类。

application.properties:用于配置应用程序和Spring boot的属性。

SpringbootFirstappApplicationTest.java:一个基本的集成测试类。

SpringbootFirstappApplication.java(启动引导类,配置类)

代码:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringbootFirstappApplication {

public static void main(String[] args) {

SpringApplication.run(SpringbootFirstappApplication.class, args);
}
}


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

@SpringBootApplication将3个有用的注解结合在一起

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

Spring的@ComponentScan:启用组件扫描,这样程序中的Web控制器和其他组件才能被自动发现并且注册为Spring应用程序上下文中的Bean。

Spring Boot的@EnableAutoConfiguration:开启SpringBoot的自动配置。

application.properties:Initializr为你生成的application.properties文件是一个空文件。可以删除,不会对程序有任何影响。也可以在文件中添加条目,细粒度的调整Spring Boot的自动配置。完全不用告诉Spring Boot为你加载application.properties,只要它存在就会被加载,Spring和应用程序都能获取其中的属性。

运行项目:使用命令行运行项目,右键运行Application.java,配置Tomcat Local Server。

使用命令行:

gradle:
$gradle bootrun


maven:
spring-boot:run


Spring Boot项目构建

构建工具:

Maven

Gradle

Spring Boot 起步依赖

Spring Boot 通过提供众多的起步依赖来降低项目依赖的复杂度。

起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加载一起即支持某项功能。

通过添加起步依赖,替换向项目构建文件里添加一堆单独的库依赖。

指定基于功能的依赖: 比如:做一个Web应用程序。只需要添加Spring Boot 的Web起步依赖即可。它声明的依赖也会被传递依赖进来。

覆盖,移除,指定起步依赖引入的传递依赖:通过构建工具中的功能,选择性的覆盖它们引入的传递依赖的版本号,排除传递依赖,为SpringBoot起步依赖没有涵盖的库指定依赖。使用时要小心,避免出现兼容性问题

1.移除传递依赖

Gradle:

compile("org.springframework.boot:spring-boot-starter-web"){excluede group:'com.fasterxml.jackson.core'}


Maven:

<dependency><goupId>org.springframework.boot</goupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>com.fasterxml.jackson.core</groupId></exclusion></exclusions></dependency>


2.覆盖依赖:

指定依赖版本号,起步依赖本身版本是由正在使用的SpringBoot的版本决定的,而起步依赖会决定它们引入的传递依赖的版本。

Spring Boot自动配置

Spring Boot自动配置承担起了配置Spring的重任,因此你能专注于编写自己的应用程序。

Spring Boot利用条件化注解配置实现自动配置:

例子:

@Conditional(JdbcTemplateCondition.class)
public MyService myService(){
...
}


在这个例子中,只有当JdbcTemplateCondition类的条件成立时才会创建MyService这个Bean。也就是说MyService Bean创建的条件是ClassPath中有JdbcTemplateCondition,否则这个Bean的声明就会被忽略掉。

SpringBoot提供的条件化注解:



这篇文章后将会介绍和总结Spring Boot的更多内容!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: