中级Java面试题

118 阅读2分钟

个人笔记哈

  • 线程池状态?
  • 线程的状态
  • Spring Transation 原理
  • mybatis 执行原理 mybatis 执行原理
  • 线程池的七大参数
  • 线程池的 等待队列
  • 消息队列的执行原理
  • Spring Boot 的自动装配原理 Spring Boot 真强大 我感觉就学不完 真的 刚刚 追进去 AliasFor 这个注解 AliasFor :显性的元注解属性重写

正题

image.png

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
}
@SpringBootConfiguration
组合注解
在项目启动时,去加载当前项目标有@Configuration 这个注解的配置累,去找到对应的 Component
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Configuration {
    @AliasFor(
        annotation = Component.class
    )
    String value() default "";

    boolean proxyBeanMethods() default true;
}
而继承Component 注解有哪些

image.png 这些都是我们熟悉的 那几个 我就不一一说明了。

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {
    String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";

    Class<?>[] exclude() default {};

    String[] excludeName() default {};
}

@AutoConfigurationPackage

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Import({Registrar.class})
public @interface AutoConfigurationPackage {
    String[] basePackages() default {};

    Class<?>[] basePackageClasses() default {};
}

@Import({Registrar.class})

导入对应的配置包 ,也是注册器。把对应的配置包注册进来
配合这个一起来使用:@Import({AutoConfigurationImportSelector.class})

AutoConfigurationImportSelector

这个类主要是通过反射 获取spring.factories 配置类。从而自动去加载对应的类。

image.png SpringBoot高级-监听原理 

  • spring BOOT 有那些注解 怎么用
  • 说说 Spring Cloud 有那些组件,各个有那些作用
  • mq的工作原理
  • 说说:spring IOC AOP
  • Spring MVC的执行原理
    1. 用户发送请求到前端控制器
    2. 把对对应的请求给到 请求处理器 url
    3. 通过注解或者xml
    4. 请求适配器 找到对应的业务代码
    5. 视图解析器 去解析视图
    6. 返回视图给用户 Spring MVC的执行原理
  • 在项目中redis 你怎么用的
  • redis 数据类型有那些
  • 在日常生活说说你的sql优化
  • Spring 事务的失效场景
  • 在日常开发中常用的 设计模式有那些 可以说说嘛举例子
  • threadlocal 你在项目中怎么用的,他又什么作用,底层源码分析
  • spring Colud Alibaba 组件用法 与源码分析