Spring Boot初步了解

Spring Boot 初步了解


Spring


  • Spring 是为了解决企业级应用开发的复杂性而创建的,简化开发

Spring 是如何简化开发的

  • 采用了一下四种关键策略
  1. 基于 POJO 的轻量级和最小入侵性编程
  2. 通过 IOC,依赖注入(DI)和面向接口实现松耦合
  3. 基于切面(AOP)和惯例进行声明式事务
  4. 通过切面和模板减少样式代码

Spring Boot


  • 一个 javaweb 的开发框架,约定大于配置
  • Spring Boot 基于 Spring 开发,Spring Boot 本身并不提供 Spring 框架的核心特性以及扩展功能,只适用于快速,敏捷地开发新一代基于 Spring 框架的应用程序
  • 不是用来代替 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具
  • 核心思想:约定大于配置
  • 默认配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,Spring Boot 整合了所有的框架

Spring Boot 的主要优点

  • 为所有 Spring 开发者更快的入门
  • 自动装配,开箱即用,提供各种默认配置来简化项目配置
  • 内嵌式容器简化 Web 项目
  • 没有冗余代码生成和 XML 配置的要求

微服务


  • 微服务是一种架构风格,他要求我们在开发一个应用的时候,这个应用必须构建成一系列小五福的组合,可以通过 http 的方式进行互通

单体应用架构

  • all in one
  • 将一个应用中的所有应用服务都封装到在一个应用中,无论是 ERP,CRM 或是其他什么系统,都把数据访问,web 访问,等等各个功能放到一个 war 包内
优点
  • 架构简单,项目开发和维护成本低
  • 所有项目模块部署在一起,对于小型项目来说,方便维护
缺点
  • 所有模块耦合在一起,对于大型项目来说,不易开发和维护
  • 项目各模块之间过于耦合,一旦有模块出现问题,整个项目将不可用
  • 无法针对某个具体模块来提升性能
  • 无法对项目进行水平扩展

微服务架构

  • 把每一个功能元素独立出来,需要用到的功能元素被拿去动态组合
优点
  • 服务彻底拆分,各服务独立打包、独立部署和独立升级
  • 每个微服务负责的业务比较清晰,利于后期扩展和维护
  • 节省了调用资源

第一个Spring Boot 程序


  • 官网提供了一个快速生成的网站,IDEA 也集成了这个网站
    • 在官网直接下载后导入 idea 开发(https://start.spring.io/)
    • 直接使用 idea 创建一个 Spring Boot 项目(常用)

在这里插入图片描述

  • HelloWorldApplication 本身就是一个组件
  • pom.xml 文件
    • parent:继承 spring-boot-starter-parent 的依赖管理,控制版本与打包等内容
    • SpringBoot 的所有依赖都是以 spring-boot-starter 开头的
    • spring-boot-starter-web 用于实现 HTTP 接口(包含 Spring MVC),使用 Tomcat 作为默认嵌入式容器
    • spring-boot-starter-test 用于编写单元测试依赖包
    • spring-boot-starter-plugin 构建配置部分,配合 spring-boot-starter-parent 就可以把 Spring Boot 应用打包成 jar 来直接运行
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.6.3</version>
      <relativePath/> <!-- lookup parent from repository -->
   </parent>
   <groupId>com.yqly</groupId>
   <artifactId>helloworld</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <name>helloworld</name>
   <description>Demo project for Spring Boot</description>
   <properties>
      <java.version>1.8</java.version>
   </properties>
   <dependencies>
      <!--web依赖:tomcat,dispatcherServlet,xml...-->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
      <!--单元测试-->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
      </dependency>
   </dependencies>

   <build>
      <!--打jar包插件-->
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>
   </build>

</project>
  • 可以在 application.properties 核心配置文件中更改端口号
#更改项目端口号
server.port=8081
  • 可以通过在 application.properties 同级目录下创建并编写 banner.txt 来修改 SpringBoot 启动时的图标

在这里插入图片描述

测试网站是否启动成功

在这里插入图片描述

网站启动成功

编写 HelloWorld

  1. 在程序主入口同级目录下建包

在这里插入图片描述

  1. 编写 Controller 代码
package com.yqly.helloworld.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";
    }
}
  1. 执行

在这里插入图片描述

  1. 将程序打包
    • 在 Maven 中的 Lifecycle 下双击 package

在这里插入图片描述

  1. 找到 jar 所在位置,在 cmd 中通过 jar 包执行程序

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值