当前位置: 首页 > article >正文

Springboot2笔记核心技术——1.基础入门

目录

1.spring和springboot的区别

1. 框架 vs. 工具

2. 配置方式

3. 启动方式

4. 项目结构

5. 生态系统

2.SpringBoot2入门

1. 创建项目

2. 项目结构

3. 编写主类

4. 添加Controller

5. 配置应用

6. 启动应用

7. 测试应用

8. 进一步学习

3.了解自动配置原理 

1. Spring Boot 特点

1.1 依赖管理

1.2 自动配置

2. 容器功能

2.1 使用注解完成容器功能

2.2 原生配置文件引入

3. 自动配置原理入门

3.1 引导加载自动配置类

3.2 按需开启自动配置项

3.3 定制化修改自动配置

3.4 最佳实践

4. 开发小技巧

4.1 Lombok

4.2 Spring Initializr

4.3 DevTools


1.spring和springboot的区别

1. 框架 vs. 工具

  • Spring:一个全面的Java框架,提供了丰富的功能(如IoC、AOP等),需要手动配置和管理。
  • Spring Boot:基于Spring的框架,旨在简化Spring应用的创建和配置,提供开箱即用的配置。

2. 配置方式

  • Spring:需要大量的XML或Java配置,配置复杂且繁琐。
  • Spring Boot:采用约定优于配置,默认提供许多配置,减少了手动配置的需求。

3. 启动方式

  • Spring:通常需要一个Servlet容器(如Tomcat)来部署和运行。
  • Spring Boot:可以直接运行独立的Spring Boot应用,内嵌Servlet容器,简化了部署过程。

4. 项目结构

  • Spring:项目结构不固定,开发者需要自行设计。
  • Spring Boot:推荐的项目结构明确,有助于更快速地构建和管理项目。

5. 生态系统

  • Spring:更为广泛,涵盖了众多模块和功能。
  • Spring Boot:专注于快速开发和简化配置,常与Spring Cloud等工具结合使用。

2.SpringBoot2入门

1. 创建项目

  • 使用Spring Initializr(https://start.spring.io/)生成项目:
    • 选择项目类型(Maven或Gradle)。
    • 选择Spring Boot版本(如2.x)。
    • 添加所需的依赖(如Spring Web、Spring Data JPA等)。
    • 点击“Generate”下载项目压缩包。

2. 项目结构

解压缩后,项目结构如下:

src 
└── main 
├── java 
│ └── com 
│ └── example 
│ └── demo 
│ └── DemoApplication.java 
└── resources 
├── application.properties

3. 编写主类

DemoApplication.java中,添加主方法:

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

4. 添加Controller

创建一个简单的REST Controller:

package com.example.demo; 
import org.springframework.web.bind.annotation.GetMapping; 
import org.springframework.web.bind.annotation.RestController; 
@RestController 
    public class HelloController { 
    @GetMapping("/hello") 
    public String hello() { 
        return "Hello, Spring Boot!"; 
    } 
}

5. 配置应用

application.properties中进行基本配置:

server.port=8080

6. 启动应用

使用以下命令启动应用:

./mvnw spring-boot:run # Maven 
# 或者 
./gradlew bootRun # Gradle

7. 测试应用

在浏览器中访问 http://localhost:8080/hello,您应该能看到 "Hello, Spring Boot!" 的响应。

8. 进一步学习

  • 数据库集成:可以使用Spring Data JPA与数据库交互。
  • 安全性:引入Spring Security进行安全控制。
  • 微服务架构:结合Spring Cloud构建微服务。

3.了解自动配置原理 

1. Spring Boot 特点

1.1 依赖管理
  • 简化依赖管理:Spring Boot使用spring-boot-starter依赖管理来简化库的引入。通过starter依赖,您可以轻松引入与特定功能相关的所有依赖,如Spring Web、Spring Data等。
1.2 自动配置
  • 自动配置:Spring Boot可以根据项目中的依赖自动配置应用,减少手动配置的需求,提升开发效率。自动配置类通过条件注解进行控制。

2. 容器功能

2.1 使用注解完成容器功能
  1. @Configuration

    • 用于定义一个或多个@Bean方法的类,以表示Spring的配置类。
  2. @Bean、@Component、@Controller

    • @Bean:用于定义Spring管理的Bean,通常在@Configuration类中使用。
    • @Component:用于标识一个Spring组件,Spring会自动扫描并注册。
    • @Controller:用于定义一个控制器,主要用于处理请求。
  3. @ComponentScan、@Import

    • @ComponentScan:用于指定包路径,自动扫描并注册组件。
    • @Import:用于导入其他配置类。
  4. @Conditional

    • 用于在满足特定条件时,才注册Bean。
2.2 原生配置文件引入
  1. @ImportResource
    • 允许您导入传统的XML配置文件,使得Spring Boot可以与旧的Spring应用兼容。

3. 自动配置原理入门

3.1 引导加载自动配置类
  • Spring Boot使用@EnableAutoConfiguration注解来启动自动配置,通过spring.factories文件加载自动配置类。
3.2 按需开启自动配置项
  • 您可以通过在application.propertiesapplication.yml文件中配置spring.autoconfigure.exclude来排除特定的自动配置。
3.3 定制化修改自动配置
  • 您可以自定义Bean以覆盖默认的自动配置,从而实现定制化。
3.4 最佳实践
  • 熟悉自动配置原理和条件注解,可以更好地利用Spring Boot的强大功能。

4. 开发小技巧

4.1 Lombok
  • Lombok是一个可以简化Java代码的库,通过注解生成常用的方法(如getter、setter、构造函数等),减少样板代码。
4.2 Spring Initializr
  • Spring Initializr是一个在线工具,可以快速生成Spring Boot项目,选择依赖和项目配置,省去繁琐的手动设置。
4.3 DevTools
  • Spring Boot DevTools提供热部署功能,支持自动重启和快速开发调试,提升开发效率。


http://www.kler.cn/news/325146.html

相关文章:

  • Java-数据结构-Map和Set-(二)-哈希表 |ू・ω・` )
  • 第八届蓝桥杯嵌入式省赛程序设计题解析(基于HAL库)
  • SQL_having_pandas_filter
  • 天童美语:全国爱牙日|健康护“齿”知识
  • 从0学习React(5)---通过例子体会setState
  • 使用Docker快速本地部署RSSHub结合内网穿透访问RSS订阅源
  • [leetcode]5_最长回文子串
  • UE 计算闭合曲线的符号面积
  • 剩余电流继电器在轨道交通地铁车站的应用
  • 2、Stable Diffusion
  • 906. 超级回文数
  • 数组的实现原理(Java版)
  • 分享几个可以免费使用GPT的网站【2024年必备】
  • 计算机知识科普问答--20(96-100)
  • 【Python】import 引入常用模块
  • 编程练习:探索数学问题的编程解决方案 P137
  • Unity中的功能解释(数学位置相关和事件)
  • android13 系统默认设置静态IP
  • VMware下Ubuntu找不到共享文件夹
  • 4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
  • Latex 自定义运算符加限定条件的实现
  • WPF入门教学十 资源与字典
  • Rust结构体初探
  • linux中实现多路复用服务器
  • 使用Python创建EXE运行器和截图工具
  • 【数据结构和算法实践-排序-总结】
  • 9.24作业
  • Uniapp 打包后的横屏控制
  • 【JavaEE初阶】多线程7(面试要点)
  • MacOS安装MindSpore(2024年最新)