springboot2.0之helloworld

     这篇博客是记录我学习springboot2.0的第一个入门小案例,其中使用的springboot版本为2.0,jdk1.8(必须),maven(必须)

     1,首先让我们来简单来了解下springboot(关于它的详细介绍没有人能比官网更清楚),ta

    2,springboot与springcloud的关系 springboot是一个快速开发框架,能够帮助我们 快速整合第三方常用框架,完全采用注解化的方式,简化xml配置,最终以java应用程序的方式启动。springcloud是一套目前完整的微服务框架,功能非常强大(注册中心,客户端调用工具,服务治理(负载均衡,断路器,分布式配置中心,网关,服务链路,消息总线等))。springcloud依赖于springboot实现微服务使用springmvc编写微服务接口。

  3,springboot与springmvc springboot的web组件默认继承springmvc。

   相关概念我们理解完毕,现在开始我们的第一个hello world小程序

   第一步:

   

  注意:创建jar文件项目

 第二步:导入pom依赖 如下:

<!-- 整合第三方的常用框架的各种依赖关系 -->
   <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
    </parent>
    <dependencies>
    <!-- spring-boot-starter-web 是springboot整合springmvc 实现原理:maven依赖继承关系 -->
    <!--相当于把第三方常用maven依赖信息,在parent项目中已经封装好了,只需要使用springboot提供依赖信息关联整合的jar包  -->
    <!-- springboot中快速原理(maven字父依赖关系) -->    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies> 

   第三步:编写代码

     

package com.springboot.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 这是我的第一个springboot的学习用例
 * @author Administrator
 *
 */
//@RestController表示当前标注的类返回json格式的字符串,该注解是由springmvc提供的
//@RestController相当于 @Controller + @ResponseBody注解
@RestController
//@EnableAutoConfiguration 注解作用:扫包范围默认 在当前类里面
@EnableAutoConfiguratio
public class HelloController {
  
    
    @RequestMapping("/hello")
    public String hello(){
        return "hello spring boot !!";
    }
    
    public static void main(String[] args) {
        //springboot项目的入口
        SpringApplication.run(HelloController.class, args);
    }
}

 第四步:通过以java程序的方式运行代码

    

 


 出现上述情况代表springboot启动成功。

第五步 地址栏输入

 http://localhost:8080/hello

一个springboot的helloworld程序便搭建完成。

但显然以上的controller层是不合规范的,企业级开发中,你不可能把main函数写入controller层包中,况且

@EnableAutoConfiguration 的默认扫描包范围为当前类中,这时我们便需要@ComponentScanz注解,该注解表示你需要扫描包的范围

//该注解表示扫描包的范围,缺点:如果扫描包比较多,写起来很麻烦
//@ComponentScan(basePackages={"com.springboot.controller"})

幸好,springboot为我们提供了解决方案。@SpringbootApplication注解,该注解等于 @EnableAutoConfiguration + @ComponentScan 同级包及其子包和当前包

所以经过修改后我们的项目结构变成了

 

App.java代码

package com.springboot;

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

@SpringBootApplication
public class App {

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

    }

}

HelloController.java代码

package com.springboot.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello(){
        return "hello world!!";
    }
}

最后再次启动

 至此一个企业级的springboot-hello world程序完成了。

 

笔记:

1,springboot概念  springboot是一个快速开发框架,能够帮助我们快速整合第三方常用框架(通过maven依赖关系,maven继承),完全采用注解化,内置嵌入http服务器(tomcat,jetty)默认嵌入tomcat服务器,最终以java应用程序进行执行

2,springcloud依赖于springboot进行微服务的开发

3,springboot的web组件默认继承springmvc

4,常用注解@SpringBootApplication,表示开启springboot的自动配置和扫包,默认扫描包范围为当前类以及其包下的子类

5,通过java应用程序启动

 

posted @ 2018-11-06 14:09  onsim  阅读(276)  评论(0编辑  收藏  举报