SpringBoot学习笔记-1:第一章 Spring Boot 入门

简介: SpringBoot学习笔记-1:第一章 Spring Boot 入门

第一章 Spring Boot 入门

1、SpringBoot 简介

1、简介


SpringBoot 简化了 Spring 应用开发,约定大于配置

整个 Spring 技术栈的一个大整合

J2EE 开发一站式解决方案

2、优点


快速建立独立运行的 Spring 项目以及与主流框架集成

使用嵌入式的 Servlet 容器,应用无需打成 war 包

starts 自动依赖与版本控制

大量的自动配置,简化开发,也可以修改默认值

无需配置 XML,无代码生成,开箱即用

准生产环境的运行时应用监控

与云计算的天然集成

3、缺点


需要学习 Spring

2、微服务

2014 年 martin fowler


原文:https://martinfowler.com/articles/microservices.html


译文:http://blog.cuicc.com/blog/2015/07/22/microservices/


微服务是一种架构风格

一个应用应该是一组小型服务

可以通过 HTTP 的方式进行互通

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

单体应用 <-> 微服务


3、环境准备

JDK 1.8
Maven 3.x
IntelliJ IDEA 2017 或者 STS
SpringBoot 1.5.9.RELEASE
$ java -version
java version "1.8.0_221"
$ mvn -v
Apache Maven 3.6.3

1、修改用户级别设置 maven


~/.m2/settins.xml


<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
         http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <!-- 配置镜像 -->
    <mirrors>
        <mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <mirrorOf>central</mirrorOf>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </mirror>
        <mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <mirrorOf>central</mirrorOf>
            <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
        </mirror>
    </mirrors>
    <profiles>
        <profile>
            <id>jdk-1.8</id>
            <activation>
                <activeByDefault>true</activeByDefault>
                <jdk>1.8</jdk>
            </activation>
            <properties>
                <maven.compiler.source>1.8</maven.compiler.source>
                <maven.compiler.target>1.8</maven.compiler.target>
                <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
            </properties>
        </profile>
    </profiles>
</settings>

2、修改 IDEA 的 maven 路径


4、SpringBoot HelloWorld

1、创建 Maven 工程


2、导入 SpringBoot 依赖


<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>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

3、创建主程序


package com.mouday;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
// 标注主程序,说明这是一个SpringBoot应用
@SpringBootApplication
public class ApplicationMain {
    public static void main(String[] args) {
        SpringApplication.run(ApplicationMain.class, args);
    }
}

4、创建 Controller

package com.mouday.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController {
    @RequestMapping("/hello")
    @ResponseBody
    public String hello(){
        return "Hello world!";
    }
}

5、启动程序


$mvn spring-boot:run

访问:

http://localhost:8080/hello


6、简化部署

可以将应用打包成一个可执行 jar 包


# 打包
$ mvn clean package
# 运行
$ java -jar springboot-helloword-1.0-SNAPSHOT.jar

5、文件说明

pom.xml


1、父项目

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

SpringBoot 版本仲裁中心


我们导入的依赖默认不需要写版本


没有在 dependencies 中管理的依赖需要些版本号


2、导入的依赖


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

spring-boot-start: springBoot 场景启动器


帮我们导入了 web 模块正常运行所依赖的组件


spring-boot 将所有的功能场景都抽取出来,做成一个个的 starters 启动器


6、自动配置

package com.mouday;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ApplicationMain {
    public static void main(String[] args) {
        SpringApplication.run(ApplicationMain.class, args);
    }
}

@SpringBootApplication 标注 SpringBoot 的主配置类


@SpringBootConfiguration 配置类


@Configuration 标注配置类


配置类 - 配置文件


配置类也是容器的一个组件 @Component


@EnableAutoConfiguration 开启自动配置功能


@AutoConfigurationPackage 自动配置包


将主配置类所在的包及下面子包所有组件扫描到 Spring 容器


@Import 给容器中导入一个组件

从 META-INF/spring.factories 导入自动配置类


自动配置类


org.springframework.boot.autoconfigure


7、使用向导快速创建 Spring Boot 应用

https://start.spring.io/


@ReponseBody


用在方法上,方法直接返回给浏览器

用在类上,类中的所有方法直接返回给浏览器,如果是对象转为 JSON

@RestController


等价于:

@Controller
@ResponseBody

默认生成的 SpringBoot 项目


resources/
    static 保存静态资源 js/css/image
    tamplates 模板页面 默认不支持jsp,可以使用模板引擎(freemaker/thymeleaf)
    application.properties 应用配置
相关文章
|
2月前
|
前端开发 Java 应用服务中间件
《深入理解Spring》 Spring Boot——约定优于配置的革命者
Spring Boot基于“约定优于配置”理念,通过自动配置、起步依赖、嵌入式容器和Actuator四大特性,简化Spring应用的开发与部署,提升效率,降低门槛,成为现代Java开发的事实标准。
|
2月前
|
前端开发 Java 微服务
《深入理解Spring》:Spring、Spring MVC与Spring Boot的深度解析
Spring Framework是Java生态的基石,提供IoC、AOP等核心功能;Spring MVC基于其构建,实现Web层MVC架构;Spring Boot则通过自动配置和内嵌服务器,极大简化了开发与部署。三者层层演进,Spring Boot并非替代,而是对前者的高效封装与增强,适用于微服务与快速开发,而深入理解Spring Framework有助于更好驾驭整体技术栈。
|
2月前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
446 2
|
3月前
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
2876 1
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
存储 JSON Java
540 0
|
3月前
|
人工智能 Java 开发者
【Spring】原理解析:Spring Boot 自动配置
Spring Boot通过“约定优于配置”的设计理念,自动检测项目依赖并根据这些依赖自动装配相应的Bean,从而解放开发者从繁琐的配置工作中解脱出来,专注于业务逻辑实现。
1411 0
|
4月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
820 3
|
5月前
|
前端开发 Java API
基于 Spring Boot 3 与 React 的 Java 学生信息管理系统从入门到精通实操指南
本项目基于Spring Boot 3与React 18构建学生信息管理系统,涵盖前后端开发、容器化部署及测试监控,提供完整实操指南与源码,助你掌握Java全栈开发技能。
281 0