SpringBoot学习:1、SpringBoot入门

这篇博客介绍了SpringBoot的基础知识和如何快速创建一个HelloWorld应用。SpringBoot简化了Spring应用的开发,通过约定优于配置的理念,提供了一站式解决方案。文章详细阐述了从创建Maven工程、引入依赖、编写主程序和Controller,到运行和打包应用的全过程。此外,还探讨了@SpringBootApplication注解的作用以及starter的使用机制。
摘要由CSDN通过智能技术生成

简介

Spring Boot 用来简化Spring应用开发的框架,是整个Spring技术栈的一个大整合。约定大于配置,去繁从简,just run就能创建一个独立的、产品级别的应用。

背景:J2EE笨重的开发、繁多的配置、低下的开发效率、复杂的部署流程、第三方技术集成难度大。

解决:Spring全家桶时代。

  • Spring boot --> J2EE一站式解决方案
  • Spring Cloud --> 分布式整体解决方案

优点

  • 快速创建独立运行的Spring项目以及与主流框架集成
  • 使用嵌入式的Servlet容器,应用无需打成WAR包
  • starters自动依赖与版本控制
  • 大量的自动配置、简化开发、也可修改默认值
  • 无需配置xml,无代码生成,开箱即用
  • 准生成环境的运行时应用监控
  • 与云计算的天然继承

微服务

微服务:一种架构风格

一个应用应该是一组小型服务:通过HTTP的方式进行通信

每一个功能元素最终都是一个可独立替换和独立升级的软件单元。

SpringBoot HelloWorld

功能要求:浏览器发送hello请求,服务器接受请求并处理,响应HelloWorld字符串;

1、创建一个maven工程

2、导入spring-boot相关依赖

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>1.5.9.RELEASE</version>
</parent>

<dependencies>
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
   </dependency>
</dependencies>

3、编写主程序:启动SpringBoot应用

package com.atguigu;

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

@SpringBootApplication  //标注一个主程序,说明这是一个Spring Boot应用
public class HelloWorldMainApplication {

    public static void main(String[] args) {
        
        //Spring应用启动起来
        SpringApplication.run(HelloWorldMainApplication.class, args);
    }
}

4、编写相关Controller、Service

package com.atguigu.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {

    @ResponseBody
    @RequestMapping("/hello")
    public String hello() {
        return "Hello World";
    }
}

5、运行主程序进行测试

6、简化部署

添加插件

<!-- 这个插件,可以将应用打包成一个可执行的jar包 -->
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>1.5.9.RELEASE</version>
        </plugin>
    </plugins>
</build>

得到jar包spring-boot-01-helloworld-1.0-SNAPSHOT.jar,在终端使用命令运行这个jar即可开启服务

java -jar spring-boot-01-helloworld-1.0-SNAPSHOT.jar

HelloWorld探究

1、父项目

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
</parent>

打开spring-boot-starter-parent是下面这个项目,它是版本的仲裁中心:

<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.5.9.RELEASE</version>

后面我们导入依赖不需要写版本了,除非没有在dependencies标签的依赖

2、我们导入了一个web的依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

spring-boot-starter-web:

  • spring-boot-starter:spring-boot场景启动器,帮我们导入了web模块正常运行所依赖的组件

Spring Boot 将所有功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目中引入这些starter,相关场景的所有依赖都会导入进来。要什么功能有什么功能。

3、主程序类、主入口类

package com.atguigu;

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

@SpringBootApplication  //标注一个主程序,说明这是一个Spring Boot应用
public class HelloWorldMainApplication {

    public static void main(String[] args) {

        //Spring应用启动起来
        SpringApplication.run(HelloWorldMainApplication.class, args);
    }
}

@SpringBootApplication:SpringBootApplication标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法。

使用向导快速创建springboot项目

IDEA支持使用Spring的项目创建向导迅速创建一个SpringBoot项目:

选择我们需要的模块,向导会联网创建SpringBoot项目;

默认生成的SpringBoot项目:

  • 主程序已经生成好了,我们只需要我们自己的逻辑
  • resources文件夹中目录结构
    - static:保存所有的静态资源;js、css、images
    - templates:保存所有的模版页面
    - applications.properties:SpringBoot应用的配置文件,可以修改一些默认设置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值