自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 为什么说Spring框架只会将标注有@Component、@Named、@ManagedBean注解的类加入到容器? @Configuration、@Controller又为什么会加入到容器中?

Spring只会把标注有@Component、@Named、@ManagedBean注解的类加入到容器内,但是我们使用@Controller、@Service、@Repository注解也能加入到容器,这是怎么实现的?Spring注解配置启动的整个过程是这样的,首先Spring遍历所有文件夹获取到类文件,将类文件封装成Resource,使用MetadataReader对Resource进行读取,读取到类的注解等信息,然后再根据注解进行筛选,符合条件的封装成BeanDefinition。有了BeanDefi

2021-09-15 21:32:26 606

原创 手写Spring源码07 - 元数据读取器 MetadataReader 设计与实现(六)

MetadataReader定义与实现前面介绍了这么多,都是为了MetadataReader做铺垫,因为MetadataReader间接或直接使用了上面介绍的所有类元数据读取定义 - MetadataReaderpackage cn.zhanghongyang.core.type.classreader;import cn.zhanghongyang.core.io.Resource;import cn.zhanghongyang.core.type.AnnotationMetadata;im

2021-09-02 20:20:03 291

原创 手写Spring源码06 - 元数据读取器 MetadataReader 设计与实现(五)

注解类型映射的实现注解过滤器定义 - AnnotationFilter代码实现:package cn.zhanghongyang.core.annotation;import java.lang.annotation.Annotation;/** * @Author: zhanghongyang * @Description: 注解过滤器 */public interface AnnotationFilter { /** * 声明过滤器,包含两个包 */

2021-09-02 20:15:39 221

原创 手写Spring源码05 - 元数据读取器 MetadataReader 设计与实现(四)

合并注解定义和实现合并注解定义 - MergedAnnotation代码实现:package cn.zhanghongyang.core.annotation;import java.lang.annotation.Annotation;/** * @Author: zhanghongyang * @Description: 合并的注解 */public interface MergedAnnotation<A extends Annotation> { /**

2021-09-02 20:12:41 188

原创 手写Spring源码04 - 元数据读取器 MetadataReader 设计与实现(三)

类的读取和访问实现Spring使用了ASM框架对类进行读取,并且将ASM代码嵌在了Spring框架里。ASM是一个Java字节码操作和分析框架,可以对字节码进行读取,读到类的方法、注解、内部类、超类等等信息。这里直接加了ASM的依赖,这里就包括了ClassReader、ClassVisitor、AnnotationVisitor、MethodVisitor<!-- https://mvnrepository.com/artifact/org.ow2.asm/asm --><depe

2021-09-02 20:11:24 197

原创 手写Spring源码03 - 元数据读取器 MetadataReader 设计与实现(二)

详细设计元数据定义和实现被标注的元数据类型定义 - AnnotatedTypeMetadata被标注的元数据类型定义,定义了获取注解方法等代码实现package cn.zhanghongyang.core.type;import cn.zhanghongyang.core.annotation.MergedAnnotations;/** * @Author: zhanghongyang * @Description: 可被标注的元数据定义 * 从定义的方法和子类可以看出,这个接口子类

2021-09-02 20:09:08 264

原创 手写Spring源码02 - 元数据读取器 MetadataReader 设计与实现(一)

元数据读取器 - MetadataReader 设计与实现(一)功能介绍读取类的信息,如类名、修饰符、内部类、外部类、父类、接口名称、成员方法、注解、注解的元注解等代码演示注解@Zhy上打了注解@Zhy2,ZhyConcret类上打了@Zhy注解:@Zhypublic class ZhyConcret {}@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Zhy2public @interface Zhy {}

2021-09-02 20:05:19 499

原创 手写Spring源码01 - 资源加载器 ResourceLoader 设计与实现

static List<Method> getAttributeMethods(Class<? extends Annotation> annotationType) { List<Method> methods = attributeMethodsCache.get(annotationType); if (methods != null) { return methods; } methods = new ArrayList<Metho.

2021-08-03 21:06:57 226

原创 Prometheus Operator 持久化存储

prometheus-prometheus.yaml文件,spec下添加如下内容:

2021-05-30 19:41:41 121

原创 Harbor安装教程

Harbor安装教程一、安装docker下载地址:https://download.docker.com/linux/static/stable/x86_64/docker-19.03.9.tgz1.1 解压二进制包tar zxvf docker-19.03.9.tgzmv docker/* /usr/bin1.2 systemd管理dockercat > /usr/lib/systemd/system/docker.service << EOF[Unit]

2021-05-26 22:37:55 4887

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除