Spring
1、Spring是什么:
Spring 是一个为简化企业级应用开发而生的开源框架。Spring 是一个 IOC 和 AOP 容器框架。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。
2. spring 中常用的依赖注入方式:
通过 setter 方法注入
通过构造方法注入
3.Spring 容器的主要核心是:
***a.控制反转(IOC)***:传统的 java 开发模式中,当需要一个对象时,我们会自己使用 new 或者 getInstance 等直接或者间接调用构造方法创建一个对象。而在 spring 开发模式中,spring 容器使用了工厂模式为我们创建了所需要的对象,不需要我们自己创建了,直接调用spring 提供的对象就可以了,这是控制反转的思想。
***b.依赖注入(DI)***:spring 使用 javaBean 对象的 set 方法或者带参数的构造方法为我们在创建所需对象时将其属性自动设置所需要的值的过程,就是依赖注入的思想。
***c.面向切面编程(AOP)***:在面向对象编程(oop)思想中,我们将事物纵向抽成一个个的对象。而在面向切面编程中,我们将一个个的对象某些类似的方面横向抽成一个切面,对这个切面进行一些如权限控制、事物管理,记录日志等公用操作处理的过程就是面向切面编程的思想。AOP 底层是动态代理,如果是接口采用 JDK 动态代理,如果是类采用CGLIB 方式实现动态代理。
4.Spring 或者 Springmvc中常用的5个注解:
@Component 基本注解,标识一个受Spring管理的组件
@Controller 标识为一个表示层的组件
@Service 标识为一个业务层的组件
@Repository 标识为一个持久层的组件
@Autowired 自动装配
@Qualifier(“”) 具体指定要装配的组件的id值
@RequestMapping() 完成请求映射
@PathVariable 映射请求URL中占位符到请求处理方法的形参
5.Spring中如何基于注解配置Bean和装配Bean:
(1)首先要在Spring中配置开启注解扫描
<context:component-scan base-package=” ”></ context:component-scan>
(2)在具体的类上加上具体的注解
(3)Spring 中通常使用@Autowired 或者是@Resource 等注解进行bean的装配
6.Spring Bean的生命周期?
默认情况下,IOC容器中bean的生命周期分为五个阶段:
1.调用构造器 或者是通过工厂的方式创建Bean对象
2.给bean对象的属性注入值
3.调用初始化方法,进行初始化, 初始化方法是通过init-method来指定的.
4.使用
5.IOC容器关闭时, 销毁Bean对象.
7.pring事务的实现方式和实现原理:
Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。
8.Spring中常用的设计模式
(1)代理模式——spring 中两种代理方式,若目标对象实现了若干接口,spring 使用jdk 的java.lang.reflect.Proxy类代理。若目标兑现没有实现任何接口,spring 使用 CGLIB 库生成目标类的子类。
(2)单例模式——在 spring 的配置文件中设置 bean 默认为单例模式。
(3)模板方式模式——用来解决代码重复的问题。
比如:RestTemplate、JmsTemplate、JpaTemplate
(4)工厂模式——在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用同一个接口来指向新创建的对象。Spring 中使用 beanFactory 来创建对象的实例。