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

#####实践案例

#####实践案例

#####实践案例

相关推荐
星空下的曙光19 分钟前
mysql 命令语法操作篇 数据库约束有哪些 怎么使用
数据库·mysql
小楓120122 分钟前
MySQL數據庫開發教學(一) 基本架構
数据库·后端·mysql
天天摸鱼的java工程师24 分钟前
Java 解析 JSON 文件:八年老开发的实战总结(从业务到代码)
java·后端·面试
白仑色25 分钟前
Spring Boot 全局异常处理
java·spring boot·后端·全局异常处理·统一返回格式
染落林间色29 分钟前
达梦数据库-实时主备集群部署详解(附图文)手工搭建一主一备数据守护集群DW
数据库·sql
喵手32 分钟前
反射机制:你真的了解它的“能力”吗?
java·后端·java ee
kaika142 分钟前
告别复杂配置!使用 1Panel 运行环境功能轻松搭建 Java 应用
java·1panel·建站·halo
有梦想的攻城狮1 小时前
Java 11中的Collections类详解
java·windows·python·java11·collections
颜颜yan_1 小时前
企业级时序数据库选型指南:从传统架构向智能时序数据管理的转型之路
数据库·架构·时序数据库
lichenyang4531 小时前
管理项目服务器连接数据库
数据库·后端