BeanDefinition基础信息讲解
作者:plumblum 时间:2022-03-23 23:48:37
public class BeanDefinitionHolder implements BeanMetadataElement {
private final BeanDefinition beanDefinition;
private final String beanName;//beanID
@Nullable
private final String[] aliases;//Bean的别名数组
}
public interface BeanDefinition extends AttributeAccessor, BeanMetadataElement {
// 我们可以看到,默认只提供 sington 和 prototype 两种,
// 很多读者可能知道还有 request, session, globalSession, application, websocket 这几种,
// 不过,它们属于基于 web 的扩展。
String SCOPE_SINGLETON = ConfigurableBeanFactory.SCOPE_SINGLETON;
String SCOPE_PROTOTYPE = ConfigurableBeanFactory.SCOPE_PROTOTYPE;
// 比较不重要,直接跳过吧
int ROLE_APPLICATION = 0;
int ROLE_SUPPORT = 1;
int ROLE_INFRASTRUCTURE = 2;
// 设置父 Bean,这里涉及到 bean 继承,不是 java 继承。请参见附录的详细介绍
// 一句话就是:继承父 Bean 的配置信息而已
void setParentName(String parentName);
// 获取父 Bean
String getParentName();
// 设置 Bean 的类名称,将来是要通过反射来生成实例的
void setBeanClassName(String beanClassName);
// 获取 Bean 的类名称
String getBeanClassName();
// 设置 bean 的 scope
void setScope(String scope);
String getScope();
// 设置是否懒加载
void setLazyInit(boolean lazyInit);
boolean isLazyInit();
// 设置该 Bean 依赖的所有的 Bean,注意,这里的依赖不是指属性依赖(如 @Autowire 标记的),
// 是 depends-on="" 属性设置的值。
void setDependsOn(String... dependsOn);
// 返回该 Bean 的所有依赖
String[] getDependsOn();
// 设置该 Bean 是否可以注入到其他 Bean 中,只对根据类型注入有效,
// 如果根据名称注入,即使这边设置了 false,也是可以的
void setAutowireCandidate(boolean autowireCandidate);
// 该 Bean 是否可以注入到其他 Bean 中
boolean isAutowireCandidate();
// 主要的。同一接口的多个实现,如果不指定名字的话,Spring 会优先选择设置 primary 为 true 的 bean
void setPrimary(boolean primary);
// 是否是 primary 的
boolean isPrimary();
// 如果该 Bean 采用工厂方法生成,指定工厂名称。对工厂不熟悉的读者,请参加附录
// 一句话就是:有些实例不是用反射生成的,而是用工厂模式生成的
void setFactoryBeanName(String factoryBeanName);
// 获取工厂名称
String getFactoryBeanName();
// 指定工厂类中的 工厂方法名称
void setFactoryMethodName(String factoryMethodName);
// 获取工厂类中的 工厂方法名称
String getFactoryMethodName();
// 构造器参数
ConstructorArgumentValues getConstructorArgumentValues();
// Bean 中的属性值,后面给 bean 注入属性值的时候会说到
MutablePropertyValues getPropertyValues();
// 是否 singleton
boolean isSingleton();
// 是否 prototype
boolean isPrototype();
// 如果这个 Bean 是被设置为 abstract,那么不能实例化,
// 常用于作为 父bean 用于继承,其实也很少用......
boolean isAbstract();
int getRole();
String getDescription();
String getResourceDescription();
public interface AttributeAccessor {
//设置类属性
void setAttribute(String var1, @Nullable Object var2);
@Nullable
Object getAttribute(String var1);
@Nullable
Object removeAttribute(String var1);
//是否拥有类属性
boolean hasAttribute(String var1);
//获取所有类属性名
String[] attributeNames();
}
来源:https://blog.csdn.net/c_royi/article/details/86523477
标签:java,beandefinition
0
投稿
猜你喜欢
java 定时同步数据的任务优化
2021-09-18 19:48:22
Android中访问sdcard路径的几种方式
2023-06-23 08:08:59
详解Spring Boot 事务的使用
2022-08-09 01:59:07
Kotlin协程的启动方式介绍
2022-05-26 10:29:27
Android控件设置宽高比的方法
2023-02-14 09:30:04
适配Android 8.0版本更新安装与通知栏的一些坑
2022-05-01 13:23:25
Spark SQL关于性能调优选项详解
2021-11-05 22:32:56
spring cloud 阿波罗 apollo 本地开发环境搭建过程
2023-01-25 21:04:50
详解C#中通过委托来实现回调函数功能的方法
2021-08-14 05:02:58
c# 实现获取汉字十六进制Unicode编码字符串的实例
2023-03-21 11:22:35
SpringBoot自定义加载yml实现方式,附源码解读
2022-01-22 22:39:40
Android开发中TextView 实现右上角跟随文本动态追加圆形红点
2022-09-07 07:20:57
Java8 stream 中利用 groupingBy 进行多字段分组求和案例
2023-03-22 00:54:43
C#实现XML文件操作详解
2023-07-16 12:36:52
java实现分页显示效果
2021-12-29 20:17:43
完美解决idea创建文件时,文件不分级展示的情况
2022-01-01 22:10:19
Kotlin Thread线程与UI更新详解
2021-10-10 00:18:22
简单实现Java通讯录系统
2021-08-16 03:28:22
Java中synchronized关键字引出的多种锁 问题
2021-06-05 04:42:45
C#使用Gembox.SpreadSheet向Excel写入数据及图表的实例
2021-09-30 01:58:54