011-spring-整合三方框架的命名空间原理(重要)

根据context标签来学习了解

XML 复制代码
<context:property-placeholder location="jdbc.properties"/>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driver" value="${db.driver}"/>
        <property name="url" value="${db.url}"/>
        <property name="username" value="${db.user}"/>
        <property name="password" value="${db.password}"/>
</bean>

#main方法

#next

#这个地方返回 NamespaceHandler

####最终找到所有的命名空间来自这个地方

####最终找到所有的命名空间来自这个地方

####最终找到所有的命名空间来自这个地方

####最终找到所有的命名空间来自这个地方

最后找到这个地方的对应

复制代码
http\://www.springframework.org/schema/context=org.springframework.context.config.ContextNamespaceHandler

找到这个init方法之后会调用 init方法来加载类

复制代码
java 复制代码
#1、接口
public interface NamespaceHandler {
      void init();
#2、定义了抽象类
public abstract class NamespaceHandlerSupport implements NamespaceHandler {
#3、类实现抽象类
public class ContextNamespaceHandler extends NamespaceHandlerSupport {
    public void init() {

#综上:所以调用了  
NamespaceHandler namespaceHandler = (NamespaceHandler)BeanUtils.instantiateClass(handlerClass);
namespaceHandler.init();

##将需要的类注册到IOC容器(重要)

##将需要的类注册到IOC容器(重要)

##将需要的类注册到IOC容器(重要)

我们如何自定义一个三方命名空间呢

1、继承 extends NamespaceHandlerSupport {

2、重写init方法

3、在init方法中将需要注册的bean加入到ioc容器

4、在META-INF/spring.handlers 中重写映射关系

#####实践案例

#####实践案例

#####实践案例

相关推荐
虹科网络安全12 分钟前
艾体宝产品|深度解读 Redis 8.4 新增功能:原子化 Slot 迁移(下)
数据库·redis·bootstrap
消失的旧时光-19431 小时前
Spring Boot 工程化进阶:统一返回 + 全局异常 + AOP 通用工具包
java·spring boot·后端·aop·自定义注解
NE_STOP1 小时前
Redis--发布订阅命令和Redis事务
java
PAC_3Dame1 小时前
记一次真实的线上OOM
java
有味道的男人1 小时前
对接亚马逊平台接口,商品全量信息一键抓取
数据库
SunnyDays10111 小时前
如何在Java中将Word文档转换为图像(JPEG、PNG或SVG)
java
Web极客码2 小时前
2026年Linux VPS安全加固清单:SSH、防火墙与审计就绪配置
运维·服务器·数据库
Lumos_7772 小时前
Linux -- 线程
java·jvm·算法
知兀2 小时前
【MybatisPlus】后端用枚举类,数据库用tinyint,存在枚举类型转换
java
StockTV2 小时前
印度股票实时数据 NSE和BSE的实时行情、K 线及指数数据
java·开发语言·spring boot·python