【写在前面】

  • 长期做基于Spring Boot的企业应用,计划将与应用相关的技术点,通过简介、步骤、示例的方式,记录并分享出来,用于作为Spring Boot入门的记录与教程
  • 计划的内容有:
    • Spring简介
    • 第一个Spring Boot项目
    • Maven简介
    • 使用RESTful API提供后端服务
    • 自动注入与自动装配常用注解
    • application.properties
    • Lombok
    • Actuator和Admin
    • Swagger
    • AOP
    • ControllerAdvice
    • Interceptor
    • Filter
    • Application、Session、Request&Response
    • 文件上传和文件下载
    • 数据访问
    • DTO
    • 标准响应封装
    • 复杂业务下的数据访问
    • 缓存
    • 后端HTTP请求
    • 定时任务
    • 消息队列
    • 打包和部署

工具准备

  • JDK 1.8
  • IntellJ IDEA
  • MySQL 5.7社区版
  • Navicat

后端技术概要

  • 现在企业级应用中,多采用前后端分离开发形式
  • 在Java技术栈的后端开发中,多以Spring Boot开发REST接口形式提供服务
  • Java、Java Web、Spring为Spring Boot应用提供了基石
  • 要很好的开发一个后端项目,需要掌握与Spring Boot相关的很多内容,包括
    • Maven:通过pom.xml配置快速引入依赖包,快速构建与发布

    • 集成数据访问组件:MyBatis及MyBatis plus集成与使用

    • 集成缓存:EhCache、Redis缓存工具使用

    • Swagger:提供可阅读了后端接口

    • Git:IDE中集成进行代码管理

    • Tomcat:项目发布到Tomcat

    • Nginx:项目在Linux运行并通过Nginx反射代理出去

Spring简介

概述

  • Spring是一个支持快速开发Java企业级应用程序的框架,可以和大量的开源框架集成
  • Spring是一个IoC和AOP容器框架
  • 由20多个模块组成,1300多个文件或组件构成,这些组件被分别整合在核心容器(Core Container)、AOP(Aspect Oriented Programming)、设备支持(Instrumentation)、数据访问及集成(Data Access/Integration)、Web、消息处理(Messaging)、Test等模块集合
  • 在Spring基础上诞生了很多项目,如Spring Data、Spring Security、Spring MVC、Spring Boot等

IoC(Inversion of Control)

  • 控制反转,是一种设计思想,将原来用户主动创建所有对象,转变为,大部分重要的对象使用容器创建,并由容器管理对象的生命周期,减少代码间的耦合
  • 核心逻辑是,通过借助“第三方”,来实现具有依赖关系的对象间解耦
  • Spring中提供了完备的IoC容器,也称Spring容器,即“第三方”
  • 下图左边为传统new对象方式使用对象;右边为借助"第三方”Spring容器方式通过自动注入、自动装配使用

DI(Dependency Injection)

  • 依赖注入,控制反转的一种实现方式或另一种表述方式
  • 当对象对其他对象有依赖的时候,通过配置或自动注入并装配使用;如Student对象需要Class对象的时候,Class对象可以通过属性注入的方式注入到Student对象

Spring特点

优点

  • Spring属于低侵入,代码污染极低
  • 使用Spring容器,降低组件之间的耦合,更专注于业务逻辑
  • AOP的很好支持,方便面向切面编程
  • 提供众多服务组件,事务管理等功能,对主流的框架提供集成支持,如Hibernate,Struts2,JPA等
  • Spring的高度可开放性,不强制应用完全依赖于Spring,可自由选择Spring部分或全部来实现业务

缺点

  • 重量级框架,里面包含了很多组件,比如数据访问、MVC、事务、AOP等,入门门槛高
  • 集成和配置复杂,尤其是集成第三方组件或框架时,需要进行XML配置
  • 构建和部署复杂,比如要依赖第三方的Web服务器

示例

创建一个Spring控制台应用(使用IDEA)

创建步骤

  1. File菜单中选择New Project
  2. 在菜单中选择Spring,只勾选 Spring,不选择其他项
  3. 项目创建完成后,相应的Spring的jar包都加载到依赖中了,存储在lib目录,也可以往里面添加自己的Jar包
  4. 在src目录下创建一个实体类(也可以是相应的业务类),如UserEntity
  5. 在src目录下创建一个Spring配置文件(右键New->XML Configuration File->Spring Config),并配置相关bean,如针对UserEntity的bean
  6. 在src目录下创建一个带main方法的类,使用ClassPathXmlApplicationContext,加载XML中的bean配置,并通过getBean获取容器中的对象bean

具体内容见附件1-spring-console-demo:https://files.cnblogs.com/files/sangrei/1-spring-console-demo.zip?t=1667127156。

Spring Boot入坑-1-入坑准备&Spring简介的更多相关文章

  1. Spring Boot 2.0(五):Docker Compose + Spring Boot + Nginx + Mysql 实践

    我知道大家这段时间看了我写关于 docker 相关的几篇文章,不疼不痒的,仍然没有感受 docker 的便利,是的,我也是这样认为的,I know your felling . 前期了解概念什么的确实 ...

  2. 81. Spring Boot集成JSP疑问【从零开始学Spring Boot】

    [原创文章,转载请注明出处] 针对文章: ()Spring Boot 添加JSP支持[从零开始学Spring Boot] 有网友提了这么一些疑问: 1.Spring Boot使用jsp时,仍旧可以打成 ...

  3. (39.4) Spring Boot Shiro权限管理【从零开始学Spring Boot】

    在读此文章之前您还可能需要先了解: (39.1) Spring Boot Shiro权限管理[从零开始学Spring Boot] http://412887952-qq-com.iteye.com/b ...

  4. (39.2). Spring Boot Shiro权限管理【从零开始学Spring Boot】

    (本节提供源代码,在最下面可以下载) (4). 集成Shiro 进行用户授权 在看此小节前,您可能需要先看: http://412887952-qq-com.iteye.com/blog/229973 ...

  5. Spring Boot 2.0系列文章(五):Spring Boot 2.0 项目源码结构预览

    关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/04/15/springboot2_code/ 项目结构 结构分析: Spring-boot-pr ...

  6. 一个很有趣的示例Spring Boot项目,使用Giraphe CMS和Spring Boot

    6: 这是一个很有趣的示例Spring Boot项目,使用Giraphe CMS和Spring Boot. Giraphe是基于Spring Boot的CMS框架. https://github.co ...

  7. 深入Spring Boot:那些注入不了的Spring占位符(${}表达式)

    Spring里的占位符 spring里的占位符通常表现的形式是: <bean id="dataSource" destroy-method="close" ...

  8. (转)Spring Boot 2 (九):【重磅】Spring Boot 2.1.0 权威发布

    http://www.ityouknow.com/springboot/2018/11/03/spring-boot-2.1.html 如果这两天登录 https://start.spring.io/ ...

  9. (转)Spring Boot 2 (六):使用 Docker 部署 Spring Boot 开源软件云收藏

    http://www.ityouknow.com/springboot/2018/04/02/docker-favorites.html 云收藏项目已经开源2年多了,作为当初刚开始学习 Spring ...

  10. (转)Spring Boot(二十):使用 spring-boot-admin 对 Spring Boot 服务进行监控

    http://www.ityouknow.com/springboot/2018/02/11/spring-boot-admin.html 上一篇文章<Spring Boot(十九):使用 Sp ...

随机推荐

  1. 如何创建可引导的 macOS Sonoma 安装介质

    2023 年 9 月 26 日(北京时间 27 日凌晨)macOS Sonoma 正式版现已发布. 如何创建可引导的 macOS Sonoma 安装介质 如何创建可引导的 macOS 安装器 | 如何 ...

  2. 前端三件套系例之CSS——CSS3基础布局

    文章目录 css基础布局 1.布局相关的标签 2.盒子模型 2-1 什么是盒子模型 2-2 margin外边距 2-3 padding内填充 2-4 案例 3.浮动(float) 3-1 什么是浮动 ...

  3. Factors 分解质因数

    package com.yourself.yours; import java.util.Scanner; /** ****************************************** ...

  4. SSH 免秘钥登录

    yum -y install expect ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa for i in 192.168.1.11 1 ...

  5. 市二模&中考游记

    市二模 过于久远,记不清了.当时由于不想写游记浪费备考时间所以没写. 然后就是我现在真的记不住,算了不写了( 大概是 140+150+135.5+89+68 吧. 中考 内容以各类奇闻逸事为主( \( ...

  6. java值传递机制

    目录 1. 基本数据类型 2. 引用数据类型 3. 总结 1. 基本数据类型 public class ValueTransferTest { public static void main(Stri ...

  7. Langchain-Chatchat项目:4.1-P-Tuning v2实现过程

      常见参数高效微调方法(Parameter-Efficient Fine-Tuning,PEFT)有哪些呢?主要是Prompt系列和LoRA系列.本文主要介绍P-Tuning v2微调方法.如下所示 ...

  8. String类的valueOf以及动态绑定(多态)

    1.String类的valueOf Class String public static String valueOf(Object obj) Returns the string represent ...

  9. 历时三年,写的一本数据结构与算法pdf,开源了!

    前言 大家好,我是bigsai,很早就在写博客,将文章整理成了一个pdf,并且开源到github上! 自己写东西断断续续也不少时间了,也写了不少东西(虽然是偏向小白),这个其实花费的时间还是比较多的, ...

  10. JavaScript高级程序设计笔记04 变量、作用域与内存

    变量.作用域与内存 变量 特定时间点一个特定值的名称. 分类 原始值:按值访问 复制:两个独立使用.互不干扰 引用值(由多个值构成的对象):按引用访问 操作对象时,实际上操作的是对该对象的引用(ref ...