首页 > 其他分享 >SpringClud一站式学习之Springboot(一)

SpringClud一站式学习之Springboot(一)

时间:2024-11-08 17:18:24浏览次数:6  
标签:Springboot 一站式 Spring boot springframework Boot spring org SpringClud

SpringClud一站式学习之Springboot

1. Springboot介绍

Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用程序的初始搭建以及开发过程,通过提供一系列的“约定大于配置”的特性来达到简化配置的目的。以下是Spring Boot的一些核心特性:

  1. 独立运行:Spring Boot可以让开发者创建不需要部署WAR文件的独立应用程序,只需要一个JAR文件即可运行。

  2. 自动配置:Spring Boot会根据添加的jar依赖自动配置Spring应用程序,例如添加spring-boot-starter-web依赖会自动配置Tomcat和Spring MVC。

  3. 无需XML配置:Spring Boot不需要任何XML配置,所有的配置都可以通过注解和Java配置类来完成。

  4. 微服务支持:Spring Boot非常适合用来创建微服务,它提供了与Spring Cloud的集成。

  5. 生产就绪:Spring Boot提供了应用程序监控、健康检查等生产环境所需的特性。

  6. 内嵌容器:Spring Boot内置了Tomcat、Jetty等Servlet容器,无需部署WAR文件。

  7. 无代码生成和XML配置:Spring Boot不需要代码生成和XML配置,只要通过注解即可完成配置。

  8. 命令行界面:Spring Boot提供了一个命令行界面,用于快速启动和停止Spring Boot应用程序。

  9. 自动管理依赖:Spring Boot的pom.xmlbuild.gradle文件中,会自动管理项目依赖。

  10. 健康检查和外部配置:Spring Boot提供了应用程序健康检查和外部配置管理。

2. Springboot中常用的包

在这里插入图片描述

3. 创建Springboot工程

3.1.脚手架创建 spingboot工程

创建Spring Boot工程的方法有多种,以下是几种常见的方法:

方法一:使用Spring Initializr

  1. 访问Spring Initializr网站。
  2. 选择项目元数据(如项目名称、描述、包名等)。
  3. 选择依赖(如Web、JPA、Security等)。
  4. 点击“Generate”生成项目。
  5. 下载项目压缩包并解压。
  6. 使用IDE(如IntelliJ IDEA或Eclipse)导入项目。

方法二:使用Spring Tool 4 for Eclipse (STS4)

  1. 打开Eclipse。
  2. 选择“File” > “New” > “Spring Starter Project”。
  3. 填写项目信息,选择需要的依赖。
  4. 点击“Next”直到完成项目创建。

方法三:使用IntelliJ IDEA

  1. 打开IntelliJ IDEA。
  2. 选择“File” > “New” > “Project”。
  3. 选择“Spring Initializr”选项。
  4. 填写项目信息,选择需要的依赖。
  5. 点击“Next”直到完成项目创建。

在这里插入图片描述
在这里插入图片描述

可以看到新生成一个用于web开发的工程,其中,spring-boot-starter-parent 是 Spring Boot 提供的 Maven 父项目(POM),它在 Spring Boot 项目中扮演着非常重要的角色。spring-boot-starter-parent 提供了所有必要的依赖,包括 Spring Boot、Spring 核心、Spring Data 等。通过继承这个 POM,开发者可以轻松地引入所需的依赖,而无需手动添加。jar的版本可以直接在pom 手动更改。

pom文件

<?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.1.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>springboot002</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot002</name>
    <description>Demo project for Spring Boot</description>
    <url/>
    <licenses>
        <license/>
    </licenses>
    <developers>
        <developer/>
    </developers>
    <scm>
        <connection/>
        <developerConnection/>
        <tag/>
        <url/>
    </scm>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

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

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project><?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.1.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>springboot002</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot002</name>
    <description>Demo project for Spring Boot</description>
    <url/>
    <licenses>
        <license/>
    </licenses>
    <developers>
        <developer/>
    </developers>
    <scm>
        <connection/>
        <developerConnection/>
        <tag/>
        <url/>
    </scm>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.1.6.RELEASE</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>


3.2. 配置springboot

项目的端口默认是8080application.properties

3.3. 编写应用接口Cotroller

@RestController
public class DemoController {
    @GetMapping("/hello")
    public String   testHello()
    {
        return "hello springboot!";
    }
}


3.4. 启动服务

在这里插入图片描述
服务起来后可以看到是springboot是内嵌了tomcat
在这里插入图片描述
请求8080端口
http://localhost:8080/hello
在这里插入图片描述

3.5. 指定不同的环境

实际应用中会有多个环境,一个环境用于开发测试,一个用于功能测试,不用的环境有不用的请求地址,那么可以建立多个配置文件,并通过在application.properties指定当前的配置文件来指定环境。

在这里插入图片描述
application-dev.properties 端口是8082

spring.profiles.active=dev

在这里插入图片描述
在这里插入图片描述

4. springboot读取配置信息

springboot读取配置信息有3种方法

4.1. 使用Environment对象

Environment对象提供了访问所有配置属性的方法。你可以在任何Spring管理的Bean中注入Environment对象来读取配置信息。
import org.springframework.core.env.Environment;
新建立controller

package com.example.springboot002.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**

 * @Description
 * @Date: $ $
 * $
 * $
 **/
@RestController
public class ConfigController {

    @Autowired
    private Environment env;

    @GetMapping("/config")
    public Object getConfig()
    {
  Map<String,Object> result=new HashMap<>();
  result.put("profile",env.getProperty("spring.profiles.active"));
  return result;
    }
}

在这里插入图片描述

4.2. 使用@Value注解

定义个字段,其含义为配置文件中的含义,:8080是为了防止没有值的时候给的默认值;

    @Value("${server.port:8080}")
    private String port;

4.3. 使用使用配置类

以上2种配置都是单字段的值,但是往往我们有些配置是成组出现的,例如数据源的地址等。为了对这些进行集中管理,使用配置类进行统一管理,创建一个类,spring会自动将值注入到该类中,我们再application-dev.propertise中增加spring.name=fangfang属性

package com.example.springboot002.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * @Auther: lifang
 * @Description
 * @Date: $ $
 * $
 * $
 **/
@ConfigurationProperties(prefix = "spring")
@Configuration
public class spring {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

package com.example.springboot002.controller;

import com.example.springboot002.config.spring;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
 * @Auther: lifang
 * @Description
 * @Date: $ $
 * $
 * $
 **/
@RestController
public class ConfigController {

    @Autowired
    private Environment env;

    @Value("${server.port:8080}")
    private String port;


    private spring spring1;

    @GetMapping("/config")
    public Object getConfig()
    {
  Map<String,Object> result=new HashMap<>();
  result.put("profile",env.getProperty("spring.profiles.active"));
  result.put("port",port);
  result.put("name",spring1.getName());
  return result;
    }
}

在这里插入图片描述

5. springboot自动监控

Spring Boot 自带了一套强大的监控和健康检查机制,这些机制可以帮助开发者和运维人员监控应用程序的健康状况和性能指标。以下是一些关键的组件和方法,用于实现Spring Boot的自主监控:

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

启动项目后,访问,UP 表示健康
http://localhost:8082/actuator/health
在这里插入图片描述
如果需要添加其他因素判断健康状态,可以继承监控接口AbstractHealthIndicator ,正常健康情况是不显示的,如果需要显示则在配置文件中进行配置。

management.endpoint.health.show-details=always
public class custAutoActuat extends AbstractHealthIndicator {
    @Override
    protected void doHealthCheck(Health.Builder builder) throws Exception {
    builder.up().withDetail("customo","fangfang自定义信息");
    }
}

在这里插入图片描述

6. Spring Boot Admin

Spring Boot Admin 是一个用于管理和监控Spring Boot应用程序的开源项目。它提供了一个用户界面,允许你查看和管理Spring Boot应用程序的健康状况、度量指标、日志文件等。Spring Boot Admin 可以作为一个独立的应用程序运行,也可以集成到现有的Spring Boot应用程序中。

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
    <version>2.1.6</version>
</dependency>

在启动类上添加注解
@EnableAdminServer
客户端可以原则注册上

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/9b62d65120df4d5b861420c9a47a8c85.png)

标签:Springboot,一站式,Spring,boot,springframework,Boot,spring,org,SpringClud
From: https://blog.csdn.net/free_girl_fang/article/details/143624651

相关文章

  • 2025推荐选题|基于SpringBoot的球衣商城系统的设计与实现
    作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待与各位高校教师、企业......
  • Springboot招聘信息管理系统lny2s(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,企业,工作类型,企业招聘,投简信息,面试邀请,求职信息开题报告内容一、研究背景与意义随着互联网技术的飞速发展和互联网的普及,传统的招聘方式已难以满足企......
  • Java+SpringBoot+Vue 学院个人信息管理系统
    学生个人信息管理一:基本介绍开发环境功能模块图系统功能部分数据库表设计用例分析二:部分系统页面展示登录页面首页管理端首页个人信息管理教师信息管理学生作业管理学习课程信息管理课程分类管理班级管理学生信息管理源码一:基本介绍开发环境·开发语言:Java·......
  • Springboot在线智慧办公系统8t202(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表员工,会议,云文档,通讯录,打卡签到,汇报活动,请假条,工资单,费用报销,付款凭证,采购申请,项目审批报告,领导,出差活动开题报告内容一、研究背景随着信息技术的......
  • Springboot在线医院服务系统ow890(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,医生,护工,门诊信息,门诊预约,病历信息,药品信息,开药信息,病房信息,住院信息,护工安排,护工排班,评价医生,评价护工,病症介绍,问诊信息,药品入库,药品出库......
  • 复制下来就能跑:Java智能问答系统-介绍与代码实践 - 基于springboot_springai_国产大模
    本文的目的是在5分钟内能把智能问答系统的原理和实践讲明白代码可执行,复制粘贴即可,可以快速跑起来。智能问答系统简介智能问答系统是一种人工智能应用,它能够理解用户提出的问题,并通过自然语言处理技术来分析和理解问题的含义。随后,系统会在其知识库中搜索相关信息,以生成......
  • 计算机毕业设计 | SpringBoot慈善公益平台 爱心互助活动发布管理系统(附源码)
    1,项目介绍爱慈善公益平台(love-charity)是一个基于SpringBoot开发的标准JavaWeb项目。整体页面非常的简约大气,项目的完整度较高,是一个偏向公益论坛的系统。非常适合刚刚接触学习SpringBoot的技术小白学习,也非常适合学校中的项目答辩或者毕业设计。2,技术分析前端技术......
  • 计算机毕业设计 | SpringBoot智慧⾼校学术报告系统 AI写作大模型生成平台(附源码)
    1,项目介绍智慧⾼校学术报告系统是⼀个基于SpringBoot开发的标准JavaWeb项⽬。系统整体⻚⾯设计简约⼤⽓,巧妙融合了⽬前备受瞩⽬的AIGC⽣成式AI技术,选择了阿⾥通⽤千问⼤语⾔模型,以智能⽣成趣味报告标题和润⾊报告内容等⽅式,提升系统的整体品味。系统涵盖了丰富的......
  • SpringBoot物流信息管理系统jeg7v 带论文文档1万字以上,文末可获取,
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:用户,站点管理,网点信息,计费标准,订单信息,车辆信息开题报告内容一、研究背景与意义随着信息技术的飞速发展,物流行业正逐步向信息化、智能化转型。物......
  • 最新毕设-SpringBoot-求职推荐系统-55000(免费领项目)可做计算机毕业设计JAVA、PHP、爬
    摘 要当前社会竞争激烈,求职市场信息众多,但信息不对称、筛选困难的问题依然存在。因此,设计开发一款求职推荐系统是顺应时代发展的必然选择。该求职推荐系统利用Java编程语言,使用springboot技术框架,采取MySQL数据库实现系统的各项功能,具有便捷高效、安全友好的特点,促进求职招聘......