网站seo优化教程,个性logo图案,wordpress国人编辑器,海城市建设局网站1.Spring IOC(控制反转)和AOP(面相切面编程)的理解
控制反转意味着将对象的控制权从代码中转移到Spring IOC容器。 本来是我们自己手动new出来的对象#xff0c;现在则把对象交给Spring的IOC容器管理#xff0c;IOC容器作为一个对象工厂#xff0c;管理对象的创建和依赖关系…1.Spring IOC(控制反转)和AOP(面相切面编程)的理解
控制反转意味着将对象的控制权从代码中转移到Spring IOC容器。 本来是我们自己手动new出来的对象现在则把对象交给Spring的IOC容器管理IOC容器作为一个对象工厂管理对象的创建和依赖关系。 控制反转是一种思想依赖注入是控制反转的实现方式通过IOC容器自动将依赖关系注入到需要它们的对象中。 Spring IOC的好处
集中统一管理对象降低耦合度。便于单元测试、处理复杂对象创建和依赖关系、实现单例等。Spring提供了完整的Bean生命周期管理包括对象增强如AOP。
所谓的「面向切面编程」在我理解下其实就是在方法前后增加非 业务代码AOP 底层的技术是动态代理在Spring内实现依赖的是BeanPostProcessor 比如我们需要在方法上注入些「重复性」的非业务代码就可以利用Spring AOP Spring AOP 解决的是 非业务代码抽取的问题
你们项目一般是怎么把对象交给IOC容器管理的?(换个问法:一般是怎么定义Bean的?) Spring提供了4种方式分别 是 1):注解 2):XML 3):JavaConfig 4):基于GroovyDSL配置 一般项目我们用注解或XML比较多少部分用JavaConfig 日常写业务代码一般用注解来定义各种对象责任链这种一般配 置在XML「注解」解决不了的就用JavaConfig
2.Spring、SpringMVC、SpringBoot有什么区别
pringspring MVCmybatis传统ssm项目spring负责本地的bean管理和事务处理spring MVC负责对接web。spring boot则是综合了这俩延展出来的新生态企业应用级快速开发架构使各位cv工程师专注于敲代码而不是去搞传统ssm那套繁琐配置。 因此SpringBoot可以看作是在 Spring 的基础上通过自动配置和约定优于配置的方式提供了更加简单、快速的开发体验。而 SpringMVC 则是 Spring 框架中用于构建 Web 应用程序的模块。
3.SpringBoot实现自动化配置的原理
自动配置是通过EnableAutoConfiguration注解实现的。这个注解会通过import注解导入 AtuoConfigurationlmportSelector类这个类会扫描META-INF/Spring.factories文件这个文件里面定义了所有的自动配置类这些配置类上可能存在条件注解spring boot启动的时候根据这些注解加载这些自动配置类。 1.自定义自动配置类步骤 定义一个类使用Configuration注解修饰; 定义META-INF/Spring-factories文件向EnableAutoConfiguration中注入这个类
4.Spring 框架中都用到了哪些设计模式?
Spring 框架中使用了许多设计模式以下列举一些比较重要的:
单例模式:Spring 的 Bean 默认是单例模式通过 Spring 容器管理 Bean 的生命周期保证每个 Bean 只被创建一次并在整个应用程序中重用。工厂模式:Spring 使用工厂模式通过 BeanFactory 和 ApplicationContext 创建并管理 Bean 对象。代理模式:Spring AOP 基于动态代理技术使用代理模式实现切面编程提供了对 AOP 编程的支持观察者模式:Spring 中的事件机制基于观察者模式通过 ApplicationEventPublisher 发布事件由 ApplicationListener 监听事件实现了对象间的松耦合。模板方法模式:Spring 中的 JdbcTemplate 使用了模板方法模式将一些固定的流程封装在父类中子类只需实现一些抽象方法即可。策略模式:Spring 中的 HandlerInterceptor 和 HandlerExecutionChain 使用了策略模式允许开发者自定义处理器拦截器按照一定顺序执行。责任链模式:Spring 中的过滤器和拦截器使用了责任链模式多个过滤器和拦截器按照一定顺序执行每个过滤器和拦截器可以拦截请求或者响应并做出相应的处理。