Spring零基础入门
1. spring概述
1.1 什么是框架?
框架是一个封装了很多功能和模块的程序的半成品。可以理解为是一个由很多工具类组合而成的一个工具包
1.2 Spring是什么?
Spring是分层的 Java SE/EE应用 full-stack(全栈) 轻量级开源框架。不管是现在的三大框架SSM,还是SSH、SSI 都离不开Spring框架 可以说Spring是Java开发的灵魂框架。
Spring有两大内核:
IOC(Inverse Of Control:控制反转)
AOP(Aspect Oriented Programming:面向切面编程)
1.3 Spring功能
IOC: 控制反转,其实就是把对象的创建权,交给spring,由Spring负责给我们创建对象
DI: 依赖注入,其实就是给对象的成员变量赋值。
AOP: 面向切面编程,底层就是动态代理
事务: Spring提供了声明式事务,也就是说,我们可以通过配置的方式来添加事务。
2. spring快速入门
首先想用Spring,必须导入 Core Container 中的Jar 这是Spring的核心Jar包。
2.1 Spring程序开发步骤
①导入 Spring 开发的基本包坐标
②编写 Dao 接口和实现类
③创建 Spring 核心配置文件
④在 Spring 配置文件中配置 UserDaoImpl
⑤使用 Spring 的 API 获得 Bean 实例
2.1.1 导入 Spring 开发的基本包坐标
<!--导入spring的context坐标,context依赖core、beans、expression-->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
2.1.2 编写Dao接口和实现类
public interface UserDao {
public void save();
}
public class UserDaoImpl implements UserDao {
@Override
public void save() {
System.out.println("UserDao save method running....");
}
}
2.1.3 创建Spring核心配置文件
在类路径下(resources)创建applicationContext.xml配置文件
2.1.3 在 Spring 配置文件中配置 UserDaoImpl
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 配置UserDaoImpl -->
<bean id="userDao" class="com.tao.dao.impl.UserDaoImpl"></bean>
</beans>
2.1.3 使用 Spring 的 API 获得 Bean 实例
@Test
public void test1(){
//加载spring配置文件。获取spring核心容器
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//获取spring容器中的userDao对象
UserDao userDao = (UserDao) ac.getBean("userDao");
//调用方法
userDao.save();
}
3. Spring配置文件
3.1 Bean标签基本配置
<bean id="userDao" class="com.tao.dao.impl.UserDaoImpl"></bean>
id: Bean实例在Spring容器中的唯一标识
class: Bean的全限定名称 (包名+类名)
3.2 Bean标签范围配置
<bean id="userDao" class="com.itheima.dao.impl.UserDaoImpl" scope="singleton" ></bean>
scope: 指对象的作用范围,取值如下:
取值范围 | 说明 |
---|---|
singleton | 默认值,单例的,立即加载 |
prototype | 多例的,延迟加载 |
request | WEB项目中,Spring创建一个Bean的对象,将对象存入到request域中 |