首页 > 其他分享 >spring-八股文

spring-八股文

时间:2023-07-07 21:56:07浏览次数:28  
标签:八股文 对象 spring bean 单例 注解 方法

  1. 对IOC的理解
  2. inverse of control,控制翻转,将bean的生成交给spring管理,例如,@autowired自动装配的mapper层对象。
    好处:单例bean可以有效复用,减少对象生成的时间成本。各种bean还有自身的应用场景。
    
  3. 单例bean与单例模式
  4. spring自动装配出来的对象全都会指向同一个单例bean,不强制约束用户不可创建第二个对象。
    单例模式针对的是类而言的,如果某个类应用了单例模式,那么这个类就不可能创建出第二个对象,所有该类的引用都会指向同一个对象,不管是spring自动装配还是用户自己new。
    
  5. spring事务传播机制-※
  6. spring事务什么时候会失效-√
  7. 数据库:数据库如果不支持事务,那么spring事务就会失效
    Java:
    类:事务所在类没有对应的注解,spring没有在容器里面生成该类的bean[类上面没有component之类的注解]
    方法:方法上没有加上事务注解或者方法的权限修饰符不是public
    调用:调用方法没有使用代理对象,而是通过原对象调用的方法。[自己new]
    
  8. spring中创建的bean,生命周期有哪些-※
  9. 1.推断构造方法
    2.实例化
    3.依赖注入[构造方法可能需要部分外部注入属性;成员变量中依赖于其他类,等等多种需要将其他实例注入的情况]
    4.处理@postConstruct注解,构造之后还可以执行的自定义处理
    5.处理initializingBean接口复写内容,如果实现了该接口的话[前面就是bean的实例化,这一步就是bean的初始化,这就是两者的区别]
    6.生成代理对象,最后生成bean
    
  10. spring中的bean是线程安全的吗?
  11. 如果bean上有状态,就不是线程安全的
    如果bean上没有状态,就是线程安全的
    
  12. applicationContext和beanFactory有什么区别?
  13. beanFatory的功能,applicationContext都有,但applicationContext还有其他功能[获取系统环境变量、事件发布]
    
  14. spring中的事务是如何实现的?-※
  15. @Transactional什么时候会失效?
  16. 类:事务所在类没有对应的注解,spring没有在容器里面生成该类的bean
    方法:方法上没有加上事务注解或者方法的权限修饰符不是公共的
    调用:调用方法没有使用代理对象,而是通过原对象调用的方法。
    
  17. spring容器的启动流程是怎样的?-※
  18. 1.扫描所有beanDefinition对象,并保存至map
    2.筛选出单例bean进行bean创建,推断构造方法-实例化-依赖注入-postConstruct注解-beanInition接口复写方法-生成代理对象-生成bean
    3.applicationContext发布spring容器启动事件
    
  19. spring用到了哪些设计模式?
  20. 1.beanFactory-工厂模式
    2.单例bean-单例模式
    3.代理对象-代理模式
    
  21. spring boot常用注解及其底层实现-※
  22. 常用注解有
    1.@bean 方法级注解,可用于对应的单例bean对象
    2.@autowired 用于生成单例bean的引用;要求原类增加类注解例如component\service\controller\mapper等来交给spring托管
    3.@controller\@service\@mapper,这三都是类注解,用于指定controller、service、mapper类,从而可以自动将请求匹配到controller对应方法上,以及自动调用对应的SQL
    4.@GetMapping,@PostMapping,用于指定请求的匹配类型,方法接收get请求、post请求等等
    
    具体实现 不太清楚
    
  23. springboot是如何启动Tomcat?
  24. 1.检索是否有tomcat依赖
    2.将tomcat实例化,并加入到spring容器中
    3.启动tomcat实例
    

标签:八股文,对象,spring,bean,单例,注解,方法
From: https://www.cnblogs.com/dengliang356a/p/17536152.html

相关文章

  • 使用 Spring Boot 和 Dubbo 进行集成
    1.创建一个SpringBoot项目,可以使用SpringInitializr(https://start.spring.io/)生成一个初始的项目结构。2.在pom.xml中添加Dubbo和相关依赖:<dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId>......
  • Java-八股文
    hashcode()、equals()1.如果hashcode()不相同,两个对象一定不是同一个对象2.如果hashcode()相同,两个对象不一定上同一个对象,需要进一步判别equals3.如果equals相同,应当认为两个对象就是相同对象由于hashcode方法仅返回一个值,equals里面有若干逻辑,因此,部分集合类的判断中,会优先......
  • springboot 常见面试题
    1.什么是SpringBoot?它的主要特点是什么?-SpringBoot是一个基于Spring框架的开源框架,用于简化Spring应用程序的开发和部署。-其主要特点包括自动配置、约定优于配置、快速开发、独立运行、简化部署等。2.SpringBoot如何简化Spring应用程序的开发和部署?-SpringB......
  • Springcloud2021+Nacos2.2+Dubbo3+Seata1.6实现分布式事务
    示例代码地址:https://gitee.com/gtnotgod/Springcloud-alibaba.git更详细参考Gitee完整的项目:https://gitee.com/gtnotgod/Springcloud-alibaba.git官网下载Nacoshttps://nacos.io/zh-cn/index.html压缩包解压:配置Nacos:**/nacos/conf/application.properties#********......
  • SpringBoot3 学习笔记(开始配置)
    一、使用工具IntelliJ,下载JDK20https://www.oracle.com/java/technologies/downloads/二、采用SpringInitializr新建项目, 三、勾选web和lombok四、点Finish后等待新建目录如下,删掉无用的目录和文件:五、最终如下: 六、右键com.wind,新建controller.HellWorldController......
  • spring的工具类BeanUtils.copyProperties 非基本数据类型时的坑
    复现前准备三个类,Student、Source、Target。Source和Target里面包含一个相同的非基本类型的字段(如下面示例中的stu字段)publicclassStudent{privateStringname;publicStudent(Stringname){this.name=name;}publicStringgetName(){......
  • Ubuntu系统部署springcloud+nacos遇到的问题。
    1,部署上的jar包运行正常,但是通过浏览器不能访问,telnet+IP+端口连接不通。小皮面板访问后台接口也是不通但是小皮面板可以通过浏览器访问。具体问题暂未解决。2,改用docker部署,将jar包和前端打的包,nacos,redis等打成镜像,放进docker里对外映射出端口可以正常访问。在用docker部署过......
  • SpringMVC学习巩固(页面跳转——重定向与转发)
    **要求方法返回值为String**默认:逻辑视图视图解析器找到对应的页面Handler中返会的String类型为跳转到的页面eg:return"hello";则执行方法后页面会跳转到hello.html重定向forward:@GetMapping("forward")publicStringforward(Stringpath){Sy......
  • springboot微服务架构有哪些?这些都是需要了解的
    SpringBoot是一种用于构建独立的、可扩展的、轻量级的Java应用程序的框架。它简化了Spring应用程序的开发过程,并提供了丰富的功能和集成的支持。在微服务架构中,SpringBoot可以作为一个基础框架来构建和管理各个微服务。下面是一些常用的SpringBoot微服务架构组件和技术:Sprin......
  • springcloud -hystrix服务熔断机制
    服务熔断:就是在错误率达到规定百分比的时候会开启,然后隔断消费者和服务端,在不断访问提升正确率后将其关闭,回复调用链路servicehystrix-payment-order8001增加方法  //=========服务熔断 @HystrixCommand(fallbackMethod="paymentCircuitBreaker_fallback",commandPro......