SpringBoot入门

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项目

几种用法:

第一个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提供的条件化注解:
SpringBoot提供的条件化注解

这篇文章后将会介绍和总结Spring Boot的更多内容!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值