中国有兼职网站开发网站吗,wordpress首页表单,宿舍网络规划与设计,好看的模板图片#x1f49f;#x1f49f;前言 友友们大家好#xff0c;我是你们的小王同学#x1f617;#x1f617; 今天给大家打来的是 Java面试题(Spring篇) 希望能给大家带来有用的知识 觉得小王写的不错的话麻烦动动小手 点赞#x1f44d; 收藏⭐ 评论#x1f4c4; 小王的主页… 前言 友友们大家好我是你们的小王同学 今天给大家打来的是 Java面试题(Spring篇) 希望能给大家带来有用的知识 觉得小王写的不错的话麻烦动动小手 点赞 收藏⭐ 评论 小王的主页小王同学 小王的gitee小王同学 小王的github小王同学
Spring是什么?
轻量级开发框架为java提供了基础架构支持简化了企业级应用开发让开发者只需要关注业务逻辑。
Spring框架常用模式
单例模式、代理模式、模板方法、观察者模式、工厂模式、适配器模式
spring的设计核心是什么
IOC和AOP
bean-的作用域有哪些
Spring 中 Bean 的作用域通常有下面几种
singleton(单例模式) : IoC 容器中只有唯一的 bean 实例。Spring 中的 bean 默认都是单例的是对单例设计模式的应用。prototype(原型模式): 每次获取都会创建一个新的 bean 实例。也就是说连续 getBean() 两次得到的是不同的 Bean 实例。request(请求作用域)仅 Web 应用可用: 每一次 HTTP 请求都会产生一个新的 bean请求 bean该 bean 仅在当前 HTTP request 内有效。session 会话作用域仅 Web 应用可用 : 每一次来自新 session 的 HTTP 请求都会产生一个新的 bean会话 bean该 bean 仅在当前 HTTP session 内有效。application/global-session 仅 Web 应用可用每个 Web 应用在启动时创建一个 Bean应用 Bean该 bean 仅在当前应用启动时间内有效。websocket 仅 Web 应用可用每一次 WebSocket 会话产生一个新的 bean。
Spring中bean的注入方式
1.构造器注入
2.setter注入
3.接口注入
BeanFactory 和 ApplicationContext有什么区别
是spring的核心接口都可以作为容器ApplicationContext是BeanFactory的子接口。 BeanFactory 是spring最底层的接口包含各种Bean的定义和Bean的管理。 ApplicationContext 作为BeanFactory的派生除了有BeanFactory的功能以外还提供了更多的功能、
区别 ① BeanFactroy采用的是延迟加载形式来注入Bean的使用到bean才会加载。ApplicationContext一次性加载所有bean。 ② BeanFactory需要手动注册而ApplicationContext则是自动注册。 ③ BeanFactory不支持国际化ApplicationContext支持国际化(实现MessageSource接口)。
spring中单例Bean是线程安全的吗
不是因为所有线程共享一个单例Bean存在资源的竞争所以是线程不安全的实际上大部分时间Bean是无状态的所以说在某种程度上来说Bean其实是安全的。如果是有状态那就需要开发人员修改bean的作用域。singleton改为prototype。
ioc,aop是什么讲一讲
什么是ioc
IoC Inversion of control 控制反转/反转控制。它是一种思想不是一个技术实现。描述的是Java 开发领域对象的创建以及管理的问题。
为什么叫控制反转
控制指的是对象创建实例化、管理的权力
反转 控制权交给外部环境Spring 框架、IoC 容器
IOCInverse of Control:控制反转是一种设计思想 或者说是某种模式。这个设计思想就是 将原本在程序中手动创建对象的控制权交由 Spring 框架来管理。 IOC 在其他语言中也有应用并非 Spring 特有。IOC 容器是 Spring 用来实现 IoC 的载体 IOC 容器实际上就是个 Mapkeyvalue,Map 中存放的是各种对象。
什么是AOP
AOPAspect oriented programming 面向切面编程AOP 是 OOP面向对象编程的一种延续。
AOP 主要用来解决在不改变原有业务逻辑的情况下增强横切逻辑代码根本上解耦合避免横切逻辑代码重复
AOP 为什么叫面向切面编程
切 指的是横切逻辑原有业务逻辑代码不动只能操作横切逻辑代码所以面向横切逻辑面 横切逻辑代码往往要影响的是很多个方法每个方法如同一个点多个点构成一个面。这里有一个面的概念
spring中bean的生命周期
bean 是由 Spring IoC 容器实例化、组装和管理的对象。 正常情况 当bean不在被使用就会被回收。 单例模式 spring中bean的生命周期分为实例化Bean-Bean属性填充-初始化Bean-销毁Bean。 多例模式 spring无法进行管理所以将生命周期交给用户控制。
bean的自动装配
spring会在上下文中自动寻找并自动给bean装配属性。之前属性需要我们手动注入。
spring用到了那些设计模式
工厂模式 beanFactory就用到了简单工厂模式。 单例模式 Bean默认为单例模式。 代理模式 AOP用到了JDK的动态代理模式。 模板模式 减少代码冗余Jdbc模板等。 观察者模式 定义对象间的一对多的关系当一个对象的状态发生改变时所有依赖于它的对象都得到通知并自动更新。spring监听器的实现就用了观察者模式。
spring的常用注解
Component任何层、Controller表现层、Service逻辑层、Repository持久层 被修饰的类会被spring扫描到并注入到bean容器中(实例化对象)。 Scope 设置spring的作用域。 Bean 用于将方法返回值对象放入容器。 Import 在一个配置类中导入其它配置类的内容。 AutoWired 按照类型匹配注入。 Qualifier 和AutoWired联合使用在按照类型匹配的基础上在按照名称匹配。 Resource 按照名称匹配依赖注入。 Configuration 被此注解标注的类,会被 Spring 认为是配置类。 ComponentScan 用于对组件(Component)进行扫描。 Transactional 可以用于类和方法上具有事务管理的功能 Value 将外部的值动态注入到 Bean 中。 Value(“${}”)可以获取配置文件的值。 Value(“#{}”)表示SpEl(Spring Expression Language是Spring表达式语言可以在运行时查询和操作数据。)表达式通常用来获取 bean 的属性或者调用 bean 的某个方法。
spring 事务实现方式有哪些
编程式 beginTransaction()、commit()、rollback()等事务管理相关的方法灵活度高但是维护性差。 声明式 利用注解或者xml配置将业务和事务分离出来。
spring事务的实现方式和实现原理
spring事务就是对数据库事务的支持没有数据库的事务支持spring是无法提供事务 功能的。
说一下 spring 的事务隔离
五大隔离级别。 ISOLATION_DEFAULT 默认值使用数据库的隔离级别。 ISOLATION_READ_UNCOMMITTED 读未提交。 ISOLATION_READ_COMMITTED 读已提交。 ISOLATION_REPEATABLE_READ 可重复读。 ISOLATION_SERIALIZABLE 序列化。
spring事务的传播行为
REQUIRED(默认)默认事务传播行为存在一个事务则支持当前事务。如果没有事务则开启一个新的事务。 REQUIRE_NEW它不管是否存在事务它都会新开启一个事务来执行新老事务相互独立的外部事务抛出异常并不会影响内部事务的一个正常提交。 NESTED如果当前存在事务就嵌套当前事务中去执行如果当前没有事务那么就新建一个事务类似 REQUIRE_NEW这个样一个传播行为。 SUPPORTS表示支持当前当前的事务如果当前不存在事务就以非事务的方式去执行。 NOT_SUPPORT 总是非事务地执行并挂起任何存在的事务。 MANDATORY如果已经存在一个事务支持当前事务。如果没有一个活动的事务则抛出异常。 NEVER就是以非事务的方式来执行如果存在事务则抛出一个异常。