如何进行spring中的默认标签源码解析
发表于:2025-02-13 作者:千家信息网编辑
千家信息网最后更新 2025年02月13日,本篇文章为大家展示了如何进行spring中的默认标签源码解析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。默认标签解析 try {
千家信息网最后更新 2025年02月13日如何进行spring中的默认标签源码解析
本篇文章为大家展示了如何进行spring中的默认标签源码解析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
默认标签解析
try { String parent = null; if (ele.hasAttribute(PARENT_ATTRIBUTE)) {//判断是否有parent标签 parent = ele.getAttribute(PARENT_ATTRIBUTE); } AbstractBeanDefinition bd = createBeanDefinition(className, parent); parseBeanDefinitionAttributes(ele, beanName, containingBean, bd); bd.setDescription(DomUtils.getChildElementValueByTagName(ele, DESCRIPTION_ELEMENT)); parseMetaElements(ele, bd); parseLookupOverrideSubElements(ele, bd.getMethodOverrides()); parseReplacedMethodSubElements(ele, bd.getMethodOverrides()); parseConstructorArgElements(ele, bd); parsePropertyElements(ele, bd); parseQualifierElements(ele, bd); bd.setResource(this.readerContext.getResource()); bd.setSource(extractSource(ele)); return bd; }
parent标签
某个
的父类。这个类用parent的属性, ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");Child parent = applicationContext.getBean(Child.class);System.out.println("name="+parent.getName());System.out.println("age="+parent.getAge());打印结果:name=ouyangfengage=18
createBeanDefinition方法:创建 GenericBeanDefinition 实例
parseBeanDefinitionAttributes 方法:解析下列属性
singleton属性//单例模式只实例化一次scope属性 //作用域request //作用域session //作用域globalsession //每次请求重新实例化一个新的对象abstract属性 //定义抽象类spring容器不会为该类创建对象。lazy-init属性 //延迟加载,启动时不进行加载,getBean时再加载autowire属性:自动装配 No: 不启动自动装配默认值byName:在spring IOC中通过属性的名字的方式查找javaBean依赖的对象并为其注入;byType:在spring IOC中通过属性的类型的方式查找javaBean依赖的对象并为其注入default:由上级标签 的default-autowire属性确定constructor:跟buType一样区别在于不是使用Seter方法注入,而是通过构造函数注入dependsOn属性:bean的依赖关系,被依赖的bean启动时先实例化,关闭时后销毁 beanOne依赖manager和accountDaoautowire-candidate属性:是否自动注入 public class MessagePrinter { private MessageService service; public void setService(MessageService service) { this.service = service; }}MessageServiceDBImpl和MessageServiceFileImpl都是MessageService的实现类, 实例化MessagePrinter时只自动注入MessageServiceFileImpl类primary属性:首选当容器类有多个同一类型的bean改类为首选项init-method属性:初始化类时执行指定方法 destroy-method属性:销毁时执行指定方法factory-method属性:调用工厂类方法 ApplicationContext.getBean("bmwCar"); //获取bean时调用CarStaticFactory类里的getCar方法factory-bean属性: 实例化工厂类 parseMetaElements方法
解析meta元素mete元素的使用BeanDefinition bd;String beanCategoriesExpression = (String)bd.getAttribute(CATEGORY_META_KEY); parseLookupOverrideSubElements方法:解析 lookup-method 标签
public abstract class GetBeanCase {public void showMe(){ this.getBean().showMe();}public abstract User getBean();public class Teacher extends User {public void showMe(){ System.out.println("i is Teacher");}public class Person extends User {public void showMe(){ System.out.println("i is Person");}ApplicationContext context = new ClassPathXmlApplicationContext("appContext.xml");GetBeanCase getBeanCase = (GetBeanCase) context.getBean("getBeanCase");getBeanCase.showMe();打印 i is Person parseReplacedMethodSubElements方法:解析replaced-method标签
ublic class MyBean {public void disPlay(){ System.out.println("me is原来的method");}public class MyBeanReplacer implements MethodReplacer {public Object reimplement(Object obj, Method method, Object[] args) throws Throwable { System.out.println("我替换了原来的method!"); return null;}ApplicationContext context = new ClassPathXmlApplicationContext("replaceMethod.xml");MyBean myBean = (MyBean) context.getBean("myBean");myBean.disPlay();打印我替换了原来的method!
上述内容就是如何进行spring中的默认标签源码解析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
属性
方法
标签
实例
对象
作用
源码
元素
内容
容器
技能
方式
知识
类型
中通
装配
简明
简明扼要
上级
函数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发质保金10%是否合法
数字平台中心管理服务器
浙江伍佰网络技术有限公司
五个关于检索商标的数据库
acces数据库
什么游戏服务器好玩测评
网络安全不烦恼图片
软件开发单价准备
数据库分布部署
c 开发数据库管理软件
网络安全服务厂家排名
网络安全漫画制作
服务器会不会恢复删除的数据
数据库类型primary
服务器硬件型号
上海拿亿互联网科技怎么样
乐高无限怎么加强服务器
加强一体化单位网络安全管理
软件开发对比桥梁建设
数据库牛客网教程
网络安全工程师人才需求
高陵市网络安全宣传
重庆綦江网上生鲜软件开发
什么是容错服务器
win8网络安全
条件格式怎么筛选不同数据库
维普数据库更新
中国知网和万方数据库的相同点
重庆市网络安全总队会寄身份证吗
求生之路服务器加管理员