海康威视java专家岗电话面试

1,你是怎么把单体应用改造为微服务架构的
2,spring boot的启动原理和它的核心组件剖析面试最常见问题之 Spring Boot)(书籍推荐之java基础篇中推荐《Spring Boot实战派》)

  1. 创建一个SpringApplication实例
  2. 调用此SpringApplication实例的run(args)方法:
    1. 1 prepareEnvironment
    2. 2 refreshContext(context)

3,spring boot的自动装配,以及它的bean怎么加载的

Spring Boot官方文档对于自动装配的描述:

Spring Boot auto-configuration attempts to automatically configure your Spring application based on the jar dependencies that you have added. For example, if HSQLDB is on your classpath, and you have not manually configured any database connection beans, then Spring Boot auto-configures an in-memory database.

又有:

SpringBoot 定义了一套接口规范,这套规范规定:SpringBoot 在启动时会扫描外部引用 jar包中的META-INF/spring.factories文件,将文件中配置的类型信息加载到 Spring 容器(此处涉及到 JVM类加载机制与 Spring 的容器知识),并执行类中定义的各种操作。对于外部 jar 来说,只需要按照 SpringBoot定义的标准,就能将自己的功能装置进 SpringBoot。

简单来说,Spring Boot自动装配致力于基于你所添加的依赖,利用条件注解(@Conditional)去自动化配置你的Spring应用。
具体而言,@EnableAutoConfiguration 注解通过@Import 注解导入了AutoConfigurationImportSelector类。 AutoConfigurationImportSelector可通过SPI机制(具体来说,是getCandidateConfigurations方法)将所有自动配置类的信息以 List 的形式返回。这些配置信息会被 Spring 容器作 bean 来管理。条件注解的作用是能够在应用运行时动态选择符合条件的bean。 比如下面的@ConditionalOnClass(xxx.class),作用是在加载过程中判断存在xxx类才加载该配置类。下为引入mvc组件的自动装配类。

@Configuration
@ConditionalOnWebApplication(type = Type.SERVLET)
@ConditionalOnClass({ Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class })
@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE + 10)
@AutoConfigureAfter({ DispatcherServletAutoConfiguration.class,
        TaskExecutionAutoConfiguration.class, ValidationAutoConfiguration.class })
public class WebMvcAutoConfiguration {

4,elasticsearch怎么优化。在网上搜到一个实例:通过某瓣真实案例看Elasticsearch优化

5,tomcat和jetty的优缺点对比分析:参考https://developer.ibm.com/zh/articles/j-lo-jetty/https://www.cnblogs.com/lixuwu/p/10817557.html

tomcatjetty
更轻量级
更臃肿,整体设计更复杂,Tomcat 的设计从 Server 到 Service 再到 engine 等 container 容器架构上来说,更简单,更灵活,基于Handler来实现,责任链模式,易于扩展和插拔 ,即可以按需加载组件,也减少不需要的组件
Tomcat 经过长时间的发展,已经广泛的被市场接受和认可,相对 Jetty 来说 Tomcat 还是比较稳定和成熟,尤其在企业级应用方面,Tomcat 仍然是第一选择
Tomcat默认采用BIO处理I/O请求Jetty默认采用NIO处理I/O请求
Tomcat目前应用比较广泛,对JavaEE和Servlet的支持更加全面Jetty修改简单,对新的Servlet规范的支持较好。

6,mybatis的动态sql
Mybatis 动态 sql 可以让我们在 Xml 映射⽂件内,以标签的形式编写动态 sql,完成逻辑判断和动态拼接 sql 的功能。例如陈伟的动态SQL

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_23204557

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值