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 应用配置
相关文章
|
6月前
|
搜索推荐 JavaScript Java
基于springboot的儿童家长教育能力提升学习系统
本系统聚焦儿童家长教育能力提升,针对家庭教育中理念混乱、时间不足、个性化服务缺失等问题,构建科学、系统、个性化的在线学习平台。融合Spring Boot、Vue等先进技术,整合优质教育资源,提供高效便捷的学习路径,助力家长掌握科学育儿方法,促进儿童全面健康发展,推动家庭和谐与社会进步。
|
6月前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
669 2
|
7月前
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
5949 2
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
存储 JSON Java
798 0
|
8月前
|
监控 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注册中心服务 构建商品
1221 3
|
10月前
|
安全 Java 数据库
Spring Boot 框架深入学习示例教程详解
本教程深入讲解Spring Boot框架,先介绍其基础概念与优势,如自动配置、独立运行等。通过搭建项目、配置数据库等步骤展示技术方案,并结合RESTful API开发实例帮助学习。内容涵盖环境搭建、核心组件应用(Spring MVC、Spring Data JPA、Spring Security)及示例项目——在线书店系统,助你掌握Spring Boot开发全流程。代码资源可从[链接](https://pan.quark.cn/s/14fcf913bae6)获取。
1735 3
|
12月前
|
Java Spring
Spring框架的学习与应用
总的来说,Spring框架是Java开发中的一把强大的工具。通过理解其核心概念,通过实践来学习和掌握,你可以充分利用Spring框架的强大功能,提高你的开发效率和代码质量。
270 20
|
安全 Java Apache
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 身份和权限认证
本文介绍了 Apache Shiro 的身份认证与权限认证机制。在身份认证部分,分析了 Shiro 的认证流程,包括应用程序调用 `Subject.login(token)` 方法、SecurityManager 接管认证以及通过 Realm 进行具体的安全验证。权限认证部分阐述了权限(permission)、角色(role)和用户(user)三者的关系,其中用户可拥有多个角色,角色则对应不同的权限组合,例如普通用户仅能查看或添加信息,而管理员可执行所有操作。
607 0