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

#####实践案例

#####实践案例

#####实践案例

相关推荐
我的golang之路果然有问题5 小时前
Docker 之常用操作(实习中的)
java·运维·笔记·docker·容器·eureka
Elseide艾思5 小时前
数字经济专利数据库(1994年更新至今)
数据库
我命由我123455 小时前
Kotlin 面向对象 - 装箱与拆箱
android·java·开发语言·kotlin·android studio·android jetpack·android-studio
optimistic_chen5 小时前
【Redis系列】事务特性
数据库·redis·笔记·缓存·事务
天荒地老笑话么5 小时前
IntelliJ IDEA 运行 Tomcat 报错:Please, configure Web Facet first!
java·前端·tomcat·intellij-idea
踏月的造梦星球5 小时前
浅究Oracle迁移至DM8产生数据文件膨胀的原因
数据库·oracle
cly15 小时前
使用 JAR 包部署 Java 应用(以 NginxWebUI 为例)
java·开发语言·jar
是一个Bug5 小时前
Java后端开发面试题清单(50道) - 分布式基础
java·分布式·wpf
有什么东东5 小时前
java-枚举类、抽象类、接口、内部类
java·开发语言