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 中重写映射关系

#####实践案例

#####实践案例

#####实践案例

相关推荐
吴可可12333 分钟前
用Teigha修改并保存CAD文件
数据库·算法·c#
西安邮电大学38 分钟前
SpringBean完整生命周期
java·spring
刀法如飞43 分钟前
DDD 与 Ontology 对比分析:哪一种更适合AI时代复杂系统构建?
java·架构·领域驱动设计
SunnyDays10111 小时前
Java 读写 Excel 公式:从基础到高级的实战总结
java·开发语言·excel
wb043072011 小时前
Java 26
java·开发语言
白露与泡影1 小时前
JVM GC调优实战:从线上频繁Full GC到RT降低80%的全过程
java·开发语言·jvm
范什么特西1 小时前
Spring 动态代理 静态代理
java·后端·spring
醇氧1 小时前
Spring 动态注册 Bean 深度解析:从源码到实践
java·后端·spring
yuzhiboyouye2 小时前
内连接,左连接,右连接怎么区别开来?
数据库
笨拙的老猴子2 小时前
[特殊字符] Java GC机制详解:G1、ZGC、Shenandoah全面解析与版本演进对比
java·开发语言