SpringBoot(1) 入门 (第一章)

  一,简介

          Spring boot 来简化Spring应用的开发,约定大于配置,去繁从简,just run 就能创建一个独立,产品级别的应用。 

  背景:

    J2EE笨重的开发,繁多的配置,低下的开发效率,复杂的部署流程,第三方技术集成困难。

  解决:

    “Spring全家桶” 时代。

    Spring boot  ---》 J2EE一站式解决方案。

    Spring Cloud ---》分布式整体解决方案。  

  


  可参考官方资料:https://spring.io/  http://spring.io/projects/spring-boot 

  Spring Boot 是什么?

     Spring boot 是由Pivotal团队提供的全新框架,其设计目的是用来简化spring应用的初始搭建以及开发过程使用spring boot 搭建项目真的太简单,相比之前熟悉的ssm等。

    该框架使用了特定的方式(继承starter,约定优先配置)来进行配置,从而使开发人员不再需要定义样板化的配置。
    通过这种方式,Boot致力在蓬勃的快速开发领域(rapid application development)成为领导者。
    
    Spring Boot 并不是一个框架,从根本上讲,它就是一些maven库的集合,maven或者gradle项目导入相应依赖即可使用Spring Boot,而且无需自行管理这些库的版本。
    
    Spring Boot 就是一些写好了的mavne板块,我们在使用Spring 就不需要以传统的方式去使用。只需要用maven导入Spring Boot 相关的模块,就能完成一大堆操作。
    简单的讲,它用Maven的方式简化封装了Spring应用的搭建开发。

  特点:

       1,创建独立Spring应用程序。
    2,嵌入的tomcat,无需部署war文件。
    3,简化maven配置
    4,自动配置Spring
    5,提供生成就绪功能,如指标,健康检查和外部配置
    6.绝对没有代码生成并且对xml也没有配置要求
    7,与云计算的天然集成

  用我们通俗的话来描述:Spring Boot 是编程更简单,使配置更简单,使用部署发布更简单,使监控更简单。

                Spring Boot 就是为了简化Spring应用搭建,开发,部署,监控的开发工具。

  

  Spring Boot 提供了那些功能?     

    无需手动管理依赖jar包的版本

    Spring boot通过spring boot starter项目管理其提供的所有依赖的版本,当升级spring boot时,这些依赖的版本也会随之升级,个人无需指定版本号
    但是也可以自定义版本号覆盖springboot的默认值。每个版本的boot都有对应的base spring version,不建议明确地指定spring版本。

  

  Spring Boot 在org.springframework.boot 组下提供的一些starters

1) spring-boot-starter

            核心Spring Boot starter,包括自动配置支持,日志和YAML

   (2) spring-boot-starter-actuator

            生产准备的特性,用于帮你监控和管理应用

   (3) spring-boot-starter-amqp

            对"高级消息队列协议"的支持,通过 spring-rabbit 实现

   (4) spring-boot-starter-aop

            对面向切面编程的支持,包括 spring-aop 和AspectJ

   (5) spring-boot-starter-mail

            对 javax.mail 的支持

   (6) spring-boot-starter-mobile

            对 spring-mobile 的支持

   (7) spring-boot-starter-redis

            对REDIS键值数据存储的支持,包括 spring-redis

   (8) spring-boot-starter-security

           对 spring-security 的支持

   (9) spring-boot-starter-test

            对常用测试依赖的支持,包括JUnit, Hamcrest和Mockito,还有 spring-test 模块

   (10) spring-boot-starter-thymeleaf

            对Thymeleaf模板引擎的支持,包括和Spring的集成

   (11) spring-boot-starter-web

            对全栈web开发的支持,包括Tomcat和 spring-webmvc

   (12) spring-boot-starter-websocket

            对WebSocket开发的支持

   (13) spring-boot-starter-remote-shell

            添加远程 ssh shell支持

   (14) spring-boot-starter-jetty

            导入Jetty HTTP引擎(作为Tomcat的替代)

   (15) spring-boot-starter-log4j

            对Log4J日志系统的支持

   (16) spring-boot-starter-logging

            导入Spring Boot的默认日志系统(Logback)

    (17)spring-boot-starter-tomcat

            导入Spring Boot的默认HTTP引擎(Tomcat)

       一张经典的图:(现在官网没有这张图了) 

      Build Anything :构建任何项目

      Coordinate Angthing :项目协调

     

     


    二,Hello World 

          你必须掌握以下内容 

            --Spring框架的应用

            --熟悉的使用Maven进行项目的构建和依赖管理

            --熟悉的使用 eclipse or IDEA 

          环境约束

            --JDK1.8以上

            --maven3.x

            --Intellij IDEA 2017

            --Spring Boot 1.5.9.RELEASE

    1,创建maven项目

    

     

    2,引入starters

1 <!-- SpringBoot所需依赖 -->
2 <parent>
3         <groupId>org.springframework.boot</groupId>
4     <artifactId>spring-boot-starter-parent</artifactId>
5     <version>2.0.5.RELEASE</version>
6 </parent>
1 <!--spring-boot-starter-web依赖-->
2 <dependency>
3       <groupId>org.springframework.boot</groupId>
4       <artifactId>spring-boot-starter-web</artifactId>
5 </dependency>

    3,测试

      1,创建主程序

传统开发的springweb项目:
  1.启动tomcat
  2.根据web.xml中配置信息初始化一个spring容器(applicationContext)
     等配置文件。
  3.做一些常规配置后根据扫描包路径扫描一些bean(mapper,service,controller)



启动springboot应用:
  1.启动一个内置tomcat服务器
  2.初始化一个spring容器
  3.自动配置(SpringMVC),
    扫描加了@SpringBootApplication类的当前包以及后生里面所有spring注解(@Repository,@service,@Controller),
    并且将扫描到的类注入Spring管理
==帮我们简化了很多配置。
 1 package indi.lwc.springboot1;
 2 
 3 import org.springframework.boot.SpringApplication;
 4 import org.springframework.boot.autoconfigure.SpringBootApplication;
 5 
 6 @SpringBootApplication //标识这是spring Boot程序
 7 public class Springboot1Application {
 8 
 9     public static void main(String[] args) {
10         SpringApplication.run(Springboot1Application.class, args); //启动springBoot程序
11     }
12 
13 }

    

      2,运行启动

 

     

    3.Contrller类

 1 package indi.lwc.springboot1.web;
 2 
 3 import org.springframework.stereotype.Controller;
 4 import org.springframework.web.bind.annotation.RequestMapping;
 5 import org.springframework.web.bind.annotation.ResponseBody;
 6 
 7 @Controller
 8 public class HelloWorldController {
 9 
10     @RequestMapping("/hello")
11     @ResponseBody  //加上 ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入Http response body 中,如异步获取则返回json数据。
12     private String hello(){
13         System.out.println("hello");
14         return "hello";
15     }
16 
17 
18 
19 
20 }

    

      4,打开你熟悉的谷歌浏览器输入URL: http://localhost:8080/hello

  

  

      恭喜靓仔入门成功 !

  

    

猜你喜欢

转载自www.cnblogs.com/268lwc/p/12451581.html