1、什么是Spring?
- Spring框架是一个开源的,轻量级的 项目管理框架
致力于JAVAEE轻量级解决方案,用于管理[创建|使用|销毁] 现有JAVAEE项目中的组件(控制器、业务类、DAO类、事务 等),也习惯称Spring是一个工厂、容器。
- 注意:Spring通常不管理实体类。
- Spring的核心思想:IOC、AOP
2、Spring工厂的作用是什么?
Spring的工厂:ApplicationContext(接口)
- 作用:
创建和管理对象
- 两个实现类:
- ClassPathXmlApplicationContext(非web环境下)
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml");
- WebXmlApplicationContext(web环境下) 不直接使用,SSM框架整合后底层使用
3、Spring的环境搭建有哪些?
环境搭建:
- 导jar包
- 创建spring的核心配置文件(名称随意、位置/src根或子目录 任意位置)
4、Spring的基本开发步骤是什么?
开发步骤:
- 定义JAVA类
- 在spring的核心配置文件(applicationContext.xml)中配置组件
代码案例:
<!--配置dao
id:组件的唯一标识
class:组件的全限定名,包名.子包名.类名
-->
<bean id="userDao" class="com.tjcu.UserDaoImpl"></bean>
- 调用Spring工厂的API
代码案例:
//启动Spring工厂
ApplicationContext ctx=new ClassPathXmlAppplicationContext("applicationContext.xml");
//从工厂中 根据组件的beanId 获取Bean对象
UserDao userDao=(UserDao)ctx.getBean("userDao");
userDao.insert(new User("王恒杰",123456));
5、什么是IOC(控制反转)?
- IOC(Inversion Of Controll) 控制反转【[ɪnˈvɜːʃn]:倒置】
把创建对象的权利 由java源码中手动new创建 转移到spring中 交给spring工厂去创建。
- 好处:解耦合(降低代码的耦合度)
- Spring的工厂 不仅能创建对象,还可以解决 对象和对象依赖关系,即DI(依赖注入)。
6、什么是DI(依赖注入)?
- DI(Dependecy Injection)依赖注入
一个类 需要使用另一个类时,可以将 被使用的类的对象 定义成这个类的成员变量,在Spring的配置文件中进行属性的赋值。
DI 简单理解为: 在spring中 给对象的属性 自动赋值。
- 好处:解耦合
7、Spring中注入的方式有哪几种?
Spring中的注入的方式共有三种:
- set注入:通过set方法给属性赋值。
- 构造注入:通过构造方法 给属性赋值。
- 自动注入:通过set方法 给属性自动赋值。
8、如何控制bean对象的创建次数(创建模式)?
- 在Spring中,可以通过bean标签的scope属性 控制创建对象的次数:
语法:
<bean id="" scope="singleton|prototype">
singleton:单例,每工厂只创建一个对象(默认)
prototype:多例,每次调用工厂都会创建新的对象
- 在开发中,创建模式的选择:
- 单例:Serlvet、Service、Dao
- 多例:Action