美文网首页
SpringBoot快速入门

SpringBoot快速入门

作者: 天下无敌强 | 来源:发表于2017-05-01 11:59 被阅读0次

SpringBoot

缘起

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

关于Spring的配置

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

01>xml配置
在Spring 1.x时代,使用Spring开发满眼都是xml配置的Bean,随着项目的扩大,我们需要把xml配置文件放到不同的配置文件里,那时需要频繁的在开发的类和配置文件之间进行切换
02>注解配置
在Spring 2.x 时代,随着JDK1.5带来的注解支持,Spring提供了声明Bean的注解(例如@Component、@Service),大大减少了配置量。主要使用的方式是应用的基本配置(如数据库配置)用xml,业务配置用注解。
03>java配置
Spring 3.0 引入了基于 Java 的配置能力,这是一种类型安全的可重构配置方式,可以代替 XML。我们目前刚好处于这个时代,Spring4.x和Spring Boot都推荐使用Java配置。

所带来的需求

  • 所有这些配置都代表了开发时的损耗。 因为在思考 Spring 特性配置解决业务问题之间需要进行思维切换,所以写配置挤占了写应用程序逻辑的时间。
  • 项目的依赖管理也是件吃力不讨好的事情。决定项目里要用哪些库就已经够让人头痛的了,你还要知道这些库的哪个版本和其他库不会有冲突,这难题实在太棘手。并且,依赖管理也是一种损耗,添加依赖不是写应用程序代码。一旦选错了依赖的版本,随之而来的不兼容问题毫无疑问会是生产力杀手。

Boot系列的到来

Boot在英文词中有着引导的意思。

  • Spring Boot 简化了基于Spring的应用开发,只需要“run”就能创建一个独立的、生产级别的Spring应用。
  • Spring Boot为Spring平台及第三方库提供开箱即用的设置(提供默认设置),这样我们就可以简单的开始。
  • 多数Spring Boot应用只需要很少的Spring配置。
  • 我们可以使用SpringBoot创建java应用,并使用java –jar 启动它,或者采用传统的war部署方式。
  • 小Boot的目标

  • 为所有 Spring 的开发提供一个从根本上更快的入门体验
  • 开箱即用,但通过自己设置参数,即可快速摆脱这种方式。
  • 提供了一些大型项目中常见的非功能性特性,如内嵌服务器、安全、指标,健康检测、外部化配置等
  • 绝对没有代码生成,也无需 XML 配置。

SpringBoot快速体验

实例所用环境配置

这里用了阿里云的maven镜像,将它配到maven的setting.xml文件中就可以了。

<mirror>
      <id>alimaven</id>  
      <name>aliyun maven</name>  
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
      <mirrorOf>central</mirrorOf>          
 </mirror>```
###新建简易Maven工程

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.5.RELEASE</version>
<relativePath />
</parent>```

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
    </properties>
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
</dependencies>
  <build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>```

新建Application类

package com.kyou;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class Application {

@RequestMapping("/")
public String greeting() {
    return "Hello World!";
}

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

运行SpringBoot

  • 在IDE中直接运行Appliaction的main方法
  • 或者运行 mvn spring-boot:run命令

测试SpringBoot运行

SpringBoot分析

  • SpringApplication是SpringBoot框架中描述Spring应用的类,它的run()方法会创建一个Spring应用上下文(Application Context)。另一方面,它会扫描当前应用类路径上的依赖,例如本例中发现的spring-webmvc(由spring-boot-starter-web传递引入)在类路径中,那么SpringBoot会判断这是一个Web应用,并且启动一个内嵌的Servlet容器(默认是Tomcat)用于处理Http请求。
  • SpringWebMvc框架会将Servlet容器收到的HTTP请求根据路径分发给对应的@Controller类进行处理,@RestController是一类特殊的@Controller,它的返回值直接作为HTTP Response的Body部分返回给浏览器。
  • @RequestMapping注解表明该方法处理那些URL对应的HTTP请求,也就是我们常说的URL路由(routing),请求的分发工作是由Spring完成的。上面的代码中http://localhost:8080/根路径被路由至greeting()方法进行处理。如果访问http://localhost:8080/hello,则会出现404 not found错误,因为我们没有编写任何方法来处理/hello请求。

相关文章

网友评论

      本文标题:SpringBoot快速入门

      本文链接:https://www.haomeiwen.com/subject/lamftxtx.html