springBean了解

springBean了解 1. 定义springBean 2. Beandefinition 元信息 3. 命名spring bean 4. spring bean的别名 5. 注册spring Beandefinition 注册BeanDefinition 方式 1. xml <beans> <description>ggBall的bean工厂</description> <import resource="textBean.xml"/> <alias name="veryComplexDomain" alias="vcd"/> <bean id="user" class="com.zhu.entity.User" > <constructor-arg index="0"> <ref bean="son"/> </constructor-arg> </bean> <bean id="son" class="com.zhu.entity.Son"> <property name="id" value="1"/> <property name="name" value="小名"/> </bean> </beans> 2. 注解 (@Bean,@Component,@Import) @Configuration @Import(User.class) public class Config { @Bean public User user(){ return new User(); } @Bean public Son son() { return new Son(); } } 3. java Api BeanDefinitionRegistry#registerBeanDefinition /** * 命名方式 注册BeanDefinition * registry.registerBeanDefinition(beanName,beanDefinition); * @param registry * @param beanName * @param classBean */ public static void registerBeanDefinition(BeanDefinitionRegistry registry,String beanName,Class classBean) { BeanDefinitionBuilder definitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(classBean); definitionBuilder.addPropertyValue("name","xxx") .addPropertyValue("id","1"); AbstractBeanDefinition beanDefinition = definitionBuilder.getBeanDefinition(); registry.registerBeanDefinition(beanName,beanDefinition); } BeanDefinitionReaderUtils#registerWithGeneratedName /** * 非命名方式 注册BeanDefinition * BeanDefinitionReaderUtils.registerWithGeneratedName(beanDefinition,registry); * @param registry * @param classBean */ public static void registerBeanDefinition(BeanDefinitionRegistry registry,Class classBean) { BeanDefinitionBuilder definitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(classBean); definitionBuilder.addPropertyValue("name","xxx_1") .addPropertyValue("id","1"); AbstractBeanDefinition beanDefinition = definitionBuilder.getBeanDefinition(); BeanDefinitionReaderUtils.registerWithGeneratedName(beanDefinition,registry); } 6. 实例化spring bean 我个人理解bean的元信息是Bean初始化时所需要的配置参数。 ...

April 19, 2022 · 3 min

spring的配置信息

spring的配置信息 当bean注入BeanFactory和ApplicationContext,分析依赖对象的来源,是否是ioc容器内的Bean? ...

April 14, 2022 · 1 min

面向对象设计

编写高质量代码的要素 谈面向对象 什么是面向对象编程和面向对象编程语言? 面向对象编程的英文缩写是 OOP,全称是 Object Oriented Programming。 对应地,面向对象编程语言的英文缩写是 OOPL,全称是 Object Oriented Programming Language。 面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石 。 ...

April 14, 2022 · 1 min

为什么学习设计模式

为什么要学习设计模式 应对面试中的设计模式相关问题 告别写被人吐槽的烂代码 提高复杂代码的设计和开发能力 让读源码、学框架事半功倍 为你的职场发展做铺垫 自己是为了第2,4点来学设计模式的 ...

April 14, 2022 · 2 min

数组与切片

数组与切片 数组 初始化数组 申明长度 numbers := [5]int{1,2,3,4,5} 不申明长度 numbers := [...]int{1,2,3,4,5} 切片(长度可变) 概念 不储存数据,只是对底层数组的描述,切片是数组的引用

April 6, 2022 · 1 min
总访问量 总访客数