美文网首页
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