1. 什么是spring,它能够做什么?
Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
简单来说Spring:
目的:解决企业应用开发的复杂性
功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
范围:任何Java应用
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
2.框架:
2.1中间层框架(又称为万能胶)
struts2
spring
hibernate
2.2容器框架
JavaBean
IOC和AOP
3. 什么是控制反转(或依赖注入)
控制反转(IoC=Inversion of Control)IoC,用白话来讲,就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:(依赖)控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。
LOC还有一个另外的名字:“依赖注入 (DI=Dependency Injection)” ,即由容器动态的将某种依赖关系注入到组件之中
IOC/DI将以前由程序员实例化对象/赋值的工作交给了spring处理
4.如何使用Spring(5.0.1.RELEASE)?
1)在pom.xml文件中引入spring-core、spring-context的jar支持
<!--spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
2)配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<!--Web与Spring集成配置-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</context-param>
<!--配置自定义监听器,
目的:1.读取context-param;
2.完成Spring IOC容器的初始化,并将初始化完成的Spring容器添加到application -->
<listener>
<listener-class>com.zking.spring01.listener.SpringListener</listener-class>
</listener>
(3.)Spring Bean 之id,class属性
id:在容器中查找Bean的id(唯一、且不能以/开头)
class:bean的完整类名(类的全路径名)
(4.)singleton(单例模式):在每个Spring IoC容器中一个bean定义对应一个对象实例 prototype(原型模式/多例模式):一个bean定义对应多个对象实例
5. 简单属性的配置:
8+1+3
8基础数据+String+3个sql
java.util.Date
java.sql.Date
java.sql.Time
java.sql.Timestamp
通过<value>标签赋值即可
6. 复杂属性的配置:
6.1 JavaBean
ref bean=""
6.2 List或数组
6.3 Map
6.4 Properties
7. 针对项目,配置文件路径的2种写法:
ApplicationContext
String path = "applicationContext.xml";
String path = "classpath:applicationContext-*.xml";//src
String[] path = new String[] { "applicationContext-a.xml", "applicationContext-b.xml" };//分模块开发
8.spring与web项目的集成:
WEB项目如何读取spring上下文
通过监听器实现ServletContextListener
contextConfigLocation:classpath:applicationContext-*.xml
<!-- 配置SpringListener监听器的Spring配置文件路径 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</context-param>
<!-- 配置SpringListener监听器 -->
<listener>
<listener-class>com.zking.spring01.util.SpringListener</listener-class>
</listener>