Spring Boot入门&整合常用框架整理丨深度好文

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

一、SpringBoot简介

1.1 原有Spring优缺点分析

1.1.1 Spring的优点分析

Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。无需开发重量级的Enterprise JavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能。

1.1.2 Spring的缺点分析

虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是很多XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。

所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但与此同时它要求的回报也不少。

除此之外,项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度。

1.2 SpringBoot的概述

1.2.1 SpringBoot解决上述Spring的缺点

SpringBoot对上述Spring的缺点进行的改善和优化,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。

1.2.2 SpringBoot的特点

为基于Spring的开发提供更快的入门体验

开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值来满足特定的需求提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等

SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式

1.2.3 SpringBoot的核心功能

起步依赖

起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。
简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。

自动配置

Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。

注意:起步依赖和自动配置的原理剖析会在第三章《SpringBoot原理分析》进行详细讲解

二、SpringBoot快速入门

2.1 代码实现

2.1.1 创建Maven工程

使用idea工具创建一个maven工程,该工程为普通的java工程即可

2.1.2 添加SpringBoot的启动器

SpringBoot要求,项目要继承SpringBoot的起步依赖spring-boot-starter-parent

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

指定使用的jdk版本

<properties>
    <java.version>1.8</java.version>
</properties>

SpringBoot要集成SpringMVC进行Controller的开发,所以项目要导入web的启动依赖

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

2.1.3 编写SpringBoot引导类

要通过SpringBoot提供的引导类起步SpringBoot才可以进行访问

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

2.1.4 编写Controller

在引导类MySpringBootApplication同级包或者子级包中创建QuickStartController

package com.test.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class QuickStartController {
	@RequestMapping("/quick")
	    @ResponseBody
	    public String quick(){
		return "springboot 访问成功!";
	}
}

2.1.5 测试

  • 启动方式一:启动MySpringBootApplication类中的main方法
  • 启动方式二:使用Maven命令spring-boot:run执行即可

控制台打印日志如下:

通过日志发现,Tomcat started on port(s): 8080 (http) with context path ‘’

tomcat已经起步,端口监听8080,web应用的虚拟工程名称为空

打开浏览器访问url地址为:http://localhost:8080/quick

三、SpringBoot深度体验

3.1 整合Spring Data JPA

3.1.1 添加Spring Data JPA的启动器

<!-- springBoot JPA的起步依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

3.1.2 添加数据库驱动依赖

<!-- MySQL连接驱动 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

3.1.3创建数据库

创建一个数据库,并在数据库中创建user表

-- ----------------------------
-- Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) DEFAULT NULL,
  `password` varchar(50) DEFAULT NULL,
  `name` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'zhangsan', '123', '张三');
INSERT INTO `user` VALUES ('2', 'lisi', '123', '李四');

3.1.4 创建配置文件

在maven工程的man/java/resources目录下创建名为“application.properties”的配置文件,其中配置数据库和jpa的相关属性

#DB Configuration:
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
#JPA Configuration:
spring.jpa.database=MySQL
sp
Redis+Nginx+设计模式+Spring全家桶+SQL+Dubbo技术好精选整理 最近花了很长的时间去搜罗Java核心技术好,我把每个Java核心技术的优选章都整理成了一个又一个的档。昨天也是终于全部整理好了,今天就把这些东西分享给老铁们,也能为老铁们省去不少麻烦,想学什么技能了,遇到哪方面的问题了 直接打开档学一学就好了。不多bb了,直接上干货! 所有技术好精选档都整理到网盘了。 领取方式:转发+关注,然后私信回复 “技术” 即可获得免费领取方式! 一、... 阅读详情

相关推荐

SpringBoot 快速入门(保姆级详细教程)

SpringBoot快速入门,保姆级别超详细,解决IDEA创建SpringBoot项目一直转圈圈。

xmp 1万+

SpringBoot入门到精通(全)

前言 ==本博结合软件idea进行主要讲解== **springboot的特性主要有** - 简化 Spring 应用程序的创建和开发过程 - 抛弃了繁琐的 xml 配置过程,采用大量的默认配置简化以及注解反射 - 直接使用 java main 方法启动内嵌的 Tomcat 服务器运行 Spring Boot 程序,不需要部署 war 包件 **四大核心**分别为自动配置、起步依赖、Actuator和命令行界面

码农研究僧的博客 7万+

Spring Boot 完整教程 - 从入门到精通(全面版)

Spring Boot 是由 Pivotal 团队提供的基于 Spring 框架的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。Spring Boot 核心理念:约定优于配置开箱即用微服务友好// 自动配置类@Bean// 配置属性类private String prefix = "默认前缀";// 服务类myservice:prefix: "自定义前缀"// 1. 配置属性类@Data// 2. 服务类。

weixin_51040479的博客 2694

超详细的Springboot入门教程,看了必会

超详细的Springboot入门教程,看了必会

weixin_48227718的博客 2万+

SpringBoot基础

SpringBoot基础 学习目标: 能够理解Spring的优缺点 能够理解SpringBoot的特点 能够理解SpringBoot的核心功能 能够搭建SpringBoot的环境 能够完成application.properties配置件的配置 能够完成application.yml配置件的配置 能够使用SpringBoot集成Mybatis 能够使用SpringBoot集成Junit 能够...

vampire_Violet的博客 2998

spring boot整合logback和mybatis详解

wongHLOGPATH/{LOG_PATH}/LOGP​ATH/{APPDIR}/wongH_log_error.logLOGPATH/{LOG_PATH}/LOGP​ATH/{APPDIR}/error/wongH_log-error-%d{yyyy-MM-dd}.%i.log10MBtrue%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level — [%thread] %logger Line:%-3L - %msg%nutf-8errorACCEPTDENYLOGPATH/{LOG

2301_82242251的博客 1120

Spring Boot 常用注解面试题深度解析

Spring Boot 常用注解面试题深度解析

欢迎您的莅临,感谢您的阅读。 5791

JVM & Spring Boot 深度解析

详细解析了JVM和Spring Boot的知识体系,包括类加载机制、内存模型、垃圾回收、自动配置、配置件管理、监控与日志等方面。通过学习这些知识点,可以更好地理解和应用JVM和Spring Boot技术,提高Java应用程序的性能和可维护性。📥博主的人生感悟和目标- 💂博客主页Java程序员廖志伟- 👉开源项目Java程序员廖志伟- 🌥哔哩哔哩Java程序员廖志伟- 🎏个人社区Java程序员廖志伟- 🔖个人微信号SeniorRD。

MoneyHacksPro的博客 1030

Spring Boot 整合 OpenFeign 教程

OpenFeign是 Netflix 开源的声明式 HTTP 客户端,通过接口和注解简化服务间 HTTP 调用。与 Spring Cloud 深度整合后,可自动实现负载均衡(配合 Ribbon)和服务发现(配合 Eureka)。

qq479850581的博客 1264

Spring Boot 常用注解分类整理(含用法示例)

基于Kafka+ElasticSearch+MongoDB+Redis+XXL-Job日志分析系统(学习)配置即权限:从传统开源 RBAC 框架到 SPARK 的六层数据护盾,告别改权限就要改代码的魔咒。c++&MFC 用boost.asio库写的串口功能,包含发送、异步接收、打开、重连、关闭功能。Windows下NVM保姆级指南:安装、切换版本、指定路径+淘宝镜像配置,一次搞定!第2集:技术选型的智慧:Flask vs FastAPI,GLM-4 vs GPT。

slngX_nf2si的博客 291

一名合格的Java后端工程师或架构师必须要掌握 Spring Framework、Spring BootSpring Cloud

对于Java工程师来说,几乎没有没听过大名鼎鼎的Spring框架的,Spring框架早已成为了Java后端开发事实上的行业标准,可以说,是Spring成就了JavaSpring也成为Java程序员必修课之一。 同时,随着Spring BootSpring Cloud的出现,使得开发工程师能更高效的利用Spring和其他基础设施快速搭建系统,Spring全家桶的诞生又一次解放了大家的生产力。 经常有粉丝后台留言有关Spring全家桶学习的问题,大家遇到的困惑无非是这些方面: 1、刚刚入行或转行的兄弟

Java高级面试 4746

JVM & Spring Boot深度解析

自定义类加载器允许开发者控制类的加载过程。例如,可以实现自己的类加载器来加载特定来源的类,或者实现热部署。自定义类加载器通常需要继承类,并重写方法。自定义Starter可以帮助开发者快速集成第三方库。开发自定义Starter需要创建一个Maven项目,并添加必要的依赖和自动配置。自定义Endpoint允许开发者扩展Actuator的功能,添加自定义的端点。Spring Boot允许开发者通过实现特定的接口来扩展AutoConfigurationBean的生命周期。

我是Java程序员廖志伟,感谢朋友们的支持!不定期贡献一篇高品质、过万文字、图文并茂且附有视频解说、满载代码示例注释的良心之作,坚决杜绝粗制乱造。 859

Alibaba内部整理Spring boot 保姆级笔记,简直太牛了

本专栏共 7 个模块,28 个节点,介绍 Spring Boot 框架所提供的系统开发解决方案以及源码分析。一、Spring Boot 快速入门介绍 Spring 家族的整个生态系统和技术体系,通过系统分析通过 Spring Boot 构建一个完整 Web 应用程序的功能特性和开发流程。二、Spring Boot Web 开发这部分详细介绍 Spring Boot 中最具特色的配置体系和自动配置机制,并详细给出如何使用、管理和定制配置项的实现方法。三、Spring Boot 数据访问。

wdj_yyds的博客 203

Spring Boot整合Redis缓存:从零到生产级实战指南

缓存是提升应用性能、降低数据库负载的核心技术之一,其原理是将高频访问的数据存储在更快的介质中,减少对后端资源的直接请求。在Java生态中,Spring Boot通过其强大的自动配置和缓存抽象,极大地简化了与Redis等缓存中间件的集成。这种技术组合的价值在于,开发者能以声明式的方式(如使用@Cacheable注解)快速为应用添加缓存层,从而显著提升查询响应速度与系统吞吐量。典型的应用场景包括电商商品详情、用户会话管理、热点数据查询等。本Spring Boot整合Redis实现缓存为具体案例,深入探讨了从

weixin_34315485的博客 432

Spring Boot -01- 快速入门篇(图教程)

Spring Boot -01- 快速入门篇 今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到【慕课网】手机 app,去找【Spring Boot 2.0 深度实践】的课程,令人开心的是,课程完全免费! 什么是 Spring BootSpring Boot 是由 Pivotal 团队提供的全新框架Spring Boot...

肖朋伟 57万+

Spring Boot 全方位知识整理手册

本手册基于 Spring Boot 3.2.x 官方档及最佳实践精简,涵盖基础认知、核心规范、易混概念、实战要点等核心内容,兼顾入门与进阶参考。

2401_89822375的博客 1876

Framework Spring Boot(一)

Framework Spring BootSpring 传统项目整合弊端、成员及应用趋势Spring Boot 简介Spring boot入门案例项目创建及结构分析 最近几天学习了Spring Boot,对其也有些了解,故此在这里做些整理(共三部分) Spring 传统项目整合弊端、成员及应用趋势 Spring项目整合弊端: 1:配置相对比较复杂,有大量的XML件; 2:依赖冲突比较严重,主要是...

diandainxiaomutou的博客 409
上一篇: 阿里Java研发面试题『八部曲』——基础必备
下一篇: Mybatis 和 Hibernate 持久层框架之间的区别是啥?
Java_supermanNO1
博客等级 码龄7年 1169粉丝 331原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值