Spring相关框架

一、SpringBoot

1)、SpringBoot特点

  1. 创建独立的Spring应用程序
  2. 嵌入Tomcat,无需部署WAR文件
  3. 简化Maven配置
  4. 自动配置Spring
  5. 提供生产就绪型功能,如指标、健康检查和外部配置
  6. 绝对没有代码生成和对XML没有要求配置

2)、SpringBoot自动配置

@SpringBootApplication是SpringBoot启动类配置,是一个组合注解。SpringBoot启动时通过@EnableAutoConfiguration注解找到META-INF/spring.factories配置文件中的所有自动配置类,并对其进行加载。这些自动配置类可以通过以Properties结尾命名的类中取得在全局配置文件配置的属性,xxxxProperties类是通过@ConfigurationProperties注解与全局配置文件对应的属性进行绑定的。

二、Spring

1)、springAOP

SpringAOP的核心思想是将应用程序中的商业逻辑与对其提供支持的通用服务相分离。实现原理是动态代理,分别由JDK动态代理和CGLIB动态代理。

JDK动态代理是只提供接口代理。InvocationHandler通过invoke()方法反射来调用目标类中的代码,Proxy利用InvacationHandle动态地创建一个符合某一接口的实例,生成目标类代理对象。

CGLIB动态代理是通过使用asm.jar直接操纵字节码实现的。CGLIB在动态运行时动态生成指定类的一个子类对象,并覆盖其中特定方法添加增强代码,从而实现AOP。

2)、SpringIOC

SpringIOC指控制反转,由IOC容器负责实例化、定位、配置应用程序中的对象即对象间的依赖。实现原理是通过反射机制+XML技术实现的。需要传入完整的包和类名。

3)、BeanFactory 和 ApplicationContext

BeanFactory和ApplicationContext是Spring的两大核心接口,均可以当做spring容器。其中ApplicationContext是BeanFactory的子接口,提供了更完整的功能框架。

BeanFactory采用延迟加载bean,ApplicationContext容器启动时,一次性创建所有的bean。

BeanFactory、ApplicationContext都支持beanPostProcessor、BeanFactoryPostProcessor,但区别是BeanFactory需要手动注册,ApplicationContext自动注册。

4)、SpringBean生命周期

  1. bean实例化
  2. bean属性注入
  3. 调用BeanNameAware接口的setBeanName()方法
  4. 调用BeanFactoryAware接口的setBeanFactory()方法
  5. 调用ApplicationContextAware接口的setApplicationContext()方法
  6. 调用BeanPostProcessor接口的postProcessBeforeInitialization()方法
  7. 调用InitializingBean接口的afterPropertiesSet()方法,init-method
  8. 调用BeanPostProcessor接口的postProcessAfterInitialization()方法
  9. 调用DisposableBean接口的destory()方法
  10. 调用自定义的销毁方法。destory-method

5)、BeanFactory和FactoryBean区别

FactoryBean:是个Bean,能生产和修饰对象生成的工厂Bean。

BeanFactory:IOC容器或对象工厂,管理所有的Bean。
 

三、SpringMVC

1)、SpringMVC请求过程

  1. 浏览器发送请求到DispatcherServlet
  2. DispatcherServlet调用HandlerMapping找到对应的handler
  3. DispatcherServlet再调用HandlerAdapter根据handle找到对应的control
  4. control进行业务处理,并返回ModelAndView
  5. DispatcherServlet调用viewResoler解析ModelAndView,并对其进行渲染
  6. DispatcherServlet将结果返回给浏览器

四、Mybatis

1)、Mybatis工作流程

  1. mybatis应用程序通过SqlSessionFactoryBuilder从mybatis-config.xml配置文件中构建出SqlSessionFactory。
  2. SqlSessionFactory的实例直接开启一个SqlSession。
  3. SqlSession实例获得Mapper对象并允许Mapper映射的SQL语句,完成对数据库的CRUD和事务提交之后关闭SqlSession。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 什么是Spring框架?它的核心模块有哪些? 答:Spring框架是一个开源的Java应用程序框架,它提供了一个轻量级的容器来管理对象的生命周期和依赖关系。Spring的核心模块包括IOC(控制反转)容器、AOP(面向切面编程)框架、数据访问和集成、Web开发等。 2. 什么是IOC(控制反转)和DI(依赖注入)? 答:IOC(控制反转)是一种设计模式,它将对象的创建和依赖关系的管理交给了容器来完成。DI(依赖注入)是IOC的一种实现方式,它通过将依赖关系注入到对象中,实现对象之间的解耦。 3. Spring框架中的AOP是什么?它有哪些常用的概念? 答:AOP(面向切面编程)是一种编程范式,它通过将横切关注点(如日志、事务等)从业务逻辑中分离出来,实现了代码的重用和解耦。Spring框架中的AOP常用的概念包括切面(Aspect)、连接点(Join Point)、切点(Pointcut)、通知(Advice)和目标对象(Target Object)等。 4. Spring框架中的事务管理是如何实现的? 答:Spring框架中的事务管理是通过声明式事务和编程式事务两种方式来实现的。声明式事务是通过在方法上添加注解或配置XML文件来声明事务的属性,而编程式事务是通过编写代码来实现事务的管理。 5. Spring框架中的MVC是什么?它的工作原理是什么? 答:Spring框架中的MVC(Model-View-Controller)是一种设计模式,它将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个部分。MVC模式的工作原理是,用户请求首先被控制器接收并处理,然后控制器调用模型来处理业务逻辑并返回数据,最后控制器将数据传给视图进行展示。 6. Spring框架中的Bean是什么?它有哪些作用域? 答:在Spring框架中,Bean是由容器管理的对象,它们被实例化、组装和管理。Spring框架中的Bean有多种作用域,包括单例(Singleton)、原型(Prototype)、会话(Session)、请求(Request)和全局会话(Global Session)等。 7. Spring框架中的依赖注入有哪些方式? 答:Spring框架中的依赖注入可以通过构造函数注入、Setter方法注入和字段注入三种方式来实现。构造函数注入是通过构造函数参数来注入依赖,Setter方法注入是通过Setter方法来注入依赖,字段注入是直接将依赖注入到字段中。 8. Spring框架中的Spring Boot是什么?它的特点是什么? 答:Spring Boot是Spring框架的一个子项目,它简化了Spring应用程序的开发和部署过程。Spring Boot的特点包括自动配置、快速开发、无需部署WAR文件、内嵌Web服务器等。 9. Spring框架中的JdbcTemplate是什么?它的作用是什么? 答:JdbcTemplate是Spring框架中的一个核心类,它提供了对JDBC(Java数据库连接)的封装和简化。JdbcTemplate的作用是提供了一种更简单、更方便的方式来执行数据库操作。 10. Spring框架中的AOP和AspectJ有何区别? 答:Spring框架中的AOP是基于代理模式实现的,而AspectJ是一种更为强大的AOP框架,它支持更多的切面语法和功能。AspectJ可以在编译期、类加载期或运行期织入切面,而Spring AOP只能在运行期织入切面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值