Spring相关问题

Spring相关

1.谈谈对Spring的理解

Spring是一个开源框架,Spring是框架的黏合器,有IOC控制反转,依赖注入和AOP面向切面编程。
Spring 框架它是很多模块的集合,这些模块从底层向上分别是:测试模块(Test),核心容器,AOP(面向切面 编程)、AspectJ、工具、消息,数据访问/集成和Web。Spring 的框架的主要目的就是简化 Java 后端开发工 作。
一些重要的spring模块的作用如下:
Spring Core: 可以说 Spring 其他所有的功能都需要依赖于该类库。主要提供 IOC 依赖注入功能。
Spring AOP :提供了面向切面的编程实现。
Spring JDBC : Java数据库连接。
Spring JMS :Java消息服务。
Spring ORM : 用于支持第三方ORM工具(mybatis、hibernate等)。
Spring Web : 为创建Web应用程序提供支持。
Spring Test : 提供了对 JUnit 测试的支持。
AOP:(面向切面编程)能够将那些与业务无关,却为业务模块所共同调用的逻 辑(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利 于未来的可拓展性和可维护性。
具体实现原理:Spring AOP就是基于动态代理的,如果要代理的对象,实现了某个接口,那么Spring AOP会使用 JDK Proxy,去创建代理对象,而对于没有实现接口的对象,就无法使用 JDK Proxy 去进行代理了,这时候 Spring AOP会使用Cglib ,这时候Spring AOP会使用 Cglib 生成一个被代理对象的子类来作为代理。

2.Spring框架的好处

使用Spring框架可以很好的将控制层和持久层耦合在一起,并降低各个模块之间的耦合性,Spring的两大核心IOC和AOP,Spring可以控制事物等。

3.Spring 中的 bean 的作用域

singleton : 唯一 bean 实例,Spring 中的 bean 默认都是单例的,分为懒汉式饿汉式
prototype : 每次请求都会创建一个新的 bean 实例。
request : 每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTP request内有效。
session : 每一次HTTP请求都会产生一个新的 bean,该bean仅在当前 HTTP session 内有效。

4.Spring框架和SpringBoot框架的区别

Spring Boot可以理解为是Spring框架的扩展,是一个敏捷开发框架。能够帮助我们快速整合第三方框架(主要借 助于 Maven 依赖关系),完全采用注解化,消除了Spring应用程序所需的XML配置,内置嵌入 Http 服务器,其 目的是更高效的开发应用程序。
主要特征如下:
a、创建独立的Spring应 )、Jetty容器(无需部署war文件)。
c、提供的starters 简化构建配置
d、尽可能自动配置spring应用。
e、提供生产指标,例如指标、健壮检查和外部化配置
f、完全没有代码生成和XML配置要求

  1. SpringBoot框架中入口函数的@SpringbootApplication注解的作用

作用:@SpringBootApplication是一个组合注解,用于快捷配置启动类
拆解:@SpringBootApplication相当于 @SpringBootConfiguration+@EnableAutoConfiguration+@ComponentScan的合集。
分析如下:
a、@SpringBootConfiguration说明这是一个配置文件类,相当于@Configuration(经常和@bean一起使用,这 两个注解就可以创建一个简单的Spring配置类,可用来替代相应的xml配置文件),它会被@ComponentScan扫描 到。
b、@EnableAutoConfiguration:根据类路径中jar包是否存在来决定开启某一个功能的自动配置。
c、@ComponentScan:会自动扫描指定包下全部标有@Component的类,并注册成bean,当然包括@Component下 的子注解:@Service,@Repository,@Controller;默认会扫描当前包和所有子包。

6.Spring bean的生命周期

bean定义:在配置文件里面用<bean></bean>来进行定义。
bean初始化:有两种方式
1.在配置文件中通过指定init-method属性来完成。
2.实现org.springframwork.beans.factory.InitializingBean接口
bean调用
bean销毁

7.谈谈你对SpringCloud框架的认识

a、简介:SpringCloud是基于SpringBoot基础之上开发的微服务框架,为微服务体系开发中的架构问题,提供了 一整套的解决方案,其包含:配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、 分布式会话和集群状态管理等组件。最重要的是,跟SpringBoot框架一起使用的话,会让开发微服务架构变的非 常方便。
b、SpringCloud五大核心组件:
服务注册发现-Netflix Eureka:
Eureka服务器:提供服务注册和发现
Eureka客户端:向服务注册中心获取服务提供者地址,然后会将服务提供者地址缓存在本地,下 次再调用时,则直接从本地缓存中取,完成一次调用。
配置中心 - spring cloud config: 配置管理开发工具包,可以让你把配置放到远程服务器,目前支持本地存储、Git 以及Subversion。
负载均衡-Netflix Ribbon: 是一套客户端负载均衡工具。主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。 (负载均衡(Load Balance,简称LB),在微服务或分布式集群中经常用到的一种功能,就是将用户的请求以某 种规则平摊到多个服务器上,从而达到系统的高可用。)
断路器 - Netflix Hystrix: 容错管理工具,旨在通过控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。 路由(网关) - Netflix Zuul 边缘服务工具,提供动态路由,监控,弹性,安全等边缘服务,提供架构的网关路由服务。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值