[1、@Qualifier 注解有什么用?](https://gitee.com/souyunku/DevBooks/blob/master/docs/Spring/Spring高级面试题及答案,2021版.md#1[@qualifier-]/qualifier--注解有什么用)
当您创建多个相同类型的 bean 并希望仅使用属性装配其中一个 bean 时,您可以使用@Qualifier 注解和 @Autowired 通过指定应该装配哪个确切的 bean 来消除歧义。
例如,这里我们分别有两个类,Employee 和 EmpAccount。在 EmpAccount 中,使用@Qualifier 指定了必须装配 id 为 emp1 的 bean。
Employee.java
public class Employee {
private String name;
@Autowired
public void setName(String name) {
this.name=name;
}
public string getName() {
return name;
}
}
EmpAccount.java
public class EmpAccount {
private Employee emp;
@Autowired
@Qualifier(emp1)
public void showName() {
System.out.println(“Employee name : ”+emp.getName);
}
}
2、DispatcherServlet
Spring的MVC框架是围绕DispatcherServlet来设计的,它用来处理所有的HTTP请求和响应。
3、SpringCloud有几种调用接口方式
1、 Feign
2、 RestTemplate
4、什么是 Spring Data?
来自://projects.spring.io/spring- data/
Spring Data 的使命是在保证底层数据存储特殊性的前提下,为数据访问提供一个熟悉的,一致性的,基于 Spring 的编程模型。这使得使用数据访问技术,关系数据库和非关系数据库,map-reduce 框架以及基于云的数据服务变得很容易。
为了让它更简单一些,Spring Data 提供了不受底层数据源限制的 Abstractions 接口。
你可以定义一简单的库,用来插入,更新,删除和检索代办事项,而不需要编写大量的代码。
5、创建一个 SpringBoot Project 的最简单的方法是什么?
Spring Initializer 是创建 SpringBoot Projects 的一个很好的工具
6、解释Spring支持的几种bean的作用域。
Spring框架支持以下五种bean的作用域:
1、 singleton : bean在每个Spring ioc 容器中只有一个实例。
2、 prototype:一个bean的定义可以有多个实例。
3、 request:每次http请求都会创建一个bean,该作用域仅在基于web的Spring ApplicationContext情形下有效。
4、 session:在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。
5、 global-session:在一个全局的HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。
缺省的Spring bean 的作用域是Singleton.
7、列举 Spring DAO 抛出的异常。
8、什么是微服务中的反应性扩展?
Reactive Extensions也称为Rx。这是一种设计方法,我们通过调用多个服务来收集结果,然后编译组合响应。这些调用可以是同步或异步,阻塞或非阻塞。Rx是分布式系统中非常流行的工具,与传统流程相反。
希望这些微服务面试问题可以帮助您进行微服务架构师访谈。
翻译来源:https://www.edureka.co/blog/interview-questions/microservices-interview-questions/
9、比较一下 Spring Security 和 Shiro 各自的优缺点 ?
由于 SpringBoot 官方提供了大量的非常方便的开箱即用的 Starter ,包括 Spring Security 的 Starter ,使得在 SpringBoot 中使用 Spring Security 变得更加容易,甚至只需要添加一个依赖就可以保护所有的接口,所以,如果是 SpringBoot 项目,一般选择 Spring Security 。当然这只是一个建议的组合,单纯从技术上来说,无论怎么组合,都是没有问题的。Shiro 和 Spring Security 相比,主要有如下一些特点:
Spring Security 是一个重量级的安全管理框架;Shiro 则是一个轻量级的安全管理框架
Spring Security 概念复杂,配置繁琐;Shiro 概念简单、配置简单
Spring Security 功能强大;Shiro 功能简单
10、使用 Spring 访问 Hibernate 的方法有哪些?
我们可以通过两种方式使用 Spring 访问 Hibernate:
1、 使用 Hibernate 模板和回调进行控制反转
2、 扩展 HibernateDAOSupport 并应用 AOP 拦截器节点