代码编织梦想

chapter01 - Spring概述

相关源代码:(创作不易,点个star呗,感谢🙏)https://github.com/MicahKong/spring_source_code

Spring知识精简版梳理系列

一、什么是Spring?

1、什么是spring?(面试题)

Spring是一个开源的Java EE开发框架。Spring框架的核心功能可以应用在任何Java应用程序中,但对Java EE平台上的Web应用程序有更好的扩展性。Spring框架的目标是使得Java EE应用程序的开发更加简捷,通过使用POJO为基础的编程模型促进良好的编程风格。
在这里插入图片描述

注:POJO和JavaBean的区别

(1)POJO 和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Pure Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比 POJO复杂很多, Java Bean 是可复用的组件,对 Java Bean 并没有严格的规范,理论上讲,任何一个 Java 类都可以是一个 Bean 。但通常情况下,由于 Java Bean 是被容器所创建(如 Tomcat) 的,所以 Java Bean 应具有一个无参的构造器。
(2)通常 Java Bean 还要实现 Serializable 接口用于实现 Bean 的持久性。 Java Bean 是不能被跨进程访问的。JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被拿去用,这个扳子也提供多种功能(你可以拿这个扳子扳、锤、撬等等),而这个扳子就是一个组件。一般在web应用程序中建立一个数据库的映射对象时,我们只能称它为POJO。POJO(Plain Old Java Object)这个名字用来强调它是一个普通java对象,而不是一个特殊的对象,其主要用来指代那些没有遵从特定的Java对象模型、约定或框架(如EJB)的Java对象。理想地讲,一个POJO是一个不受任何限制的Java对象(除了Java语言规范)。

2、Spring有哪些优点?(面试题)

轻量级:Spring在大小和透明性方面绝对属于轻量级的,基础版本的Spring框架大约只有2MB。

控制反转(IoC):Spring使用控制反转技术实现了松耦合。依赖被注入到对象,而不是创建或寻找依赖对象。

面向切面编程(AOP): Spring支持面向切面编程,同时把应用的业务逻辑与系统的服务分离开来。

容器:Spring包含并管理应用程序对象的配置及生命周期。

MVC框架:Spring的web框架是一个设计优良的web MVC框架,很好的取代了一些web框架。

事务管理:Spring对下至本地业务上至全局业务(JAT)提供了统一的事务管理接口。

异常处理:Spring提供一个方便的API将特定技术的异常(由JDBC, Hibernate, 或JDO抛出)转化为一致的、Unchecked异常。

3、Spring 有两个核心部分:IoC 和AOP

    (1)	IoC:控制反转,把创建对象过程交给 Spring进行管理
    (2)	AOP:面向切面,不修改源代码进行功能增强

4、Spring 特点

    (1)	方便解耦,简化开发
    (2)	Aop编程支持
    (3)	方便程序测试
    (4)	方便和其他框架进行整合
    (5)	方便进行事务操作
    (6)	降低 API开发难度

5、目前使用Spring 版本 5.x

6、Spring架构图,Spring由哪些模块组成?(面试题)

Spring 总共大约有 20 个模块, 由 1300 多个不同的文件构成。 而这些组件被分别整合在核心容器(Core Container) 、 AOP(Aspect Oriented Programming)和设备支持(Instrmentation) 、数据访问与集成(Data Access/Integeration) 、 Web消息(Messaging) 、 Test等 6 个模块中。 以下是 Spring 5 的模块结构图:
在这里插入图片描述
图来源于官网,以下各个模块的介绍。
在这里插入图片描述

二、第一个Spring项目

1、下载Spring,目前版本5.3.4

https://repo.spring.io/release/org/springframework/spring/
在这里插入图片描述
下载完成后,解压如下:
在这里插入图片描述

2、打开Idea创建一个Java工程,并新建一个普通的Java Model

在这里插入图片描述

3、进入下载的Spring压缩包下面的libs目录中,将其中的核心jar包导入项目

在这里插入图片描述
并导入一个commons-logging-1.2.jar,下载链接:http://commons.apache.org/proper/commons-logging/download_logging.cgi

4、创建一个User.java

/**
 * @Author m.kong
 * @Date 2021/2/23 上午11:45
 * @Version 1.0
 */
public class User {
    public void add(){
        System.out.println("add.......");
    }
}

5、在src目录下创建Spring配置文件,bean1.xml

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--配置User对象创建-->
    <bean id="user" class="com.micah.spring.User"/>
</beans>

6、测试,BeanTest.java

@Test
    public void testAdd() {
        //1 加载 spring 配置文件 
        ApplicationContext context =
                new ClassPathXmlApplicationContext("bean1.xml");
        //2 获取配置创建的对象 
        User user = context.getBean("user", User.class);
        System.out.println(user);
        user.add();
    }

在这里插入图片描述
这样就实现了将对象的创建过程,交给了Spring。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_35843514/article/details/114287046

链路追踪 skywalking 源码分析 —— agent 插件体系_图灵学院的博客-爱代码爱编程_instmethodsinter

本文主要基于 SkyWalking 3.2.6 正式版 1. 概述 2. 插件的加载 3. 插件的匹配 4. 插件的拦截 1. 概述 本文主要分享 SkyWalking Agent 插件体系。主要涉及三个流程 : 插件的加载 插件的匹配 插件的拦截 可能看起来有点抽象,不太容易理解。淡定,我们每个小章节进行解析。 本文涉及到的类

Spring面试知识点精简版-爱代码爱编程

目录   Spring 什么是Spring Spring MVC流程 解决循环依赖 Bean的生命周期 Bean的作用域 IOC(DI) Spring AOP Spring 什么是Spring Spring是个包含一系列功能的合集,如快速开发的Spring Boot,支持微服务的Spring Cloud,支持认证与鉴权的Spring

Spring Boot 监控端点 Actuator 入门-爱代码爱编程

1. 概述 现在在阅读本文的胖友,估计绝大多数都是 Java 开发者。很多时候,我们只关心开发部分,但是应用在部署在生产环境下,我们还需要考虑应用的管理与监控。例如说,应用是否健康存活、应用的 JVM 监控信息、服务器的监控信息(CPU、内存、磁盘等等)。 如果我们为应用的管理与监控做相应的开发,是需要一定的成本的。幸运的是,在 Spring Boot

又双叒叕来更新啦!Hadoop———MapReduce篇-爱代码爱编程

文章目录 MapReduce(计算)MapReduce概述MapReduce定义MapReduce的优缺点核心思想MapReduce计算程序运行时的相关进程官方WordCount源码MapReduce编程规范手动实现WordCountWindows上Java程序实现集群上运行序列化序列化概述自定义bean对象实现序列化接口实操实现MapReduce

项目监控之Spring Boot 监控端点 Actuator 入门-爱代码爱编程

  1. 概述 应用在部署在生产环境下,我们还需要考虑应用的管理与监控。例如说,应用是否健康存活、应用的 JVM 监控信息、服务器的监控信息(CPU、内存、磁盘等等)。 如果我们为应用的管理与监控做相应的开发,是需要一定的成本的。幸运的是,在 Spring Boot 框架提供了一个非常重要的新组件 spring-boot-actuator 

Spring知识点精简版梳理(二)—— IoC与DI-爱代码爱编程

Spring —— IOC(控制反转)与DI(依赖注入) 相关源代码:(创作不易,点个star呗,感谢🙏)https://github.com/MicahKong/spring_source_code Spring知识精简版梳理系列 chapter 01 – Spring概述https://blog.csdn.net/qq_35843514/arti

Spring知识点精简版梳理(三)—— Spring Beans-爱代码爱编程

chapter03 - Spring Beans 相关源代码:(创作不易,点个star呗,感谢🙏)https://github.com/MicahKong/spring_source_code Spring知识精简版梳理系列 chapter 01 – Spring概述https://blog.csdn.net/qq_35843514/article/

Spring知识点精简版梳理(四)—— Spring AOP-爱代码爱编程

Spring AOP(面向切面编程) 相关源代码:(创作不易,点个star呗,感谢🙏)https://github.com/MicahKong/spring_source_code Spring知识精简版梳理系列 chapter 01 – Spring概述https://blog.csdn.net/qq_35843514/article/detail

Spring知识点精简版梳理(五)—— Spring JDBC数据访问-爱代码爱编程

Spring JDBC 数据访问 相关源代码:(创作不易,点个star呗,感谢🙏)https://github.com/MicahKong/spring_source_code Spring知识精简版梳理系列 chapter 01 – Spring概述https://blog.csdn.net/qq_35843514/article/details/

spring知识点整理(转载+整理)-爱代码爱编程

sprng与mvc的关系spring是一个一站式的框架,提供了表现层(springmvc)到业务层(spring)再到数据层的全套解决方案,spring看成是一个工具箱,里面有各种工具,springmvc只是其中的一把扳手 IOC 控制反转①IOC是什么? Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接new(导致类之间高耦合

Spring知识点精简版梳理(七)—— Spring5新特性-爱代码爱编程

chapter07 - Spring5新特性 相关源代码:(创作不易,点个star呗,感谢🙏)https://github.com/MicahKong/spring_source_code Spring知识精简版梳理系列 chapter 01 – Spring概述https://blog.csdn.net/qq_35843514/article/de

Spring事务管理-爱代码爱编程

Spring知识点精简版梳理(六)—— Spring事务管理 Spring事务管理 一、什么是事务? 1、事务的定义 (1)事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果有一个失败所有操作都失败。 (2)案例分析 如上述例子,Micah给Maruko转账,只有在转账成功的情况下,Micah的账户余额才会减少,Maruko的账户余

Spring知识点精简版梳理(六)—— Spring事务管理-爱代码爱编程

Spring事务管理 文章目录 Spring事务管理 一、什么是事务? 1、事务的定义 2、事务的四大特性 3、Spring事务管理 (1)编程式事务管理 (2)声明式事务管理 4、搭建事务操作环境 (1)创建数据表 (2)创建 service,搭建 dao,完成对象创建和注入关系 (3)在 dao 创建两个方法:多钱和少钱的方法,在 service 创建