自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

原创 spring-core-9-93 | Spring Bean实例化前阶段:Bean的实例化能否被绕开?

Spring Bean 实例化前阶段通过上一节, 我们了解到了 BeanDefinition中关于类的一些信息从文本的形式转换为实在的Class对象,这个过程称为BeanDefinition或者Bean的 ClassLoading,也就是 类加载。接下来我们继续会讨论关于这个类的信息是如何变为一个Bean的示例,也是Spring Bean 的实例化阶段,这个阶段会分为3个阶段,前阶段、中阶段和后阶段,本节我们讨论的是他的前阶段.非主流生命周期- Bean 实例化前阶段事实上 Bean 实例化前阶段

2021-08-10 10:59:45 249

原创 spring-core-9-92 | Spring Bean Class加载阶段:BD对应的Class是怎样加载的?

Spring Bean Class 加载阶段上一节我们分析了关于 BeanDefinition 合并的细节过程, 那么接下来在 Spring Bean 被创建之前, 需要将Bean对应的class进行加载. 那么这里就要涉及到一些细节需要理清.ClassLoader 类加载第一个涉及到 java 里面的一些基础, ClassLoader , 这个东西其实接触框架的同学会更加熟悉, java的类加载主要是依靠 ClassLoader 来进行的.可以参考:java ClassLoader详解Java

2021-08-08 12:40:36 509

转载 Redis-02-1 Centos7安装Redis

Centos7安装Redis一、安装gcc依赖由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装[root@localhost local]# yum install -y gcc二、下载并解压安装包[root@localhost local]# wget http://download.redis.io/releases/redis-5.0.3.tar.gz[root@localhost loca..

2021-08-06 12:00:24 118

原创 spring-core-5-43 | 单一类型依赖查找:如何查找已知名称或类型的Bean对象?

单一类型依赖查找单一类型依赖查找接口- BeanFactory从这里我们可以看到一个特性, BeanFactory是单一查找的接口的核心根据Bean 名称查找• getBean(String)• Spring 2.5 覆盖默认参数:getBean(String,Object…)可以覆盖Bean的构造器的默认参数来获取Bean的实例.建议这个方法不要使用, 十分危险看它的描述, 返回的实例可能是一个shared(单例的)或者independent(原生的), 那么这里就会有一个不好的特点,

2021-08-02 07:17:36 283

原创 spring-core-5-42-2 | 依赖查找的今世前生:Spring IoC容器从Java标准中学到了什么?

依赖查找的今世前生单一类型依赖查找JNDI可以认为是java SE 的传统实现在IDEA中找到如下类:javax.naming.Context里面就是一个传统的JNDI的查询可以看到有比较典型的通过一个key来查找bean的方式:当然这个资源的来源另有讲究, EJB中有 local bean 和 remote bean 两种, 放在这里也是一样的.JavaBeans也有实现类:java.beans.beancontext.BeanContext这是javaBeans规范里面一个特

2021-08-02 07:10:13 106

原创 spring-core-5-42-1 本章目录 - Spring IoC 依赖查找

本章目录 - Spring IoC 依赖查找依赖查找的今世前生单一类型依赖查找集合类型依赖查找层次性依赖查找延迟依赖查找安全依赖查找内建可查找的依赖依赖查找中的经典异常面试题精选...

2021-08-02 07:03:37 72

原创 spring-core-4-40 | 回收Spring Bean:Spring IoC容器管理的Bean能够被垃圾回收吗?

垃圾回收Spring BeanBean 垃圾回收(GC)关闭Spring 容器(应用上下文)执行GCSpring Bean 覆盖的finalize() 方法被回调结论:在ApplicationContext关闭之前,GC是不会回收Bean的,纵然显示的调用也是如此。而在ApplicationContext关闭之后,JVM会在垃圾回收周期中去回收掉Bean。调用close方法就是调用存放bean的concurrentHashMap的clear方法,导致GCRoot不可达,所以就被

2021-08-01 22:44:36 635

原创 spring-core-4-37 | 初始化Spring Bean:Bean初始化有哪些方式?

Bean 初始化(Initialization)@PostConstruct 标注方法实现InitializingBean 接口的afterPropertiesSet() 方法自定义初始化方法• XML 配置:<bean init-method=”init” … />代码里没讲, 与注解是一个性质的• Java 注解:@Bean(initMethod=”init”)• Java API:AbstractBeanDefinition#setInitMethodName(String)

2021-08-01 22:40:22 111

原创 spring-core-4-36 | 实例化Spring Bean:Bean实例化的姿势有多少种?

实例化Spring BeanBean 实例化(Instantiation)常规方式• 通过构造器(配置元信息:XML、Java 注解和Java API )不演示了, 例子太多• 通过静态工厂方法(配置元信息:XML 和Java API )• 通过Bean 工厂方法(配置元信息:XML和Java API )• 通过FactoryBean(配置元信息:XML、Java 注解和Java API )特殊方式• 通过ServiceLoaderFactoryBean(配置元信息:XML、Java 注解

2021-08-01 22:35:30 167 1

原创 spring-core-4-35 | 注册Spring Bean:如何将BeanDefinition注册到IoC容器?

注册Spring BeanBeanDefinition 注册XML 配置元信息• <bean name=”…” … />还有properties文件的方式, 后面予以介绍因为XML的方式之前 讲了太多, 这里就不展开了Java 注解配置元信息• @Bean• @Component• @ImportJava API 配置元信息也是最底层的方式• 命名方式:BeanDefinitionRegistry#registerBeanDefinition(String,BeanDef

2021-08-01 22:13:32 91

原创 spring-core-4-34 | Spring Bean的别名:为什么命名Bean还需要别名?

Spring Bean 的别名Bean 别名(Alias)的价值• 复用现有的BeanDefinition• 更具有场景化的命名方法,比如:代码示例/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional i

2021-04-26 17:32:39 176

原创 spring-core-4-33 | 命名Spring Bean:id和name属性命名Bean,哪个更好?

命名Spring BeanBean 的名称每个Bean 拥有一个或多个标识符(identifiers),这些标识符在Bean 所在的容器必须是唯一的, 但这里的唯一是指在其所在的BeanDefination或BeanFactory中是唯一的, 但并不是应用中是唯一的。通常,一个Bean 仅有一个标识符,如果需要额外的,可考虑使用**别名(Alias)**来扩充。在基于XML(不一定是基于XML文件, 也可能是网络资源) 的配置元信息中,开发人员可用id 或者name 属性来规定Bean 的标识符。

2021-04-26 17:28:21 192

原创 spring-core-4-32 | BeanDefinition元信息:除了Bean名称和类名,还有哪些Bean元信息值得关注?

BeanDefinition 元信息BeanDefinition 元信息一览其中一些特别说明:NameBean 的名称或者ID, 也有其它称谓如 Bean的识别符,ScopeBean 的作用域(如:singleton、prototype 等), 默认是singleton也就是单例模式Constructorarguments Bean 构造器参数(用于依赖注入), 正常 POJO类 是有默认构造器的, 这种比较简单.但如果是引用一些jar中的类, 没有默认构造器, 就需要用这个来帮我们初始

2021-04-26 17:26:21 109

原创 spring-core-4-31 | 定义Bean:什么是BeanDefinition?

第四章 Spring Bean基础本章目录定义Spring BeanBeanDefinition 元信息命名Spring BeanSpring Bean 的别名注册Spring Bean实例化Spring Bean初始化Spring Bean延迟初始化Spring Bean销毁Spring Bean垃圾回收Spring Bean面试题精选定义Spring Bean• 什么是BeanDefinition?• BeanDefiniti

2021-04-26 17:14:40 70

原创 spring-core-3-29 | Spring IoC容器生命周期:IoC容器启停过程中发生了什么?

Spring IoC 容器生命周期• 启动• 运行• 停止代码示例/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership.

2021-04-26 17:12:17 85

原创 spring-core-3-28 | 使用Spring IoC容器:选BeanFactory还是ApplicationContext?

使用Spring IoC 容器BeanFactory 是Spring 底层IoC 容器ApplicationContext 是具备应用特性的BeanFactory 超集以前有种结论:BeanFactory 是 Spring 框架自己用的,ApplicationContext 是给开发者用的。代码示例/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agree

2021-04-26 17:10:07 153

原创 spring-core-3-27 | Spring应用上下文:ApplicationContext除了IoC容器角色,还提供哪些特性?

Spring 应用上下文ApplicationContext 除了IoC 容器角色,还有提供:面向切面(AOP)26中所说, BeanFactory就是一个基本的IoC容器, 而ApplicationContext是它的一个超集, 那么这里AOP的特性也是ApplicationContext进行的简化配置元信息(Configuration Metadata)比如Environment对象, 外部化配置, 注解,比如@Bean, 都是ApplicationContext 提供支持资源管理(Res

2021-04-15 23:07:52 109

原创 spring-core-3-26 | Spring IoC容器:BeanFactory和ApplicationContext谁才是Spring IoC容器?

Spring IoC 容器BeanFactory 和ApplicationContext 谁才是Spring IoC 容器?真正的IOC的底层实现就是BeanFactory的实现类,但ApplicationContext 在底层组合了一个 BeanFactory 实现,是委托DefaultListableBeanFactory来操作getBean等方法的。也因此System.out.println(userRepository.getBeanFactory() ==applicationConte

2021-04-15 23:02:10 104

原创 spring-core-3-25 | Spring IoC配置元信息:Spring IoC有哪些配置元信息?它们的进化过程是怎样的?

Spring IoC 配置元信息Bean 定义配置在xml文件里面那些 id  class等都是这个元信息基于XML 文件基于Properties 文件基于Java 注解基于Java API(专题讨论)IoC 容器配置IoC容器这里主要是对IoC容器做一个控制, 这个通常来说是一个非功能性的特性, 不像上面Bean 定义配置, 不会影响到你的功能行为, 业务行为等基于XML 文件基于Java 注解基于Java API (专题讨论)外部化属性配置基于Java 注解...

2021-04-15 23:01:56 69

原创 spring-core-3-24 | Spring IoC依赖来源:依赖注入和查找的对象来自于哪里?

Spring IoC 依赖来源自定义Bean如 xml中定义的Bean, 是用户自定义的可以通过beanFactory.getBean()的方式能够依赖查找出来容器內建Bean 对象容器内部的Bean对象, 是spring给实例化的可以通过beanFactory.getBean()的方式能够依赖查找出来容器內建依赖非spring的bean, 如 beanFactory, 是spring启动必须的组件, 基础环境不能通过beanFactory.getBean()的方式依赖查找出来代码示例

2021-04-15 22:53:29 158

原创 spring-core-3-23 | Spring IoC依赖注入:Spring提供了哪些依赖注入模式和类型呢?

Spring IoC 依赖注入根据Bean 名称注入根据Bean 类型注入单个Bean 对象集合Bean 对象注入容器內建Bean 对象注入非Bean 对象注入类型实时注入延迟注入代码示例<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XML

2021-04-14 21:54:12 217

原创 spring-core-3-22 | Spring IoC依赖查找:依赖注入还不够吗?依赖查找存在的价值几何?

Spring IoC 依赖查找根据Bean 名称查找实时查找延迟查找根据Bean 类型查找单个Bean 对象集合Bean 对象根据Bean 名称+ 类型查找根据Java 注解查找单个Bean 对象集合Bean 对象代码示例/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file dist

2021-04-14 21:35:49 66

原创 spring-core-2-20 | 构造器注入 VS. Setter 注入:为什么Spring官方文档的解读会与作者的初心出现偏差

构造器注入VS. Setter 注入Spring Framework 对构造器注入与Setter 的论点:来自“Constructor-based or setter-based DI”“The Spring team generally advocates constructor injection, as it letsyou implement application components as immutable objects and ensures that required depen

2021-04-14 19:02:12 236

原创 spring-core-2-19 | 依赖查找 VS. 依赖注入:为什么Spring总会强调后者,而选择性忽视前者?

依赖查找VS. 依赖注入优劣对比两个需要特别注意的点:实现遍历性:依赖查找的繁琐, 主要反映在, 要找到组件, 需要根据目录名称去找相应资源.找到之后再进行注入.而依赖注入就不一样, 一旦确定了依赖的规则之后, 依赖的处理和注入会一步完成API依赖性:要注意不依赖容器API不代表没有侵入性, 这是两个概念....

2021-04-14 19:01:38 101

原创 spring-core-2-18 | 轻量级IoC容器:如何界定IoC容器的“轻重”?

轻量级IoC 容器特征《Expert One-on-One™ J2EE™ Development without EJB™》认为轻量级容器的特征:还是那本书, 这里作者有给出自己的定义来自“Chapter 6. Lightweight Containers and Inversion of Control”• A container that can manage application code.容器可以管理应用的代码, 可以管理代码运行, 比如控制代码启停, 生命周期等.• A conta

2021-04-14 18:57:19 79

原创 spring-core-2-17 | 传统IoC容器实现:JavaBeans也是IoC容器吗?

传统IoC 容器的实现Java Beans 作为IoC 容器特性• 依赖查找• 生命周期管理• 配置元信息BeanInfo这个API中, 属性描述符 PropertyDescriptor可以查看到当前类的相关元信息• 事件BeanInfo这个API中, EventSetDescriptor• 自定义• 资源管理很贫弱, 但是有• 持久化规范• JavaBeans:https://www.oracle.com/technetwork/java/javase/tech/index-

2021-04-14 18:55:06 135

原创 spring-core-2-16 | 除了Spring,还有其它的IOC容器实现吗?

IoC 容器的实现主要实现Java SEJava BeansJava Beans 还有一些GUI的功能.Java ServiceLoader SPI从Java 1.6 开始引入, 被 NetBeans 大量应用, NetBeans通过这种方式来加载一些组件JNDI(Java Naming and Directory Interface)Java命名和目录接口, 帮助我们去查找相应资源, IoC通常是靠名称, 而这里靠目录的话就会有一些嵌套.Java EEEJB(Enterprise Ja

2021-04-14 18:49:05 435

原创 spring-core-2-15 | IoC容器的职责:IoC除了依赖注入,还涵盖哪些职责呢?

IoC 容器的职责维基百科• 维基百科(https://en.wikipedia.org/wiki/Inversion_of_control)在Overview 小节中提到:“Inversion of control serves the following design purposes:IoC通常有以下几个设计目的:• To decouple the execution of a task from implementation.实现与执行的目的之间要产生解耦.• To focus a

2021-04-14 18:43:52 216

原创 spring-core-2-14 | IoC主要实现策略:面试官总问IoC和DI的区别,他真的理解吗?

IoC 主要实现策略维基百科(https://en.wikipedia.org/wiki/Inversion_of_control)Implementation techniques 小节的定义:“In object-oriented programming, there are several basic techniques to implement inversion of control. These are:面向对象编程中, 有以下几种IoC的基础实现策略:Using a service

2021-04-14 07:10:05 118

原创 spring-core-2-13 | IoC发展简介:你可能对IoC有些误会?

IoC 发展简介什么是IoC ?维基百科的解释是这样的, 另外注意英文版和中文版是有区别的, 中文版相对局限, 而英文版又宽泛的感觉没讲啥.In software engineering, inversion of control (IoC) is a programming principle.IoC inverts the flow of control as compared to traditional control flow.In IoC, custom-written portion

2021-04-14 07:06:44 81

原创 spring-core-1-02 | 内容综述

spring核心特征本章主要介绍了整体课程设计- 围绕spring的核心功能展开, 主要有五大部分一, 框架总览站在spring整个framework的体系1. 特性总览包含整个课程的核心特性, 还有数据存储, web技术以及技术整合, 比如第三方整合, 如JPA, redis等2. 版本特性spring从1.0到现在的5.x, 每个版本都有一些新特性3. 模块化设计在spring2 的时候, 对功能进行了模块化的划分, 让用户实现了按需分配, 按照需要引入模块化的包, 不需要把整个s

2021-04-13 23:45:05 178 2

原创 spring-core-1-11 | Spring核心价值:我们能从Spring Framework中学到哪些经验和教训呢?

spring 核心价值列举了最为明显的几个特点spring 的教训越来越重绝对也是问题, 现在spring已经绝对称不上是低侵入框架了

2021-04-13 23:39:50 73 1

原创 spring-core-1-10 | Spring编程模型:Spring实现了哪些编程模型?

Spring 编程模型开头还讲了本教程的git路径和使用的spring源码在哪里下载, IDEA用哪个等.这里的内容后面都会有专题讨论, 听不懂也是很正常…提示个快捷键: ctrl + Q 显示javaDoc

2021-04-13 23:36:24 83 1

原创 spring-core-1-09 | Java EE API整合:为什么Spring要与“笨重”的Java EE共舞?JSR标准还有哪些?

Spring 对Java EE API 整合因为 Java EE 太完备了, 所以spring还是要考虑到对 Java EE 的支持.Java EE Web 技术相关Servlet + JSP(JSR 035) 1.0 + DispatcherServletServlet的API和JSP的API, 这里就避不过去springMVC的核心实现, DispatcherServlet, 其不仅对Servlet的API进行扩展, 同时还进行视图的渲染, 如JSP的渲染.JSR 035 就是对 Servl

2021-04-13 23:34:41 123 1

原创 spring-core-1-08 | JDK API实践:Spring怎样取舍Java I/O、集合、反射、动态代理等API的使用?

JDK 核心API以上的核心API也是工作中对于java常用的, 有必要了解.< Java 5主要罗列的是 Java 1.2 之后的 API,反射是从 Java 1.2 以后开始引入的, 其实就是 Java Beans, 在spring中的引用非常广泛.动态代理也是 spring 1.0 开始 就必须依赖的东西, 就是 Proxy 或者 InvocationHandler 的 API.Java 5运用到大量的新型API.并发框架(J.U.C), 格式化(Formatter), JMX

2021-04-13 23:30:15 141 1

原创 spring-core-1-07 | Java语言特性运用:各种Java语法特性是怎样被Spring各种版本巧妙运用的?

spring 为什么在不同的版本有不同的支持?目的是寻求一个最大的公约数, 比如尽可能迎合更多的版本.其实spring对于 java 的支持是比较靠前的. 但是对版本的要求是靠后的.原因就是我们不太可能在升级的过程中将JDK不断地往最高版本去升级, 从稳定性或者是易用性的角度来说, 这是可取的.Java 语法变化2004java 5 发布, 其实也是 spring 1 发布, 但是当时的spring 只需要 java1.3 就可以, 但是也要考虑到 java 5 的支持, 于是 spring

2021-04-13 23:23:51 98

原创 spring-core-1-06 | Spring模块化设计:Spring功能特性如何在不同模块中组织?

Spring 模块化设计(Modular)spring的模块化设计和java9的模块化设计不是完全对等的, 不过spring的模块化确实可以应用到java9的模块化里面去, 这是为什么呢? 因为spring在某个版本开始将它的模块划分成更细粒度的一些小的JAR包, 这些JAR包可以运用按需分配的方式来依次的依赖.本节讨论目前这林林总总20个模块的一些特性以及使用情况.从PPT可以看到有20个模块, 这些模块的来源可以参考spring的git上的情况:每个模块都是一个单独的目录放在老版本之前不是这

2021-04-13 23:19:02 122

原创 spring-core-1-05 | Spring版本特性:Spring各个版本引入了哪些新特性?

Java 版本依赖与支持因为不同版本涉及到对spring的扩展和深度的实践, 所以要拿出来讨论.关于 spring 的版本区分方法这里做一个简单的说明, 其实 spring 的分布版本是分为三大部分的,第一个部分是主版本, 就是我们看到的1~5.第二个部分是从版本, 包括比如 1.0, 1.1, 2.5等等, 这个版本通常是不提供一些很重要的特性, 基本上保持一个在原有基础的更新.第三个部分是次要版本, 比如说1.0.1, 主要是一个 bug fix或者是部分上面的一个提升java标准版和j

2021-04-13 23:15:30 892 1

原创 spring-core-1-04 | 特性总览:核心特性、数据存储、Web技术、框架整合与测试

核心特性• IoC 容器(IoC Container)必谈内容, 不用多说了• Spring 事件(Events)基于java的标准事件来进行的扩展, 但是有区别, 后面讲• 资源管理(Resources)继承与java的资源管理• 国际化(i18n)基于java的国际化进行实现• 校验(Validation)spring自己进行的API实现, Bean Validation• 数据绑定(Data Binding)spring自己进行的实现, 就是外部文件的一些属性, 如何与jav

2021-04-13 23:10:33 102

原创 spring-core-1-03 | 内容综述

方法论琢磨一下, 前两章的视角非常高, 但同时对知识面考验很大, 很容易从入门到放弃.使用的工具的版本, 不谈版本说代码是流氓行为.

2021-04-13 23:02:36 48 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除