二十道面试题每个题你能讲个十分钟恭喜你在上海至少16k(Java中级开发) (7)

@Configuration:相当于传统的xml配置文件,如果有些第三方库需要用到xml文件,建议仍然通过@Configuration类作为项目的配置主类——可以使用@ImportResource注解加载xml配置文件。

@Import:用来导入其他配置类。

@ImportResource:用来加载xml配置文件。

@Repository:使用@Repository注解可以确保DAO或者repositories提供异常转译,这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项。

@Bean:用@Bean标注方法等价于XML中配置的bean

@AutoWired:自动导入依赖的bean。byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。当加上(required=false)时,就算找不到bean也不报错。

@Qualifier:当有多个同一类型的Bean时,可以用@Qualifier(“name”)来指定。与@Autowired配合使用。@Qualifier限定描述符除了能根据名字进行注入,但能进行更细粒度的控制如何选择候选者,具体使用方式如下:

@Resource(name=”name”,type=”type”):没有括号内内容的话,默认byName。与@Autowired干类似的事。

SpringMVC的工作原理:

二十道面试题每个题你能讲个十分钟恭喜你在上海至少16k(Java中级开发)

SpringBoot框架的优点:

二十道面试题每个题你能讲个十分钟恭喜你在上海至少16k(Java中级开发)

--创建独立的 Spring 应用程序 ;

--嵌入的 Tomcat 、 Jetty 或者 Undertow,无须部署 WAR 文件:

--允许通过 Maven 来根据需要获取 starter;

--尽可能地自动配置 Spring;

--提供生产就绪型功能,如指标、健康检查和外部配置;

--绝对没有代码生成,对 XML 没有要求配置 。

MyBatis框架的优点:

JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接

很好的与各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库MyBatis都支持,而JDBC提供了可扩展性,所以只要这个数据库有针对Java的jar包就可以就可以与MyBatis兼容),开发人员不需要考虑数据库的差异性。

提供了很多第三方插件(分页插件 / 逆向工程)

SQL写在XML里,从程序代码中彻底分离,解除sql与程序代码的耦合,便于统一管理和优化,并可重用。

提供映射标签,支持对象与数据库的ORM字段关系映射。

SpringCould组件有哪些,他们的作用是什么(说七八个)?微服务的CAP是什么?BASE是什么?

先讲五大核心组件,(偷个懒,嘻嘻)这里我引用一位大佬讲解的,原文地址是:https://juejin.im/post/5be13b83f265da6116393fc7

一、业务场景介绍

先来给大家说一个业务场景,假设咱们现在开发一个电商网站,要实现支付订单的功能,流程如下:

创建一个订单后,如果用户立刻支付了这个订单,我们需要将订单状态更新为“已支付”

扣减相应的商品库存

通知仓储中心,进行发货

给用户的这次购物增加相应的积分

针对上述流程,我们需要有订单服务、库存服务、仓储服务、积分服务。整个流程的大体思路如下:

用户针对一个订单完成支付之后,就会去找订单服务,更新订单状态

订单服务调用库存服务,完成相应功能

订单服务调用仓储服务,完成相应功能

订单服务调用积分服务,完成相应功能

至此,整个支付订单的业务流程结束

下图这张图,清晰表明了各服务间的调用过程:

二十道面试题每个题你能讲个十分钟恭喜你在上海至少16k(Java中级开发)

好!有了业务场景之后,咱们就一起来看看Spring Cloud微服务架构中,这几个组件如何相互协作,各自发挥的作用以及其背后的原理。

二、Spring Cloud核心组件:Eureka

咱们来考虑第一个问题:订单服务想要调用库存服务、仓储服务,或者积分服务,怎么调用?

订单服务压根儿就不知道人家库存服务在哪台机器上啊!他就算想要发起一个请求,都不知道发送给谁,有心无力!

这时候,就轮到Spring Cloud Eureka出场了。Eureka是微服务架构中的注册中心,专门负责服务的注册与发现。

咱们来看看下面的这张图,结合图来仔细剖析一下整个流程:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgdspf.html