说一说线程池的核心参数
corePoolSize 是核心线程数目
maximunPoolSize 是最大线程数目 =(核心线程+救急线程的最大数目)
keepAliveTime 生存时间 - 救急线程的生存啥时间,生存时间内没有新任务,此线程资源会释放
unit 时间单位 - 救急线程的生存时间单位,新来的任务会加入到此队列排列,队列满会创建救急线程执行任务
threadFactory 线程工厂 - 可以定制线程对象的创建,列如设置线程名字 是否是守护线程等
handler 拒绝策略 -- 当所有线程都在繁忙时候 workQueue也放满时候 会触发拒绝策略
自动装配原理
自动装配的概念,有一些对三方的bean对象 可以自动进入到我们的ioc 容器中
大致流程: 启动类上有一个注解 :@SpringBootApplication ,这个注解里面有一个EnableAutoConfiguration,这个注解里面有import了一个配置类 之后一路找到了一个叫Spring.factories的文件(2.7版本之后变成了那个特别长的.imports结尾文件)
这个文件里就记录了所有需要加载到ioc容器的配置类,在配置类里面根据条件来判断是否需要加载到ioc容器
之前自己实现过一个自动装配的项目有 大概做流程为
1.先搞一个自己起步依赖,这个起步依赖里,又依赖一个自动配置包
2.在自己配置包里,我们需要把整合的工具类给先写好
3.在自动配置模块下,我们自己创建了一个META-INF的目录,在这个目录下 我们模仿spring 一样的文件名,在这个文件名里,我们写一个自己的configuration配置
4.在这个配置类里,我们把自己需要加载到ioc容器的bean使用@bean注解给声明出来
最后,谁需要用就引入这个起步依赖,然后就可以自动的注入需要的工具类。