01 2021 档案

摘要:先看第一个 注释上有提及,注解起作用的相关类 第二个,也是自动配置的启动注解 第一个:自动配置包,@Import 注解有三种使用方法,当注入的这个类实现特定接口,会有特殊效果 第二个 到这里,其实自动配置的注解层面的原因已经说完了,其实在注解层面还是很简单就清楚自动配置的过程的,下面是配合配置文件的 阅读全文
posted @ 2021-01-24 09:50 huang1993 阅读(97) 评论(0) 推荐(0) 编辑
摘要:首先说启动过程,下一篇说自动配置的过程 创建了SpringApplication之后,调用它的run方法,启动 创建父容器 准备容器,设置了小部分信息 然后开始刷新容器 摆了一道 回到熟悉的那个方法,不过其中有些改变,只看改变的那些方法,而且到现在,web容器和子容器都还没启动 第一个: 第二个: 阅读全文
posted @ 2021-01-23 12:28 huang1993 阅读(183) 评论(0) 推荐(0) 编辑
摘要:从web.xml说起,父子容器的启动,必须配置contextLoadListener和一个servlet,然后加入init-param指定配置文件,而ServletContextListener是javax提供的接口,在web容器启动时,就会自动调用它的初始化方法,导入父容器的配置文件 创建父容器, 阅读全文
posted @ 2021-01-18 11:02 huang1993 阅读(117) 评论(0) 推荐(0) 编辑
摘要:之前学习了BeanFactoy的创建过程和Bean的生命周期之后,这次将看看平时经常使用ApplicationContext和BeanFactory是什么关系。 从new一个ApplicationContext开始 进入的第一个方法看看: 进入第二方法,也是最重要的一个方法,这个方法中有十二个方法, 阅读全文
posted @ 2021-01-13 09:47 huang1993 阅读(138) 评论(0) 推荐(0) 编辑
摘要:进入方法内部,先看整个方法包含了哪些重要方法: 整个方法看完了,接着进入其中比较重要的方法看看: 第一个getSingleton方法,也就是尝试从缓存中拿 第二个方法:将拿到的bean看看是不是FactoryBean,如果是,那么返回的就是通过getObject方法返回的bean 会在判断是否单例之 阅读全文
posted @ 2021-01-10 13:39 huang1993 阅读(137) 评论(0) 推荐(0) 编辑
摘要:1 public class MyApplicationContext { 2 public static void main(String[] args) { 3 ClassPathResource resource = new ClassPathResource("application.xml 阅读全文
posted @ 2021-01-06 11:42 huang1993 阅读(128) 评论(0) 推荐(0) 编辑
摘要:一、API 1、int getAndIncrement() 返回旧值,然后自增 2、int incrementAndGet() 自增,然后返回新值 3、int getAndDecrement() 返回旧值,然后自减 4、int decrementAndGet() 自减,然后返回新值 5、boolea 阅读全文
posted @ 2021-01-05 22:55 huang1993 阅读(155) 评论(0) 推荐(0) 编辑
摘要:ResourceLoader:定义资源加载器,主要应用于根据给定的资源文件地址返回对应的Resource。BeanDefinitionReader:主要定义资源文件读取并转换为BeanDefinition的各个功能。EnvironmentCapable:定义获取Environment方法。Docum 阅读全文
posted @ 2021-01-05 10:09 huang1993 阅读(129) 评论(0) 推荐(0) 编辑
摘要:AliasRegistry:定义对alias的简单增删改等操作。SimpleAliasRegistry:主要使用map作为alias的缓存,并对接口AliasRegistry进行实现。SingletonBeanRegistry:定义对单例的注册及获取。BeanFactory:定义获取bean及bea 阅读全文
posted @ 2021-01-05 10:07 huang1993 阅读(163) 评论(0) 推荐(0) 编辑
摘要:一、什么是双亲委派模型 简单来说,就是当一个类加载器被调用的loadClass方法之后,不会直接就加载这个class,而是会先将加载任务向上(父加载器)递交,让父类加载器尝试加载,直到最顶层类加载器,然后再依次向下加载,直到能够加载返回。 1 public Class<?> loadClass(St 阅读全文
posted @ 2021-01-04 22:03 huang1993 阅读(309) 评论(0) 推荐(0) 编辑
摘要:一、类加载器的类型 1、Bootstrap类加载器 最顶层的类加载器,它是由C++编写,主要负责JVM的核心类库的加载,例如java.lang包。 2、扩展类加载器 第二层类加载器,父加载器当然就是bootstrap,主要是加载jre\lb\ext子目录里面的类库。 3、系统类加载器 第三层类加载, 阅读全文
posted @ 2021-01-04 20:51 huang1993 阅读(94) 评论(0) 推荐(0) 编辑
摘要:一、类的加载阶段 类的加载阶段,其实就是将class字节码文件中的二进制数据读取到内存之中,然后将文件所代表的静态存储结构,转换为方法区中运行时的数据结构,并且在堆内存中生成一个该类的java.lang.Class对象,作为访问方法区数据结构的入口。 而在同一个类加载器下,无论一个类被加载多少次,堆 阅读全文
posted @ 2021-01-04 20:09 huang1993 阅读(142) 评论(0) 推荐(0) 编辑
摘要:JVM对类的初始化是一个延迟的机制,只有当一个类在首次主动使用的时候才会被初始化,在JVM下有六种情况算是主动使用。而在同一个运行时包下,一个Class只会被初始化一次。 1、new 关键字实例化,会导致类的加载并且最终初始化 2、调用类的静态变量,会导致类的初始化 3、调用类的静态方法,也会导致类 阅读全文
posted @ 2021-01-03 22:24 huang1993 阅读(281) 评论(0) 推荐(0) 编辑
摘要:在线程的正常运行中,调用该线程的interrupt方法,该线程的interrupt的flag会变成true,但是线程正常运行; 1 //中断前 2 System.out.printf("Thread is interrupted ? %s\n", thread.isInterrupted()); 3 阅读全文
posted @ 2021-01-02 20:22 huang1993 阅读(246) 评论(0) 推荐(0) 编辑
摘要:在使用Swagger2.9的过程中,出现Illegal DefaultValue null for parameter type integer 在网上查找了解决办法,说是空字符串转换integer异常,需要在相应的integer字段加上@ApiModelProperty注解,然后加上属性 exam 阅读全文
posted @ 2021-01-02 18:47 huang1993 阅读(445) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示